设置对话框图标
#include <windows.h> #include "resource.h" BOOL __stdcall DlgProc(HWND, UINT, WPARAM, LPARAM); HICON g_hIcon; // 对话框图标句柄 int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int) { /*从资源中加载图标,这些工作也可以在WM_INITDIALOG消息中进行*/ g_hIcon = ::LoadIcon(hInstance, (LPCTSTR)IDI_MAIN); int nResult = ::DialogBoxParam( hInstance, // 实例句柄 (LPCTSTR)IDD_MAIN, // 对话框资源ID号 NULL, // 父窗口句柄 DlgProc, // 消息处理函数 NULL); // 对话框初始化的值,在WM_INITDIALOG消息的lParam参数中取出 return 0; } BOOL __stdcall DlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { switch(message) { case WM_INITDIALOG: { // 设置标题栏图标 ::SendMessage(hDlg, WM_SETICON, ICON_BIG, (long)g_hIcon); } break; case WM_COMMAND: switch(LOWORD(wParam)) { case IDCANCEL: // 退出程序 ::EndDialog (hDlg, IDCANCEL); break; } } return 0; }
这里我们把文件图标和标题栏图标都设置了。
下面是只设置exe文件图标,不设置标题栏图标:
#include <windows.h> #include "resource.h" BOOL __stdcall DlgProc(HWND, UINT, WPARAM, LPARAM); HICON g_hIcon; // 对话框图标句柄 int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int) { /*从资源中加载图标,这些工作也可以在WM_INITDIALOG消息中进行*/ g_hIcon = ::LoadIcon(hInstance, (LPCTSTR)IDI_MAIN); int nResult = ::DialogBoxParam( hInstance, // 实例句柄 (LPCTSTR)IDD_MAIN, // 对话框资源ID号 NULL, // 父窗口句柄 DlgProc, // 消息处理函数 NULL); // 对话框初始化的值,在WM_INITDIALOG消息的lParam参数中取出 return 0; } BOOL __stdcall DlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { switch(message) { //case WM_INITDIALOG: // { // // 设置标题栏图标 // ::SendMessage(hDlg, WM_SETICON, ICON_BIG, (long)g_hIcon); // } // break; case WM_COMMAND: switch(LOWORD(wParam)) { case IDCANCEL: // 退出程序 ::EndDialog (hDlg, IDCANCEL); break; } } return 0; }