Преобразовать указатель на метод класса к long
От: vsres  
Дата: 14.10.02 18:48
Оценка:
Наверное, все очень хорошо знакомы с виндовой функцией SetWindowLong...
Последним параметром она требует значение типа LONG (указатель на callback функцию).
Мне необходимо передать ей указатель на метод моего класса этим параметром.
Естественно, компилятор ругается... Можно ли все-таки осуществить сабж?
Re: Преобразовать указатель на метод класса к long
От: Алекс Россия http://wise-orm.com
Дата: 15.10.02 04:06
Оценка:
Здравствуйте vsres, Вы писали:

V>Наверное, все очень хорошо знакомы с виндовой функцией SetWindowLong...

V>Последним параметром она требует значение типа LONG (указатель на callback функцию).
V>Мне необходимо передать ей указатель на метод моего класса этим параметром.
V>Естественно, компилятор ругается... Можно ли все-таки осуществить сабж?

Можно.
Этот метод должен выглядеть слудующим образом:
class MyClass
{
public:
    static LRESULT CALLBACK myproc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
    {
        return TRUE;
    };
};
Re: Преобразовать указатель на метод класса к long
От: Roman Fadeyev  
Дата: 15.10.02 05:33
Оценка:
Здравствуйте vsres, Вы писали:

V>Наверное, все очень хорошо знакомы с виндовой функцией SetWindowLong...

V>Последним параметром она требует значение типа LONG (указатель на callback функцию).
V>Мне необходимо передать ей указатель на метод моего класса этим параметром.
V>Естественно, компилятор ругается... Можно ли все-таки осуществить сабж?

Если тебя устраивает статическая функция, смотри ответ Алекса. А если нужно именно метод, то можно сюда глянуть
http://www.rsdn.ru/forum/Message.aspx?mid=114132
Автор: Maxud
Дата: 14.10.02
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.