Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用winapi更改标题栏图标_C++_C_Windows_Visual Studio_Winapi - Fatal编程技术网

C++ 如何使用winapi更改标题栏图标

C++ 如何使用winapi更改标题栏图标,c++,c,windows,visual-studio,winapi,C++,C,Windows,Visual Studio,Winapi,我使用Windows API制作了一个应用程序,并使用资源文件夹将图标更改为自定义图标。现在程序正在使用桌面上的“我的图标”,但在标题栏中有默认图标,确切地说是这个图标 现在我该如何将其更改为我的自定义图标? 我正在使用MSVC++ WNDCLASS wndclass; wndclass.style = CS_HREDRAW | CS_VREDRAW; wndclass.lpfnWndProc = WndProc; wndclass.cbClsExtra = 0; wndclass.cbWnd

我使用Windows API制作了一个应用程序,并使用资源文件夹将图标更改为自定义图标。现在程序正在使用桌面上的“我的图标”,但在标题栏中有默认图标,确切地说是这个图标

现在我该如何将其更改为我的自定义图标? 我正在使用MSVC++

WNDCLASS wndclass;

wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = WndProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hInstance = hInstance;
wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName = szAppName;


hwnd = CreateWindow(szAppName,
    TEXT("Random"),
    WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX,
    CW_USEDEFAULT,
    CW_USEDEFAULT,
    300,
    120,
    NULL,
    NULL,
    hInstance,
    NULL);

如果使用
RegisterClassEx
注册窗口类,则
WNDCLASSEX
结构有一个
hIconSm
字段,用于指定一个小图标。如果这样做,不要忘记初始化
cbSize
字段


或者,您可以在创建窗口后使用
WM_SETICON
消息为窗口指定一个小图标。

请发布您正在使用的调用
CreateWindow
/
CreateWindowEx
的代码。这是纯WinAPI程序,还是您正在使用MFC之类的框架?没有框架MFC或Qt或其他。这只是一个纯WinaPI注释,您可以使用
L“Random”
而不是调用
TEXT()
。该函数将字符从
char
转换为宽字符,并将L前缀添加到常量中,也可以实现同样的效果。非常感谢,这正是我想要实现的。