- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)