您的位置:C++老鼠窝编程 【VC MFC通用技术】 系统 正文
 添加时间:2008-06-14 原文发表时间:2008-06-14 人气:170


 

给系统菜单添加一个菜单项需要进行下述三个步骤:
首先,使用Resource Symbols对话(在View菜单中选择Resource Symbols...
可以显示该对话)定义菜单项ID,该ID应大于0x0F而小于0xF000;
其次,调用CWnd::GetSystemMenu获取系统菜单的指针并调用CWnd:: Appendmenu
将菜单项添加到菜单中。下例给系统菜单添加两个新的
int CMainFrame:: OnCreate (LPCREATESTRUCT lpCreateStruct)
{
 …
 //Make sure system menu item is in the right range.
 ASSERT (IDM_MYSYSITEM &0xFFF0)==IDM_MYSYSITEM)
 ASSERT (IDM-MYSYSITEM<0xF000)

 //Get pointer to system menu.
 CMenu* pSysmenu=GetSystemmenu (FALSE)
 ASSERT_VALID (pSysMenu)
 //Add a separator and our menu item to system menu.
 CString StrMenuItem (_T ("New menu item"))
 pSysMenu->Appendmenu (MF_SEPARATOR)
 pSysMenu->AppendMenu (MF_STRING, IDM_MYSYSITEM, strMenuitem)

 …
}

现在,选择系统菜单项时用户应进行检测。使用ClassWizard处理WM_SYSCOMMAND消息并检测用户菜单的nID参数:
void CMainFrame:: OnSysCommand (UINT nID,LPARAM lParam)
{
 //Determine if our system menu item was selected.
 if ( (nID & 0xFFF0)==IDM_MYSYSITEM)
 {
 //TODO-process system menu item
 }

 else
 CMDIFrameWnd ::OnSysCommand (nID, lParam)
}
最后,一个设计良好的UI应用程序应当在系统菜单项加亮时在状态条显
示一个帮助信息,这可以通过增加一个包含系统菜单基ID的串表的入口来实现。


 
本页地址
相关文章

如何得到系统的当前活动程序的窗口中里具有
如何让密码更安全
让程序运行时在Window“关闭程序”窗口中隐
进程的启动,等待和结束
内存瓶颈问题如何解决
怎样监视剪贴板内容
获取操作系统的信息
工作线程的登录状态?
Windows 下多线程编程技术及其实现
Windows 95多线程间同步事件的控制方法
使用DDE使应用程序可以添加新的程序组
怎么在外部中止线程
用VC进行屏幕截取编程
怎样用程序取得CPU信息
复制位图到剪贴板
获取快捷方式(.lnk)的目标和参数
如何在剪贴板上读写文本
如何在剪贴板上放置图元文件(用OLE)
VC知识库文章 - 多线程管理类
VC知识库文章 - 强制编译时约束

相关评论


本文章所属分类:首页 【VC MFC通用技术】 系统