Win32 CreateWindowEx() 窗口图标未正确显示

发布于 2024-11-18 16:35:58 字数 566 浏览 3 评论 0原文

我使用 CreateWindowEx 创建窗口,但我只在任务栏中看到一个图标;窗口的标题栏和当我 Alt+Tab 时显示的图标都显示这种类型的虚拟图标:默认 Windows 图标.我将 WNDCLASSEX 中的 hIconhIconSm 字段设置为从 ::LoadIcon(hInstance, IDI_APPLICATION)< 返回的值/代码>(非空)。

.ico 文件本身是由我通过 http://converticon.com 生成的 .png 制成的,尺寸为 16x16、32x32和 96x96(顺便说一句,推荐的尺寸是多少?)。难道是我使用了错误的尺寸或颜色深度?如果是这样,为什么它在任务栏(不同大小)中工作?谢谢!

I create my window using CreateWindowEx, but I only get an icon in the task bar; both the window's title bar and the icon that shows when I Alt+Tab show this type of dummy icon: default Windows icon. I set both the hIcon and the hIconSm fields in the WNDCLASSEX to the value returned from ::LoadIcon(hInstance, IDI_APPLICATION) (not NULL).

The .ico file itself was made out of a .png which I genereated through http://converticon.com to 16x16, 32x32 and 96x96 (what are the recommended sizes btw?). Could it be that I'm using the wrong sizes or color depth? If so, why does it work in the task bar (different size)? Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

念﹏祤嫣 2024-11-25 16:35:58

图标必须在某处定义为资源。在您的资源标头中应该有这样一行:

#define IDI_MYICON 1000

然后在对 LoadIcon() 的调用中,它应该类似于:

wc.hIcon = LoadIcon(hinstance, MAKEINTRESOURCE(IDI_MYICON));

如果您使用的是 Visual Studio,则添加资源非常容易。只需右键单击解决方案资源管理器中的资源即可。

The icon must be defined as a resource somewhere. In your resource header there should be a line like this:

#define IDI_MYICON 1000

Then in your call to LoadIcon() it should be something like:

wc.hIcon = LoadIcon(hinstance, MAKEINTRESOURCE(IDI_MYICON));

If you're using Visual Studio it's pretty easy to add resources. Just right click Resources in the solution explorer.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文