![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
так все работает, но есть проблема с вызовом классов-членов CWindow. если так: LRESULT CALLBACK WindowProcedure(HWND, UINT, WPARAM, LPARAM);, то получаю ошибку "Member function must be called or its address taken" Подскажите как сделать такой класс без static фунции. -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| RAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 709 Регистрация: 14.3.2003 Где: Щёлково Моск.обл. Репутация: 5 Всего: 6 |
_hunter, а чего мой вариант не понравился? Вот ссылка
Мне кажется без static не получится, просто у функции без static при компиляции не известен адрес (она ведь может быть перегружена, например). А функции с static нет this (т.е. объекта), поэтому надо указывать объект. Не знаю чем тебе GetWindowLong не понравилься. Если придумаешь другой способ напиши что-ли, очень интересно. |
|||
|
||||
| RAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 709 Регистрация: 14.3.2003 Где: Щёлково Моск.обл. Репутация: 5 Всего: 6 |
Вот тебе пример: (не проверял)
В начале WinMain вызываешь RegisterClasses, а в конце UnregisterClasses.
Есть один серьёзный недостаток, неизвестно когда сработает SetWindowLong, поэтому может получиться в cls нечто и будет ошибка. У меня правда всё работает. Это сообщение отредактировал(а) RAN - 29.6.2003, 17:23 |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
Все хорошо, но на wcl.lpfnWndProc = CWindow::WindowProcedure; получаю сообщение о недоступности.
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| RAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 709 Регистрация: 14.3.2003 Где: Щёлково Моск.обл. Репутация: 5 Всего: 6 |
Ой, ты прав надо в классе CWindow объявить friend void RegisterClasses();
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |