【问题标题】:How to change the title bar icon using winapi如何使用winapi更改标题栏图标
【发布时间】:2015-03-18 19:46:09
【问题描述】:

我使用 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);

【问题讨论】:

  • 请发布您正在使用的调用 CreateWindow / CreateWindowEx 的代码。
  • 这是纯WinAPI程序,还是你使用MFC之类的框架?
  • 没有框架 MFC 或 Qt 或任何东西。它只是纯粹的 WinAPI
  • 作为注释,您可以使用L"Random" 而不是调用TEXT()。该函数将 char 转换为宽字符,将 L 前缀添加到常量也一样。

标签: c++ c windows visual-studio winapi


【解决方案1】:

如果你使用RegisterClassEx 来注册你的窗口类,WNDCLASSEX 结构有一个hIconSm 字段可以让你指定一个小图标。如果你这样做,别忘了也初始化cbSize字段。

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

【讨论】:

  • 非常感谢,这正是我想要完成的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-13
  • 2019-06-07
  • 1970-01-01
  • 2018-08-15
  • 2021-06-23
相关资源
最近更新 更多