Мы пытаемся преобразовать часть кода C++, написанную в MFC, которая использует метод CWnd.SubclassWindow, в код Borland C++ Builder. Кто-нибудь знает, как делать подклассы (подкласс с объектом TForm) - мы полностью застряли. Любые указатели будут высоко оценены! ТИА!Подкласс Windows в Borland C++ Builder
Особенность:
У нас есть существующий базовый класс написано на Borland C++, который унаследован от TForm, который используется, чтобы дать все формы, наследуемые от него определенного внешнего вида (он обрабатывает WM_NCPAINT и WM_NCHITTESTheavily, например,).
Теперь мы хотели бы использовать этот код, чтобы формы, написанные на других языках (MSVC++/MFC и C#, если быть точным), выглядели одинаково.
Вместо того, чтобы переписывать весь код, мы думали, что использование подкласса Windows будет отличной идеей. Затем мы могли бы заполнить весь существующий и протестированный код в DLL, а затем просто называть его hWnd, и это окно автоматически получит новый внешний вид.
Точно, почему это так невозможно, я не могу сказать, что я сам не кодирую сам Borland C++. Я написал заглушку в MFC всего за несколько минут, чтобы показать разработчикам Borland C++ то, что я хотел, и они потратили дни, пытаясь имитировать метод MFC CWnd :: SubclassWindow без успеха.
Исходя из того, что я понимаю, проблема в том, что когда вы делаете «новый TForm()», новое окно автоматически создается, прежде чем у вас есть шанс остановить его. Итак, заменив затем WindowProc работает НО, но нежелательное окно TForm плавает вокруг на экране, чтобы не использовать !!!!
Вы действительно имеете в виду OWL, который Borland должен был остановить более 10 лет назад, чтобы продать и поддержать? – mghie
Ну, я думал, что это называется так ... Я только парень из M $, и я пытаюсь понять, почему эти разработчики Borland C++ не могут имитировать то, что я могу сделать с одной строкой кода в MFC .. . –