Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Оконная функция

16K
06 августа 2006 года
tomat
9 / / 06.08.2006
Подскажите, пожалуйста, как в качестве оконной функции указать метод класса?
10
06 августа 2006 года
Freeman
3.2K / / 06.03.2004
[QUOTE=tomat]Подскажите, пожалуйста, как в качестве оконной функции указать метод класса?[/QUOTE]
Посмотри реализацию и использование MakeObjectInstance() в Билдере, например.
18K
06 августа 2006 года
Maklaud
2 / / 24.05.2006
При создании класса своего окна одно из полей этого класса содержит имя оконной процедуры.
typedef struct {
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCTSTR lpszMenuName;
LPCTSTR lpszClassName;
}
В данной структуре это поле №2. Здесь и надо указать имя твоего метода.
16K
09 августа 2006 года
tomat
9 / / 06.08.2006
Это понятно. Проблема как раз с заполнением поля оконной процедуры данной структуры.
Указав например TObject::SomeMethod, при компиляции программа выдает ошибку о невозможности преобразования типов :(
Ошибка:
E2034 Cannot convert 'long (__stdcall TForm::*)(void *,unsigned int,unsigned int,long)' to 'long (__stdcall *)(void *,unsigned int,unsigned int,long)'
Явное привидение типа тоже не помогает.
В качестве данного поля можно указать лишь имя описанной функции, но не метод класса.
А необходимо указать именно метод класса.
16K
09 августа 2006 года
tomat
9 / / 06.08.2006
А не подскажите по подробнее как посмотреть реализацию и использование MakeObjectInstance()?
292
10 августа 2006 года
Matush
726 / / 14.01.2004
[quote=tomat]Это понятно. Проблема как раз с заполнением поля оконной процедуры данной структуры.
Указав например TObject::SomeMethod, при компиляции программа выдает ошибку о невозможности преобразования типов :(
Ошибка:
E2034 Cannot convert 'long (__stdcall TForm::*)(void *,unsigned int,unsigned int,long)' to 'long (__stdcall *)(void *,unsigned int,unsigned int,long)'
Явное привидение типа тоже не помогает.
В качестве данного поля можно указать лишь имя описанной функции, но не метод класса.
А необходимо указать именно метод класса.[/quote]

Обьяви метод класса как статический.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог