纯API写的程序,如何单独设置程序图标和托盘图标(20)

  • 主题发起人 主题发起人 macrolen
  • 开始时间 开始时间
M

macrolen

Unregistered / Unconfirmed
GUEST, unregistred user!
程序时纯API写的,没有用到VCL。48x48和16x16的图标放在了资源文件里MyIcon.rcICON16 ICON 1616.icoMAINICON ICON 4848.ico这样加载托盘图标:hIcon := LoadIcon(hInstance, 'ICON1616');但是程序本身的图标也是用的16x16像素的了,如何让程序和托盘使用不同的图标?如何单独指定程序和托盘的图标呢?我的代码: Inst := hInstance; with WinClass do begin style := CS_CLASSDC or CS_PARENTDC; lpfnWndProc := @WindowProc; hInstance := Inst; hbrBackground := color_btnface + 1; lpszClassname := AppName; hCursor := LoadCursor(0, IDC_ARROW); end; RegisterClass(WinClass); //创建窗体 Handle := CreateWindowEx(WS_EX_WINDOWEDGE, AppName, '123', WS_SIZEBOX {or WS_VISIBLE or WS_CAPTION or WS_SYSMENU} , 283, 238, 325, 65, 0, 0, Inst, nil); UpdateWindow(Handle); tid.cbSize := sizeof(tid); tid.Wnd := handle; tid.uID := 1; tid.uFlags := nif_Message or nif_Icon or nif_Tip; tid.uCallBackMessage := wm_User; tid.hIcon := LoadIcon(hInstance, 'ICON16');//这里指定了托盘和程序图标都是用一样的了 lstrcpy(tid.szTip, AppName); Shell_NotifyIcon(nim_Add, @tid);
 
图标声明顺序颠倒过来。给WNDCLASS.hIcon赋值。这是程序运行时左上角的图标。资源文件中的第一个图标会被作为程序文件的图标。不清楚你说的是哪个,听起来像是后者。
 
就是想程序文件一个图标是48x48的,托盘用另一个图标16x16的
 
重申一下,在资源文件中,图标声明顺序颠倒过来。然后重新编译资源,重新编译程序。
 
还是不行哦, 资源管理器里看到的程序图标还是用的16x16的,跟托盘的一样。
 
可以啦,谢谢
 
接受答案了.
 
后退
顶部