Ale*_*ijs 5 c++ resources winapi icons visual-studio-2010
我正在使用 Visual Studio 的 Express 版本。因此,使用函数调用 MAKEINTRESOURCE 是不可能的。我试图通过重写 getAdditionalClassInfo 函数来设置应用程序图标。
WNDCLASSW *Robot::getAdditionalClassInfo(void) const {
WNDCLASSW *wc = Window::getAdditionalClassInfo();
HANDLE hIcon = LoadImage(NULL, L"imagepath/image.png", 32, 32, LR_LOADFROMFILE);
wc->hIcon = .....;
return wc;
}
Run Code Online (Sandbox Code Playgroud)
有谁知道如何在不使用资源的情况下设置此图标?
我的建议是,如果您想使用 PNG,并且能够更改图标,则使用 FreeImage 来加载它。然后您可以使用 FreeImage 将其相当轻松地转换为标准 HBITMAP。
如果您愿意使用实际的图标文件,则可以在创建窗口后执行以下操作:
HANDLE hIcon = LoadImage(0, _T("imagepath/image.ico"), IMAGE_ICON, 0, 0, LR_DEFAULTSIZE | LR_LOADFROMFILE);
if (hIcon) {
//Change both icons to the same icon handle.
SendMessage(hwnd, WM_SETICON, ICON_SMALL, hIcon);
SendMessage(hwnd, WM_SETICON, ICON_BIG, hIcon);
//This will ensure that the application icon gets changed too.
SendMessage(GetWindow(hwnd, GW_OWNER), WM_SETICON, ICON_SMALL, hIcon);
SendMessage(GetWindow(hwnd, GW_OWNER), WM_SETICON, ICON_BIG, hIcon);
}
Run Code Online (Sandbox Code Playgroud)
您可以从您的内部调用类似的函数getAdditionalClassInfo并将其设置为hIcon.
| 归档时间: |
|
| 查看次数: |
10614 次 |
| 最近记录: |