VC++单文档程序小化到托盘+自定义消息.doc

VC++单文档程序小化到托盘+自定义消息.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VC单文档程序小化到托盘自定义消息

1.自定义消息的方法 #define WM_MYMESSAGE WM_USER+1 afx_msg LRESULT OnMyMessage ( WPARAM wParam, LPARAM lParam ); ON_MESSAGE ( WM_MYMESSAGE, OnMyMessage )//这句要在BEGIN MESSAGE MAP和end中间 LRESULT cxx::OnMyMessage ( WPARAM wParma, LPARAM lParam ) { ... } 2.最小化到托盘函数 void CMainFrame::toTray(void) { NOTIFYICONDATA?? nid;??? 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_SHOWTASK;//自定义的消息名称??? nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));??? //CString str = L计划任务提醒; //nid.szTip = {L计划任务提醒}; //信息提示条为“计划任务提醒”??? Shell_NotifyIcon(NIM_ADD,nid);//在托盘区添加图标??? ShowWindow(SW_HIDE);//隐藏主窗口?? } 3、对托盘处理过程函数 LRESULT CMainFrame::OnShowTask(WPARAM?? wParam,LPARAM?? lParam) { // TODO: 在此处添加消息处理程序代码 if(wParam!=IDR_MAINFRAME)??? ?? return?? 1;??? switch(lParam)??? {??? case?? WM_RBUTTONUP://右键起来时弹出快捷菜单,这里只有一个“关闭”??? ?? {?? ??? LPPOINT?? lpoint=new?? tagPOINT;??? ??? ::GetCursorPos(lpoint);//得到鼠标位置??? ??? CMenu?? menu;??? ??? menu.CreatePopupMenu();//声明一个弹出式菜单??? ??? //增加菜单项“关闭”,点击则发送消息WM_DESTROY给主窗口(已??? ??? //隐藏),将程序结束。??? ??? menu.AppendMenu(MF_STRING,WM_DESTROY,L关闭);??? ??? //确定弹出式菜单的位置??? ??? menu.TrackPopupMenu(TPM_LEFTALIGN,lpoint-x,lpoint-y,this);??? ??? //资源回收??? ??? HMENU?? hmenu=menu.Detach();??? ??? menu.DestroyMenu();??? ??? delete?? lpoint;??? ?? }??? ?? break;??? case?? WM_LBUTTONDBLCLK://双击左键的处理??? ?? {??? ??? this-ShowWindow(SW_SHOW);//简单的显示主窗口完事儿??? ?? }??? ?? break;??? }??? return?? 0;?? } 4、上面是mfc下托盘的处理。下面是一个完整的纯SDK的托盘程序。 #include windows.h #include atlimage.h #include resource.h //#include afxwin.h #define WM_SHOWTASK WM_USER+10 //#define _AFXDLL; HWND hWnd; //程序主窗口句柄 HINSTANCE mhInstance; //实例句柄 NOTIFYICONDATA?? nid;?? //托盘结构体 LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; void ToTray(void); LRESULT OnShowTask(WPARAM?? wParam,LPARAM?? lParam); CImage image; int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,

文档评论(0)

zyongwxiaj8 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档