How do I get MessageBox icon using WinAPI
我有一个 WH_CALLWNDPROC 挂钩代码,它处理 WM_INITDIALOG 消息以获取有关消息框的信息。我可以获得"消息"、"标题"、"按钮",但无法获得"图标"信息。我正在尝试使用如下函数:
1 2 3 4 5 6 7 8 9 10 11 12 | long getIcon(HWND hwnd) { // handle of messagebox dialog HWND hlbl = GetDlgItem(hwnd,20); wcout <<"LABEL HWND:" << hlbl << endl; if (hlbl != NULL) { LRESULT r = SendMessage(hlbl,WM_GETICON,0,0); return (long)r; } return 0; } |
函数总是返回 0。我通过 MS Spy 进行了检查,发现图标句柄为 0。
获取图标的正确方法是什么?
消息框对话框上显示的图标是使用具有
在您问题的代码中,名为
1 2 3 4 5 6 7 | HICON getIcon(HWND hwnd) { // handle of messagebox dialog HWND hIconWnd = GetDlgItem(hwnd, 20); if (hIconWnd != NULL) { return (HICON)SendMessage(hIconWnd, STM_GETICON, 0, 0); } return NULL; } |