Windows Mobile下给Dialog添加菜单(VS2005)

注:我用方法二进行成功了.
方法二,的第二步,我不知道如何 声明 CCommandBar 变量 IDR_MENU_TEST.
Windows Mobile下给Dialog添加菜单(VS2005)
2008-08-18 22:59http://hi.baidu.com/whyspai/blog/item/c62814fa0d427b9158ee902e.html

方法一:

该方法从创建单文档工程中copy过来。

1、 MyTestDlg.h文件中引入afxext.h头文件

#include <afxext.h>

2、 在资源中创建菜单资源

3、 声明CCommandBar变量IDR_MENU_TEST

CCommandBar m_wndCommandBar;

4、 MyTestDlg.cpp文件CMyTestDlg::OnInitDialog()方法内添加如下代码:

if (!m_wndCommandBar.Create(this) ||

              !m_wndCommandBar.InsertMenuBar(IDR_MENU_TEST) ||

              !m_wndCommandBar.AddAdornments(dwAdornmentFlags))

       {

              TRACE0("未能创建CommandBar/n");

              return -1;      // 未能创建

       }

 

       m_wndCommandBar.SetBarStyle(m_wndCommandBar.GetBarStyle() | CBRS_SIZE_FIXED);

 

有一个问题是我不知道如何屏蔽掉Windows Mobile平台中的输入法菜单(方法二可以解决)。

 

方法二:

以下这段代码添加在 CMyTestDlg::OnInitDialog() 方法内 , CMyTestDlg 是你要创建的对话框 .

//
创建 SHMENUBARINFO 结构体
SHMENUBARINFO   m_menu_bar;

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

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

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

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

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

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

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

//
设置菜单属性 , 这里需要注意 SHCMBF_HMENU 属性必须要有 , 否则菜单会创建失败 , SHCMBF_HIDESIPBUTTON 属性只应用于 Mobile 平台 , 用来隐藏输入法菜单
m_menu_bar.dwFlags = SHCMBF_COLORBK | SHCMBF_HMENU | SHCMBF_HIDESIPBUTTON;

//
创建菜单
if(!SHCreateMenuBar(&m_menu_bar))
{
   ::DestroyWindow(m_hWnd);
   PostQuitMessage(1);
   return(-1);
}
另有文章:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

零点零一

您的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值