Как получить дескриптор приложения 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.
Так что я сделал
в выигрыше
HWND hdlg;
установите wndextra в размер hwnd.
затем создайте свою коробку dlg, как бы вы это ни делали
SetWindowLongPtr(hwnd, 0, (LONG_PTR)hdlg);
и в winproc
hwnd somenewDlg
somenewDlg = (HWND)GetWindowLongPtr(hwnd, 0);
Других решений пока нет …