Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
C++, Создание класса "Окно" для управления WinAPI
|
|||
|---|---|---|---|
|
#18+
Делаю GUI-приложение, пытаюсь описать класс, отвечающий за окно и такие же классы, отвечающие за кнопки и прочее (наподобие wxFrame в wxWidgets, TForm в борланд билдере и т.п., но, естественно, упрощенно). в нём будут методы OnSize(), OnPaint() и т.п., вызываемые при получении сообщений WM_SIZE, WM_PAINT и т.п. - короче говоря, работать я уже буду только с ним (с объектом класса) без всяких разборок с полученными сообщениями и т.п. - так, как это происходит при работе с той же wxWidgets или в борланд билдере. столкнулся с проблемой - WindowProc() должна быть отдельной функцией, не являющейся методом описываемого класса, и как следствие она не имеет к нему никакого доступа. подскажите, как быть в данной ситуации? посоветуйте литературу или ссылки на статьи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2013, 03:39 |
|
||
|
C++, Создание класса "Окно" для управления WinAPI
|
|||
|---|---|---|---|
|
#18+
gera3323, Как создать подобную оболочку ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2013, 03:43 |
|
||
|
C++, Создание класса "Окно" для управления WinAPI
|
|||
|---|---|---|---|
|
#18+
gera3323короче говоря, работать я уже буду только с ним (с объектом класса) без всяких разборок с полученными сообщениями и т.п. ну разборки всё равно придётся где-то делать- в методе класса, ответственном за вызов OnSize(), OnPaint() и т.п. gera3323WindowProc() должна быть отдельной функцией, не являющейся методом описываемого класса, и как следствие она не имеет к нему никакого доступа. подскажите, как быть в данной ситуации? WindowProc всё равно останется отдельной функцией, которой придётся найти экземпляр класса, ассоциированного с хэндлом окна. Варианты хранения указателя на экземпляр класса - в экстрабайтах window instance (см cbWndExtra), в словаре, динамически генерить WindowProc и зашивать указатель в него. А если речь об окне с единственным инстансом - просто в глобальной переменной хранить указатель Как именно - можно смотреть в исходниках библиотек, того гляди желание пропадёт велосипед строить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2013, 06:31 |
|
||
|
C++, Создание класса "Окно" для управления WinAPI
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2013, 08:43 |
|
||
|
C++, Создание класса "Окно" для управления WinAPI
|
|||
|---|---|---|---|
|
#18+
m_Slaтут простейшая обертка http://habrahabr.ru/post/123648/ посмотри, может допилишь в говнокоде ошибка: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2013, 09:00 |
|
||
|
C++, Создание класса "Окно" для управления WinAPI
|
|||
|---|---|---|---|
|
#18+
Изопропилm_Slaтут простейшая обертка http://habrahabr.ru/post/123648/ посмотри, может допилишь в говнокоде ошибка: Код: plaintext 1. Для GWL_USERDATA экстра память ненужна. Но хранить там указатель - говнокод. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2013, 11:52 |
|
||
|
C++, Создание класса "Окно" для управления WinAPI
|
|||
|---|---|---|---|
|
#18+
gera3323 WindowProc() должна быть отдельной функцией, не являющейся методом описываемого класса, Это не так =) Просто функции обратного вызова(callback) должны объявляться как static иначе никто не гарантирует что указатель на функцию не будет указывать в космос (крайне не рекомендуется заставлять программу выполнять код из космоса) в общем гугл в помощь ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2013, 11:58 |
|
||
|
|

start [/forum/topic.php?fid=57&tid=2020087]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
84ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
| others: | 10ms |
| total: | 188ms |

| 0 / 0 |
