![]() |
вопрос по WNDPROC
Вопрос в следующем:
можно ли указать функцию сишного класса, в качестве функции обработки сообщений виндового класса(WNDCLASSEX) ?? |
Формат "функции обработки сообщений" жестко задан:
для обычных окон (windows): Код:
LRESULT CALLBACK WindowProc( Код:
INT_PTR CALLBACK DialogProc( |
В классах бывают методы...:insane:
|
как я делаю (C++):
Код:
class QWindow { |
Проблемма была решена немного другим образом так как статические функции в данном случае не совсем то, что хотелось бы. Создавался дополнительный класс с данными и функциями которые мы планируем использовать в WNDPROC и после создания окна прицепляем указатель на объект дополнительного класса с помощью функции SetWindowLongPtr. Теперь дополнительные данные доступны в WNDPROC
|
Можно не создавать дополнительный класс. Можно сделать всё то же самое с использованием статического члена (всё-таки он правами обладает). В конструкторе собклассится какой-нибудь стандартный класс с DefWindowProc, а класс имеет следующую структуру:
Код:
class QWindow { |
Время: 11:58. |
Время: 11:58.
© OSzone.net 2001-