0

如何在不使用全局变量的情况下获得 winMain 的 HWND hwnd 的 hInstance 应用程序句柄?我正在尝试将一个对话框发送到 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 中以这种方式制作时,按钮和项目似乎没有在对话框中接收消息。

4

1 回答 1

0

所以我所做的是在win main

HWND hdlg;

将 wndextra 设置为 hwnd 的大小。

然后创建您的 dlg 框,无论您如何操作。

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

并在 winproc hwnd somenewDlg

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

于 2012-12-08T06:38:56.173 回答