基于单文件/多文件版
1、在CMainFrame中设置
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{//...........// 从本地文件加载图标HICON hIcon = (HICON)::LoadImage(NULL, L"./vip.ico", IMAGE_ICON, 0, 0, LR_LOADFROMFILE);if (hIcon){ // 设置窗口图标SetIcon(hIcon, FALSE);SetIcon(hIcon, TRUE);}else{TRACE0("未能窗口图标\n");}return 0;
}
2、在CMyApp中设置
BOOL CMyApp::InitInstance()
{//...........// 从本地文件加载图标HICON hIcon = (HICON)::LoadImage(NULL, L"./vip.ico", IMAGE_ICON, 0, 0, LR_LOADFROMFILE);if (hIcon){// 设置窗口图标m_pMainWnd->SetIcon(hIcon, FALSE);m_pMainWnd->SetIcon(hIcon, TRUE);}else{TRACE0("未能窗口图标\n");}// 唯一的一个窗口已初始化,因此显示它并对其进行更新m_pMainWnd->ShowWindow(SW_SHOW);m_pMainWnd->UpdateWindow();return TRUE;
}
基于对话框版
BOOL CMyDlg::OnInitDialog()
{//...........// TODO: 在此添加额外的初始化代码//获取主窗口指针HWND hWnd = this->GetSafeHwnd();if (hWnd){// 加载图标文件HICON hBigIcon = (HICON)::LoadImage(NULL, _T("./image.ico"), IMAGE_ICON,::GetSystemMetrics(SM_CXICON), ::GetSystemMetrics(SM_CYICON), LR_LOADFROMFILE);if (hBigIcon){// 设置应用程序的大图标::SendMessage(hWnd, WM_SETICON, ICON_BIG, (LPARAM)hBigIcon);}// 设置应用程序的小图标HICON hSmallIcon = (HICON)::LoadImage(NULL, _T("./vip.ico"), IMAGE_ICON,::GetSystemMetrics(SM_CXSMICON), ::GetSystemMetrics(SM_CYSMICON), LR_LOADFROMFILE);if (hSmallIcon){::SendMessage(hWnd, WM_SETICON, ICON_SMALL, (LPARAM)hSmallIcon);}}return TRUE;
}