窗体与界面设计

来源:互联网 发布:支持向量机算法的实现 编辑:程序博客网 时间:2024/05/22 04:44

1 在系统菜单中建立菜单项

1.新建对象

public:CMenu * m_pMenu;UINT IDI_PECULIARMENU;

2.向菜单栏添加菜单项

m_pMenu = GetSystemMenu(FALSE);m_pMenu->AppendMenu(MF_STRING,IDI_PECULIARMENU,"系统菜单");

3.系统消息响应

void CMenuDlg::OnSysCommand(UINT nID, LPARAM lParam){if ((nID & 0xFFF0) == IDM_ABOUTBOX){CAboutDlg dlgAbout;dlgAbout.DoModal();}else if(nID ==IDI_PECULIARMENU){MessageBox("系统菜单","提示",MB_OK|MB_ICONINFORMATION);}else{CDialog::OnSysCommand(nID, lParam);}}

2 最小化至系统托盘

1.新建对象

NOTIFYICONDATA m_traydata;
CMenu m_menu;m_traydata.cbSize=sizeof(NOTIFYICONDATA);m_traydata.hIcon=AfxGetApp()->LoadIcon(IDI_TRAYICON);m_traydata.hWnd=m_hWnd;char *m_str="系统管理";strncpy(m_traydata.szTip,m_str,strlen(m_str)+1);m_traydata.uCallbackMessage=WM_TRAYMESSAGE;m_traydata.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP;

2.创建消息映射
#define WM_TRAYMESSAGE                  201afx_msg void OnTrayMessage(WPARAM wParam, LPARAM lParam);
3.消息路由
ON_MESSAGE(WM_TRAYMESSAGE,OnTrayMessage)void CPopmenuDlg::OnTrayMessage(WPARAM wParam, LPARAM lParam) { if (lParam == WM_LBUTTONDBLCLK) { ShowWindow(SW_RESTORE);} else if (lParam == WM_RBUTTONDOWN) { LPPOINT lpoint=new tagPOINT; ::GetCursorPos(lpoint);//得到鼠标位置 m_menu.CreatePopupMenu();m_menu.AppendMenu(MF_STRING,WM_DESTROY,"退出"); m_menu.TrackPopupMenu(TPM_LEFTALIGN,lpoint->x,lpoint->y,this);HMENU hmenu=m_menu.Detach(); m_menu.DestroyMenu(); delete lpoint; }} 

原创粉丝点击