WM下给Dialog添加菜单 ,及隐藏工具栏

本文介绍如何使用SHMENUBARINFO结构体创建菜单栏,并详细解释了结构体成员变量的作用及初始化过程。包括设置菜单栏的父窗口、资源ID等属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// 创建SHMENUBARINFO结构体
SHMENUBARINFO   mbi; 

// 初始化, 每个字节都置为0
 ZeroMemory(&mbi,   sizeof(SHMENUBARINFO));   

// 设置结构体SHMENUBARINFO的长度
 mbi.cbSize   =   sizeof(SHMENUBARINFO);   

// 设置控制菜单的窗口,即CFileAssociationDlg对话框
 mbi.hwndParent   =   this->m_hWnd;   

// IDR_HELLO_MENU为资源文件中的Menu ID, 需要创建该菜单
 mbi.nToolBarId   =   IDR_HELLO_MENU;   

// 应用程序的实例
 mbi.hInstRes   =   AfxGetInstanceHandle();   

// Bitmap identifier used to load the bitmap resource for buttons with images from the instance specified by hInstRes. 
 mbi.nBmpId = 0;

// Number of images in the bitmap referred to by nBmpId.
 mbi.cBmpImages = 0; 

// 设置菜单属性, 这里需要注意的是SHCMBF_HMENU , SHCMBF_HIDESIPBUTTON属性, 前者必须要有, 否则菜单会创建失败, 后者只应用于Mobile
// 平台, 用来隐藏输入法菜单

 mbi.dwFlags = SHCMBF_COLORBK | SHCMBF_HMENU | SHCMBF_HIDESIPBUTTON;

// 创建菜单
 if(SHCreateMenuBar(&mbi))
 {
  
 }

 else
 {
  ::DestroyWindow(m_hWnd);
  PostQuitMessage(1);
  return(-1);
 }

 

::ShowWindow(::FindWindow( _T("menuworker"), 0 ),SW_HIDE);

::ShowWindow(::FindWindow( _T("MS_SIPBUTTON"), 0 ),SW_HIDE);//隐藏工具栏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值