专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Solaris

DEVCPP的托盘图标运作

发布时间:2011-06-27 19:04:21 文章来源:www.iduyao.cn 采编人员:星星草
DEVCPP的托盘图标运行
我用DEVCPP在WINDOWS下编程,然后在SOLARIS下编译\运行,现想用的托盘图标方式运行程序,不知怎样写,那位朋友给指点一下,谢谢!
------解决方案--------------------
BOOL Shell_NotifyIcon(
    DWORD dwMessage, 
    PNOTIFYICONDATA pnid
);      

第一个参数dwMessage类型为DWORD,表示要进行的动作,它可以是下面的值之一:

      NIM_ADD:       添加一个图标到任务栏。
      NIM_MODIFY:    修改状态栏区域的图标。
      NIM_DELETE:    删除状态栏区域的图标。
      NIM_SETFOCUS:  将焦点返回到任务栏通知区域。当完成用户界面操作时,任务栏图标必须用此消息。例如,如果任务栏图标正     
                      显示上下文菜单,但用户按下"ESCAPE"键取消操作,这时就必须用此消息将焦点返回到任务栏通知区域。 
      NIM_SETVERSION:指示任务栏按照相应的动态库版本工作。      

第二个参数pnid是NOTIFYICONDATA结构的地址,其内容视dwMessage的值而定。这个结构在SHELLAPI.H文件中定义如下:

typedef struct _NOTIFYICONDATA {
  DWORD cbSize;           // 结构大小(sizeof struct),必须设置
  HWND hWnd;             // 发送通知消息的窗口句柄
  UINT uID;                //  图标ID ( 由回调函数的WPARAM 指定)
  UINT uFlags;            
  UINT uCallbackMessage;    // 消息被发送到此窗口过程
  HICON hIcon;             // 图标句柄
  CHAR szTip[64];          // 提示文本
} NOTIFYICONDATA;
uFlags的值:
#define NIF_MESSAGE 0x1   // 表示uCallbackMessage 有效
#define NIF_ICON    0x2   // 表示hIcon 有效
#define NIF_TIP     0x4   // 表示szTip 有效      

有关Shell_NotifyIcon函数的详细使用细节请参考MSDN。
    NOTIFYICONDATA结构中的 hWnd 是"拥有" 图标的窗口句柄。uID可以是任何标示托盘图标的ID(如果有多个图标),一般使用资源ID。HIcon可以是任何图标的句柄,包括预定义的系统图标,如 IDI_HAND、IDI_QUESTION、IDI_EXCLAMATION、或者Windows的徽标IDI_WINLOGO。
    图标的显示并不难,关键是事件的处理。当用户将鼠标移到图标上或者在图标上单击鼠标时,为了得到通知消息,你可以将自己的消息ID赋给uCallbackMessage,并设置 NIF_MESSAGE标志。当用户在图标上移动或单击鼠标时,Windows将用hWnd指定的窗口句柄调用你建立的窗口过程;消息ID在 uCallbackMessage中指定,uID的值即为wParam,lParam为鼠标事件,如WM_LBUTTONDOWN等。
------解决方案--------------------
应该不可以运行吧,大家好像没看清楚LZ的意思。
SOALRIS 没用过,楼主好像不是用VC呀,是不是换个版问一问吧,
------解决方案--------------------
在unix的安装中是可以使用托盘的,比如飞鸽传书的最新版本在安装脚本中就可以使用托盘,
建议lz下载一下飞鸽传书的源码,看看他是如何实现托盘图标的,
如果找不到的话,留下邮箱我给你发一份。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: