引用 4 楼 welonshen 的回复:
ATOM my_register_class(HINSTANCE hinstance)
{
WNDCLASS wc;
HICON icon = LoadIcon(hinstance, TEXT("Icon"));
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = (WNDPROC)wnd_proc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hinstance;
wc.hIcon = icon;
wc.hCursor = LoadCursor(NULL, IDC_CROSS);
wc.lpszMenuName = 0;
wc.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
wc.lpszClassName = TEXT("Test");
return RegisterClass(&wc);
}
这个类返回成功了,loadicon也有返回值,但就是没有图标,似乎WNDCLASS 不支持icon,有没有什么其他的办法加载icon?
可以确定,WNDCLASS类支持LoadIcon,详细内容可以参考下面代码:
InitApp(HINSTANCE hInstance, int nCmdShow)
{
HWND hWnd;
WNDCLASS wc;
// Set up and register window class
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WindowProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_MAIN_ICON));
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH )GetStockObject(BLACK_BRUSH);
wc.lpszMenuName = NULL;
wc.lpszClassName = APPNAME;
RegisterClass(&wc);
// Create a window
hWnd = CreateWindow(APPNAME,
APPTITLE,
WS_POPUP|WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME,
0,
0,
GetSystemMetrics(SM_CXSCREEN),
GetSystemMetrics(SM_CYSCREEN),
NULL,
NULL,
hInstance,
NULL);
if (!hWnd)
return NULL;
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
SetFocus(hWnd);
return hWnd;
}复制代码