我试图在我的程序中设置一个自定义图标,但是什么都没有发生。
发布于 2014-05-25 07:42:11
只是为了确保我正确理解了你的问题…当您将资源文件的类型设置为"Resource“时,一切都会很好,对吗?这是正确的设置,把它留在那里。其他东西是针对.NET应用程序的。
所以问题是你没有看到图标?你在编辑器中创建了什么大小的图标?LoadIcon函数非常老,只能加载默认大小的图标,通常是32x32。如果要加载具有不同大小的图标,则需要使用函数。超过99%的时间,这是您应该调用的函数加载图标。我好几年没用过LoadIcon了。
HICON hIcon = static_cast<HICON>(::LoadImage(hInstance,
MAKEINTRESOURCE(MYICON1),
IMAGE_ICON,
48, 48, // or whatever size icon you want to load
LR_DEFAULTCOLOR);正如退役的Ninja在他的评论中所建议的,当代码不能按预期工作时,一定要测试函数的返回值。例如,测试hIcon是否为NULL。如果是这样,则LoadImage函数失败,您需要找出原因。很可能,您传递的参数不正确。要么在应用程序模块中没有该ID的资源,要么在图标文件中没有具有相应大小的图标。
另一个用于调试的技巧是使用内置的系统图标之一。如果你能看到那个图标,你知道一切正常工作,你可以开始交换东西来加载你的自定义图标。例如:
HICON hIcon = static_cast<HICON>(::LoadImage(NULL,
MAKEINTRESOURCE(IDI_WARNING),
IMAGE_ICON,
0, 0,
LR_DEFAULTCOLOR | LR_SHARED | LR_DEFAULTSIZE));它应该显示标准警告图标,就像在消息框中看到的图标一样。如果这是可行的,但加载自己的图标不起作用,问题很可能是您创建的.ico文件。
发布于 2021-03-20 01:04:53
您可以像这样设置图标资源,并使用Load‘与w ex h图标和w ex h图标Sm一起使用。同时设置项目输出图标和程序图标。
'IDI_MAIN_ICON ICON "cellphone.ico"
'Load Icon( h Instance, MAKEINTRESOURCE(IDI_MAIN_ICON));'https://stackoverflow.com/questions/23852864
复制相似问题