设为首页 加入收藏

TOP

VC实现托盘程序
2014-10-31 22:45:07 来源: 作者: 【 】 浏览:53
Tags:实现 托盘 程序

  现在很多程序都有托盘功能,下面介绍一下如何在VC下实现托盘程序的功能:


  1.准备一个菜单


  菜单有两上项“显示”和“退出”。


  菜单的名为“托盘菜单”ID为:IDR_MENU_TRAY,两个项分别为:IDR_MENU_SHOW,IDR_MENU_EXIT。


  2.初始化托盘


  (1)源代码


  void CSmsDlg::InitTray()


  {


  nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);


  nid.hWnd=this->m_hWnd;


  nid.uID=IDR_MAINFRAME;


  nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ;


  nid.uCallbackMessage=WM_NOTIFYICON;//自定义的消息名称


  nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));


  strcpy(nid.szTip,"东讯短信平台");//信息提示


  Shell_NotifyIcon(NIM_ADD,&nid);//在托盘区添加图标


  }


  (2)消息的定义#define WM_NOTIFYICON WM_USER+5,一般放在头文件的开始。


  (3)所有到的变量 NOTIFYICONDATA nid; 一般在头文件中定义。


  (4)初始化托盘函数一般在初始化对话框函数中引用或在单文档中int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)引用。


  3.响应托盘消息函数


  (1)源代码


  LONG CSmsDlg::OnNotifyIcon(WPARAM wParam, LPARAM lParam)


  {


  //wParam中是响应消息的图标ID,lParam中则是Windows的消息


  CMenu pMenu;


  switch ( lParam )


  {


  case WM_RBUTTONDOWN:// 用户在托盘图标上单击鼠标左、右键,弹出菜单


  case WM_LBUTTONDOWN:


  if (pMenu.LoadMenu(IDR_MENU_TRAY))


  {


  CMenu* pPopup = pMenu.GetSubMenu(0);


  ASSERT(pPopup != NULL);


  CPoint Point;


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇vc对文件夹的操作SHFileOperation.. 下一篇vc实现类与类之间函数调用的方法

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: