码迷,mamicode.com
首页 > 其他好文 > 详细

001在系统菜单中添加菜单项

时间:2014-07-16 22:48:32      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:blog   http   使用   2014   io   for   

技术要点:

     为了操作系统菜单,先要获取系统菜单指针,可以通过GetSystemMenu函数实现,然后利用菜单指针添加一个菜单项,最后在对话框OnSysCommand方法中处理菜单项的命令。

GetSystemMenu方法用于获取一个系统菜单的指针,语法如下:

CMenu* GetSystemMenu(BOOL bRect);

bRect:FALSE时,该方法返回当前正在使用的系统菜单;TRUE时,该方法将重新设置系统菜单到默认状态,并且方法返回值不可用。

实现过程:

(1)新建一个基于对话框的应用程序

(2)在对话框类中定义一个菜单指针m_pMenu,用于指向系统菜单、

(3)主要程序代码。

在对话框初始化时,获取系统菜单指针,向系统菜单中添加菜单项,代码如下:

m_pMenu=GetSystemMenu(FALSE);

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

在对话框的OnSysCommand方法中添加消息处理代码:

else if(nID==IDI_PECULIARMENU)

{

  MessageBox("系统菜单","提示",MB_OK|MB_ICONINFORMATION);

}

执行结果:

bubuko.com,布布扣

注意:这里图标和背景都有所改变,因为还进行其他操作:

1、在构造函数中,装载了左上角的新图标。

m_hIcon = AfxGetApp()->LoadIcon(IDI_MAINMENU);

2、在OnPaint()函数中,增加了添加背景的代码,如下:

 CDC* m_dc = this->GetDC();
 CDC m_memdc;
 m_memdc.CreateCompatibleDC(m_dc);
 CBitmap m_bitmap;
 m_bitmap.LoadBitmap(IDB_MAIN);
 m_memdc.SelectObject(&m_bitmap);
 m_dc->BitBlt(0,0,800,700,&m_memdc,0,0,SRCCOPY);
 m_bitmap.DeleteObject();

001在系统菜单中添加菜单项,布布扣,bubuko.com

001在系统菜单中添加菜单项

标签:blog   http   使用   2014   io   for   

原文地址:http://www.cnblogs.com/liutianyi10/p/3835592.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!