一、加载图标两种方法:
1、HICON hIcon = ::LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_APP));
2、HICON hIcon = AfxGetApp()->LoadIcon(IDI_APP);
二、更改图标两种方法:
1、调用WIN32 API SetClassLong();
SetClassLong(m_hWnd, GCL_HICON, (LONG)hIcon); //GCL_HICON大图标
SetClassLong(m_hWnd, GCL_HICONSM, (LONG)hIcon); //GCL_HICONSM小图标
2、调用CWnd::SetIcon();
SetIcon(hIcon, TRUE);
SetIcon(hIcon, FALSE);
三、对于CFrameWnd和CDialog的窗口图标的修改有所不同。
对于CFrameWnd:
一般只需在OnCreate函数中修改即可。
对于CDialog:
1、对于窗口大图标和小图标一致的情况下,在构造函数中将LoadIcon的参数直接修改成对应ICON资源ID (最简单的情况)
2、在OnCreate函数调用完成后,还会调用OnInitDialog,所以,此时就不能在OnCreate函数中修改图标 ,因为在默认生成的OnInitDialog中有对应修改窗口图标的代码如下:
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
此时,只需要在这里做出想要的处理即可。