Как я могу получить экземпляр winMain? программирование windows32

Как получить дескриптор приложения hInstance HWND hwnd от winMain без использования глобальных переменных? Я пытаюсь создать диалоговое окно для отправки в LRESULT CALLBACK, чтобы оно отображалось в определенных пунктах меню.
Или другой способ настроить это. Я уже сделал это с глобальными переменными, но я не могу понять, как настроить его внутри LRESULT CALLBACK
Я старался

HINSTANCE hInst = (HINSTANCE)GetWindowLongPtr(hwnd, GWL_HINSTANCE);
HWND hDlgbox = CreateDialog(hInst, MAKEINTRESOURCE(ID_TOOL_BOX_CREATE) ,hwnd, ToolProc);

в wndproc, но при этом он появляется только один раз, и больше никогда не появляется, когда я пытаюсь открыть его с помощью элемента popupmenu, а кнопки и элементы, кажется, не получают сообщений в диалоговом окне, когда они сделаны таким образом в wndproc.

0

Решение

Так что я сделал
в выигрыше

HWND hdlg;

установите wndextra в размер hwnd.

затем создайте свою коробку dlg, как бы вы это ни делали

SetWindowLongPtr(hwnd, 0, (LONG_PTR)hdlg);

и в winproc
hwnd somenewDlg

somenewDlg = (HWND)GetWindowLongPtr(hwnd, 0);

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector