Windows Mobile下给Dialog添加菜单(VS2005)
来源:互联网 发布:sql注入步骤 编辑:程序博客网 时间:2024/06/05 17:50
注:我用方法二进行成功了.
方法二,的第二步,我不知道如何声明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);
}
// 创建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);
}
另有文章:
Windows mobile 菜单(Menu Bar) 更改解决方案
http://guowee.javaeye.com/blog/635463
- Windows Mobile下给Dialog添加菜单(VS2005)
- 关于windows mobile的MFC DIALOG模式下菜单问题
- WTL Windows Mobile 编程: 给对话框添加左右菜单
- WM下给Dialog添加菜单 ,及隐藏工具栏
- 如何在WM平台下, 给创建的Dialog添加菜单
- 给Windows mobile应用添加托盘图标
- 给Windows mobile应用添加托盘图标
- 【转】[Windows Mobile]windows mobile 5.0 下创建/隐藏菜单
- windows mobile下菜单加载位图
- windows mobile 下创建/隐藏菜单
- vs2005 添加右键菜单
- Dialog中添加菜单
- windows mobile 菜单处理
- 【转】windows mobile 5.0 下创建/隐藏菜单
- 实现Windows下的右键菜单添加
- 添加/删除 windows下Git右键菜单
- Windows下添加右键快捷菜单
- Dialog中添加菜单【自定义Dialog】
- 扩展消息的总结
- 利用IPv6看清晰流畅的网络电视
- 你的成功在于你每天养成的习惯
- CheckBoxList
- 杨创YC2440开发板学习计划
- Windows Mobile下给Dialog添加菜单(VS2005)
- 理解Windows消息机制
- 装载程序集以及它的依赖项
- 那postmessage 和sendmessage有又什么区别?!
- 用javascript操作cookie简单实例
- JSP中的pageEncoding和 contentType属性
- java多态性详解——父类引用子类对象
- Java中的拷贝
- JSP获取客户端的浏览器和操作系统信息