练习定制系统菜单

 

如何定制对话框系统菜单(读记)

原文链接: http://www.vckbase.com/document/viewdoc/?id=657

设置了 EX_WM_TOOLWINDOW 扩展式样,因此在标题栏左上角看不到系统菜单图标。

 

OnInitDialog()

// 解决 Windows 95 中的 bug 
    
    
   ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
   
   
// 解决 Windows 95 中的 bug 
    
    
   ASSERT((IDM_EXIT & 0xFFF0) == IDM_EXIT); 
   
   
没用过95,不晓得啥BUG 
    
    

专业用语:control menu指的是系统菜单,如下:

CWnd::GetSystemMenu

CMenu* GetSystemMenu( BOOL bRevert ) const;

bRevertFALSE,返回当前使用的系统菜单的一份COPY的指针。为TRUE,则会将系统菜单改为默认状态,并返回一个先前未被定义的值。GetSystemMenu返回的值提供给CMenu::AppendMenu, CMenu::InsertMenu, or CMenu::ModifyMenu三个函数使用。

 

 

添加菜单项函数,Append暂译为添加。

关于BOOL AppendMenu( UINT nFlags, UINT nIDNewItem = 0, LPCTSTR lpszNewItem = NULL );

BOOL AppendMenu( UINT nFlags, UINT nIDNewItem, const CBitmap* pBmp );

关键在于nFlagsMF_STRING, MF_SEPARATOR二者分别表示添加菜单项,分隔符,另有MF_POPUP等。

所有预定义的控制菜单项(也就是系统菜单)的ID号必须大于 0xF000。如果某个应用程序要添加系统菜单,

     其系统菜单的 ID 号必须小于F000

通常系统菜单通过 WM_SYSCOMMAND 消息处理。

 

总共学习了三个函数,增加 AppendMenu, 修改 ModifyMenu, 删除 RemoveMenu.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值