初学者 vc中如何在系统菜单中添加菜单项 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.在资源中添加对话框并生成一个叫CMyDlg的类 2.在系统菜单中添加菜单项 int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { . . . CMenu *pMenu=GetSystem(FALSE);//获得一个指向系统菜单的指针 pMenu->AppendMenu(MF_SEPARATOR);//添加分隔线 pMenu->AppendMenu(MF_STRING,ID_SYSMENU_ABOUT,"About");//添加系统菜单项 return 0; } 3.消息处理,对应的是WM_SYSCOMMAND消息 (1)在CMAINFRAME的头文件中添加 protected: //{{AFX_MSG(CMainFrame) afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); afx_msg void OnSysCommand(UINT nID,LPARAM lParam);//要添加的代码 (2)添加消息映射 BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) //{{AFX_MSG_MAP(CMainFrame) // NOTE - the ClassWizard will add and remove mapping macros here. // DO NOT EDIT what you see in these blocks of generated code ! ON_WM_CREATE() ON_WM_SYSCOMMAND()//添加的代码 //}}AFX_MSG_MAP END_MESSAGE_MAP() (3)消息处理 void CMainFrame::OnSysCommand(UINT nID,LPARAM lParam) { if(nID==ID_SYSMENU_ABOUT) { CMyDlg dlg; dlg.DoModal(); return ; } CFrameWnd::OnSysCommand(nID,lParam); } 运行,按鼠标左键单击窗口标题栏的小图标或者ALT+空格,就添加了一项!!! 另外,别忘了在MainFrm.CPP中添加 #define ID_SYSMENU_ABOUT 105 #include "MyDlg.h" 网上google来的,举一反三吧。http://www.qqgb.com/Program/VC/VCsystem/Program_150929.html http://blog.csdn.net/lin_angle/archive/2007/08/22/1755123.aspx 用GetSystemMenu获取系统菜单句柄,然后AppendMenu或者InsertMenu就行了。 细节请查MSDN C++ U盘读速度测试 能不能在list control控件里添加一列“颜色”!求解!!! VC对话框编程问题 CCombobox中的光标在字符串中的定位问题 一个接口程序.要求:一个控制器(client)和一个模拟软件(server)之间实现实时传输数据?求教 100分求助 这样的自绘 Button 该怎么做 关于MFC程序的Winmain()函数的问题? ns-3配置问题 请问这个有谁熟悉56K MODEM 的V.90协议? CEdit子类化后 请问VC++如何用链表保存多文档
1.在资源中添加对话框并生成一个叫CMyDlg的类
2.在系统菜单中添加菜单项
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{ .
.
.
CMenu *pMenu=GetSystem(FALSE);//获得一个指向系统菜单的指针
pMenu->AppendMenu(MF_SEPARATOR);//添加分隔线
pMenu->AppendMenu(MF_STRING,ID_SYSMENU_ABOUT,"About");//添加系统菜单项
return 0;
}
3.消息处理,对应的是WM_SYSCOMMAND消息
(1)在CMAINFRAME的头文件中添加
protected:
//{{AFX_MSG(CMainFrame)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnSysCommand(UINT nID,LPARAM lParam);//要添加的代码
(2)添加消息映射
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
//{{AFX_MSG_MAP(CMainFrame)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code !
ON_WM_CREATE()
ON_WM_SYSCOMMAND()//添加的代码
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
(3)消息处理
void CMainFrame::OnSysCommand(UINT nID,LPARAM lParam)
{
if(nID==ID_SYSMENU_ABOUT)
{
CMyDlg dlg;
dlg.DoModal();
return ;
} CFrameWnd::OnSysCommand(nID,lParam);
} 运行,按鼠标左键单击窗口标题栏的小图标或者ALT+空格,就添加了一项!!! 另外,别忘了在MainFrm.CPP中添加
#define ID_SYSMENU_ABOUT 105
#include "MyDlg.h" 网上google来的,举一反三吧。
http://www.qqgb.com/Program/VC/VCsystem/Program_150929.html
细节请查MSDN