如何在wince的任务栏上显示窗口图标

    研究wince下的程序设计还不久,大体上感觉和windows下编写程序差不多,但wince只是windows的一个子集,很多在windows下支持的api,在wince下不支持。
    这天,发现自己写的wince程序,无论在任务栏,还是在任务切换列表中,都只显示标题而不显示标题左边的那个应用程序定义的小图标,而微软自己写的程序,还有一些厂商写的程序,运行的时候,在任务栏上是同时显示图标和标题文字的,这就奇怪了,又自己编写了几个程序,发现无论是wince sdk,还是mfc的程序都不显示这个图标。
    在网上狂搜了一通,不知道这个问题是不是太简单,大侠们都不屑于发表指导意见。
    又在msdn上一个一个地浏览以WM开头的消息,终于给我找到一个消息:WM_SETICON,从名字上看,是设置图标的。
    WM_SETICON
    wParam = (WPARAM) fType;          // icon type
    lParam = (LPARAM) (HICON) hicon;  // handle to icon
    两个参数一个是fType,用来指定设定的是大图标还是小图标,分别由宏ICON_BIG和ICON_SMALL指定;另一个是hicon,是图标的句柄,一般用LoadIcon()来载入。
    再看这个消息支持的平台,windows ce:requires version 1.0 or later。看来是支持所有wince系统的了。
    接下来的事情就好办了,在主窗口的回调函数中,响应WM_CREATE消息,加入一条语句:
    SendMessage(hWnd, WM_SETICON, ICON_SMALL, (LPARAM)LoadIcon(hInst, (LPCTSTR)IDI_MYSMALLICON));
    搞定。第三个参数ICON_SMALL,在任务栏上显示的是小图标。LoadIcon()载入图标资源,IDI_MYSMALLICON是你定义的小图标的ID,一般是16*16大小。
    运行程序,看看任务栏上,是不是在标题左边出现了你定义的小图标?

你可能感兴趣的:(wince)