主题

1.  系统菜单下面添加自定义菜单

2.

3.

4.

5.

  
    

AppendMenu

The AppendMenu function appends a new item to the end of the
specified menu bar, drop-down menu, submenu, or shortcut menu. You can use
this function to specify the content, appearance, and behavior of the menu
item.
 
Note  The AppendMenu function has been superseded by the
InsertMenuItem function. You can still use AppendMenu, however, if you do
not need any of the extended features of InsertMenuItem.
    
BOOL AppendMenu(
  HMENU hMenu,        
// handle to menu
  UINT uFlags,        
// menu-item options
  UINT_PTR uIDNewItem, // identifier, menu, or submenu
  LPCTSTR lpNewItem    // menu-item content
);

ID

Value

Description

1.

MF_BITMAP

位图

2.

MF_DISABLED

不可用

3.

MF_ENABLED

可用

4.

MF_GRAYED

灰色

5.

MF_MENUBARBREAK

6.

MF_MENUBREAK

7.

MF_OWNERDRAW

8.

MF_POPUP

9.

MF_SEPARATOR

分隔符号

10.

MF_STRING

字符串

11.

MF_CHECKED

勾上

12.

MF_UNCHECKED

取消勾上

      

代码::系统菜单下面添加自定义菜单

1.在Resource.h里面
定义1个ID号

#define ID_MENU1 0x1500
 
2.在::OnInitDialog() 下面添加代码
// TODO: Add extra initialization here
CMenu*    pMenu = GetSystemMenu(FALSE);                    
CString menu1="新菜单";                                
pMenu->AppendMenu(MF_SEPARATOR);                        
pMenu->AppendMenu(MF_STRING, ID_MENU1, menu1);
    
3.在::OnSysCommand(UINT nID, LPARAM lParam) 下面添加响应单击 这个菜单的代码

void CProject02Dlg::OnSysCommand(UINT nID, LPARAM lParam)
{
    if ((nID & 0xFFF0) ==
IDM_ABOUTBOX)
    {
       
CAboutDlg dlgAbout;
       
dlgAbout.DoModal();
    }
    else if
(nID==ID_MENU1)
    {
       
MessageBox("YES");
    }
    else
    {
       
CDialog::OnSysCommand(nID, lParam);
    }

}

 
    

效果图:

    
//OnSysCommand

ID

nID

备注:OnSysCommand

1.

SC_CLOSE

Close
the CWnd object.

2.

SC_MAXIMIZE

(or
SC_ZOOM) Maximize the CWnd object.

3.

SC_MINIMIZE

(or
SC_ICON) Minimize the CWnd object.

4.

SC_MOVE

Move
the CWnd object

5.

SC_RESTORE

Restore
window to normal position and size.

6.

SC_SIZE

Size
the CWnd object.

7.

SC_NEXTWINDOW

Move
to the next window.

8.

SC_PREVWINDOW

Move
to the previous window.

9.

SC_KEYMENU

Retrieve
a menu through a keystroke.

10.

SC_MOUSEMENU

Retrieve
a menu through a mouse click.

11.

SC_HOTKEY

Activate
the CWnd object associated with the application-specified hot key.

12.

The
low-order word of lParam identifies the HWND of the window to

13.

SC_SCREENSAVE

Executes
the screen-saver application specified in the [boot] section of the
SYSTEM.INI file.

14.

SC_TASKLIST

Execute
or activate the Windows Task Manager application.

15.

SC_VSCROLL

Scroll
vertically.

16.

SC_HSCROLL

Scroll
horizontally.

C++ AppendMenu的更多相关文章

  1. AppendMenu函数添加菜单

    这个函数添加新项目到指定菜单的末尾.你可以使用appendmenu指定内容,外观,和菜单项行为. BOOL AppendMenu( HMENU hMenu, UINT uFlags, UINT uID ...

  2. C++ 最小化到托盘

    #define WM_SHOWTASK (WM_USER + 1) void CTestDlg::OnSysCommand(UINT nID, LPARAM lParam) { if ((nID &a ...

  3. Windows API 函数列表 附帮助手册

    所有Windows API函数列表,为了方便查询,也为了大家查找,所以整理一下贡献出来了. 帮助手册:700多个Windows API的函数手册 免费下载 API之网络函数 API之消息函数 API之 ...

  4. windows消息机制详解(转载)

    消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了.例如,单击鼠标.改变窗口尺寸.按下键盘上的一个键都会使Windows发送一个消息给应用程序.消息本身是作为一个记录传递给应用程序的 ...

  5. WIN 下的超动态菜单(三)代码

    WIN 下的超动态菜单(一)简介 WIN 下的超动态菜单(二)用法 WIN 下的超动态菜单(三)代码 作者:黄山松,发表于博客园:http://www.cnblogs.com/tomview/ 超动态 ...

  6. 【Windows编程】系列第十一篇:多文档界面框架

    前面我们所举的例子中都是单文档界面框架,也就是说这个窗口里面的客户区就是一个文档界面,可以编写程序在里面输入或者绘制文本和图形输出,但是不能有出现多个文档的情况.比如下面的UltraEdit就是一个典 ...

  7. 【Windows编程】系列第七篇:Menubar的创建和使用

    上一篇我们学习了利用windows API创建工具栏和菜单栏,与上一篇紧密联系的就是菜单栏,菜单栏是一个大多数复杂一些的Windows应用程序不可或缺的部分.比如下图就是Windows自带的记事本的菜 ...

  8. Microsoft Win32 to Microsoft .NET Framework API Map

    Microsoft Win32 to Microsoft .NET Framework API Map .NET Development (General) Technical Articles   ...

  9. C#封装好的Win32API

    Kernel.cs using System; using System.Runtime.InteropServices; using System.Text; using HANDLE = Syst ...

随机推荐

  1. HTML5全球普及加速:有望终结iOS与安卓界限【转】

    HTML5或将成为未来移动互联网时代的颠覆者. 5年前,当第一台iPhone诞生时,乔布斯断然拒绝了FlashPlayer,而选择HTML5(新型网页标准)取代Flash的功能.他曾预言,“虽然现阶段 ...

  2. Oracle 课程三之表设计

    完成本课程的学习后,您应该能够: •普通堆表优点和缺点 •理解rowid •全局临时表优点.缺点和适用场景 •分区表的类型和原理.优点和缺点.适用场景 •表字段的高效设计 •sequence的设计   ...

  3. Iwpriv工作流程及常用命令使用之二

    iwpriv工具通过ioctl动态获取相应无线网卡驱动的private_args所有扩展参数 iwpriv是处理下面的wlan_private_args的所有扩展命令,iwpriv的实现上,是这样的, ...

  4. POJ 2456 Aggressive cows

    Aggressive cows Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11192   Accepted: 5492 ...

  5. java web 学习十四(JSP原理)

    一.什么是JSP? JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. JSP这门技术的最大的特点在于,写jsp就像在写h ...

  6. Android基于基于布局嵌套的页面导航实现

    页面如下: 主页面的布局分隔为三部分: 注意观察上面标记为红色的android:id均采用android系统默认的名称: 页面的导航组件: <?xml version="1.0&quo ...

  7. [原创]C语言利用pcre正则表达式库

    C语言使用正则表达式,可以利用pcre库,这个比较不错的哦. 在使用过程中,利用python进行测试正则表达式是否OK,后发现出现了问题.如下所示: regex.c:11:18: warning: u ...

  8. LightOJ 1427 -Repository(ac自动机)

    题意: 求每个模式串在母串中出现的次数 #include <map> #include <set> #include <list> #include <cma ...

  9. 仿酷狗音乐播放器开发日志二十六 duilib在标题栏弹出菜单的方法

    转载请说明原出处,谢谢~~ 上篇日志说明了怎么让自定义控件响应右键消息.之后我给主窗体的标题栏增加右键响应,观察原酷狗后可以发现,在整个标题栏都是可以响应右键并弹出菜单的.应该的效果如下: 本以为像上 ...

  10. c#基类 常用数据验证的封装,数字,字符,邮箱的验证

    #region 常用数据验证的封装,数字字符的验证       /// <summary>       /// 常用数据验证的封装,数字字符的验证       /// </summa ...