我在为应用程序设置标题栏图标时遇到问题。
我已经尝试弄清楚这个问题,谷歌搜索出了什么问题,已经两天了,但没有成功。
主窗口.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);
}
}
图标.h
#define IDI_MYICON 1000
图标.rc
IDI_MYICON ICON "App.ico"
它编译得很好,图标显示在任务栏中以及可执行文件中,但不显示在标题栏中。该图标是一个标准的 ico,尺寸为 32x32。我什至尝试过使用
LoadImage()
,但结果相同。