方法一: 该方法从创建单文档工程中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); }
另有文章:
|
Windows Mobile下给Dialog添加菜单(VS2005)
最新推荐文章于 2024-09-13 23:02:24 发布
注:我用方法二进行成功了.
方法二,的第二步,我不知道如何
声明
CCommandBar
变量
IDR_MENU_TEST.
Windows Mobile下给Dialog添加菜单(VS2005)
2008-08-18 22:59http://hi.baidu.com/whyspai/blog/item/c62814fa0d427b9158ee902e.html