如何获取 winMain 的 hInstance?视窗32编程

How can I get a winMain's hInstance? windows32 programming

本文关键字:hInstance 视窗 编程 winMain 何获取 获取      更新时间:2023-10-16

如何在不使用全局变量的情况下获取 winMain 的 HWND hwnd 的 hInstance 应用程序句柄?我正在尝试将一个对话框发送到 LRESULT 回调,以使其显示某些菜单项。或者这是设置的不同方法。我已经用全局变量完成了它,但我似乎无法弄清楚如何在 LRESULT 回调中设置它我试过了

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

在 wndproc 中,但这只会让它显示一次,然后当我尝试使用弹出菜单项打开它时再也不会出现,并且在 WNDPROC 中以这种方式制作时,按钮和项目似乎不会在对话框中接收消息。

所以我

所做的是在 赢主

HWND hdlg;

将 WNDEXTRA 设置为 HWND 的大小。

然后创建您的 DLG 盒子,无论您如何操作。

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

而在温普罗克hwnd somenewDlg

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