我在为我的应用程序设置标题栏图标时遇到问题。
我一直在努力找出这个问题,用谷歌搜索出了什么问题,已经两天了,但没有任何成功。
MainWindow.cpp:
#include "../../res/Icons.h"
void MainWindow::Create(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow)
{
const wchar_t CLASS_NAME[] = L"MainWindow";
WNDCLASSEX wc = {};
wc.cbSize = sizeof(wc);
wc.lpfnWndProc = WindowProc;
wc.hInstance = hInstance;
wc.lpszClassName = CLASS_NAME;
wc.hIcon = LoadIcon(NULL,IDI_MYICON);
wc.hIconSm = LoadIcon(NULL,IDI_MYICON);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = CreateSolidBrush(RGB(255,255,255));
RegisterClassEx(&wc);
HWND hwnd = CreateWindowEx(0, CLASS_NAME, wstring(Language::wText[1].begin(),Language::wText[1].end()).c_str(), WS_SYSMENU | WS_CAPTION | WS_MINIMIZEBOX, CW_USEDEFAULT, CW_USEDEFAULT, 640, 480, NULL, NULL, hInstance, NULL);
ShowWindow(hwnd, nCmdShow);
MSG msg = {};
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
Icons.h
#define IDI_MYICON 1000
Icons.rc
IDI_MYICON ICON "App.ico"
它编译得很好,图标显示在任务栏和可执行文件中,但不显示在标题栏中。该图标是尺寸为32x32的标准ico。我甚至尝试过使用LoadImage()
,但效果相同。
发布于 2019-05-24 03:42:09
您正在将NULL
传递给LoadIcon
,您应该传递要从您自己的资源加载的应用程序的HINSTANCE
。
发布于 2019-05-24 13:18:56
资源头文件需要与图标文件(即#include "icon. h"
in .rc )一起使用。rc),否则将找不到特定的图标文件(路径在.rc文件中指定)。此外,如果"icon.h“没有以空行结束,您将得到一个unexpected end of file found错误。
https://stackoverflow.com/questions/56274200
复制相似问题