gpt4 book ai didi

使用 CreateWindowEx 创建一个没有图标的窗口

转载 作者:可可西里 更新时间:2023-11-01 13:29:30 32 4
gpt4 key购买 nike

使用 C#,我很容易获得我想要的效果:

standard window without icon in title bar

但是,我在使用 C 中的 Win32 API 做同样的事情时遇到了麻烦。我不知道如何创建一个没有图标的窗口(根本没有),但仍然有标题、最小化按钮和关闭按钮。

我正确地注册了我的类(class),但我不知道要为窗口样式/扩展窗口样式添加什么。

static const TCHAR lpctszTitle[] = TEXT("Stuff"), lpctszClass[] =
TEXT("StuffClass");

HWND hWnd = CreateWindowEx(WS_EX_LAYERED | WS_EX_TOPMOST, lpctszClass,
lpctszTitle, WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION | WS_MINIMIZEBOX,
CW_USEDEFAULT, 0, 250, 55, NULL, NULL, hThisInstance, NULL);

上面的代码产生了:

standard window WITH an icon in the title bar

标题栏中仍然有一个图标,这不是我想要的。

最佳答案

标准窗口需要一个图标,因为它需要在屏幕底部的任务栏中以某种形式表示。如果其中一个主窗口没有图标,当您在窗口切换器中按 Alt+Tab 时应该显示什么?

您需要指定 WS_EX_DLGMODALFRAME extended style .这与关闭标题栏中的图标时 WinForms 设置的效果相同。

需要确保在注册窗口类时不指定图标。您需要将WNDCLASSEX 结构的hIconhIconSm 字段设置为0。

将您的代码更改为以下内容:

static const TCHAR lpctszTitle[] = TEXT("Stuff"), lpctszClass[] =
TEXT("StuffClass");

HWND hWnd = CreateWindowEx(WS_EX_LAYERED | WS_EX_TOPMOST, lpctszClass,
lpctszTitle, WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION | WS_MINIMIZEBOX,
CW_USEDEFAULT, 0, 250, 55, NULL, NULL, hThisInstance, NULL);

关于使用 CreateWindowEx 创建一个没有图标的窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4905465/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com