如何在Smartphone的Win32程序中使用Windows的通用菜单资源(MENU而不是SHMENUBAR)
2007-09-25 00:02
411 查看
前一段由于时间比较忙没有将解决办法贴给大家,本人也只是经过一整天摸索,才对SHMENUBAR资源有些了解,现将源代码放出,希望对大家在写菜单程序的时候能有所帮助。
VS 2005 里生成的资源文件分为两部分,一个*.rc,一个*.rc2,在*.rc2中有一个SHMENUBAR的资源,我们可以将这个资源和普通菜单资源建立关联,下面是某个*.rc2资源里的一段代码,我加了注释:
/////////////////////////////////////////////////////////////////////////////
//
// Data
//
IDR_MENUBAR SHMENUBAR DISCARDABLE
BEGIN
IDR_MENU, // 与之对应的Windows菜单资源的ID
2, // 主菜单个数
// 子菜单1
I_IMAGENONE, // 应该是菜单位图的标志(没用到,应该是BITMAP的ID),
IDM_OPEN, // SHMENUBAR 资源的ID
TBSTATE_ENABLED, // 菜单项的最初状态
TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, // 菜单的样式
// TBSTYLE_BUTTON 表示没有子项
// TBSTYLE_DROPDOWN 为包含子菜单的项
// TBSTYLE_AUTOSIZE为自动调整大小
IDS_OPEN, // 与菜单的文字对应的字符串资源中的ID
0, // 这个“0”一直也没搞懂
NOMENU, // 这个菜单项对应的Windows菜单资源中的从0开始的索引(NOMENU为-1,表示没有子菜单)
// 子菜单2
I_IMAGENONE,
IDM_OPTIONMENU,
TBSTATE_ENABLED,
TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE,
IDS_OPTION, 0, 1,
END
好,知道这些功能就可以很容易和 Windows 菜单建立关联了。
谢谢大家的支持,如果有什么问题可以给我发邮件,或者MSN,我们一块来研究解决
whikiey@hotmail.com
VS 2005 里生成的资源文件分为两部分,一个*.rc,一个*.rc2,在*.rc2中有一个SHMENUBAR的资源,我们可以将这个资源和普通菜单资源建立关联,下面是某个*.rc2资源里的一段代码,我加了注释:
/////////////////////////////////////////////////////////////////////////////
//
// Data
//
IDR_MENUBAR SHMENUBAR DISCARDABLE
BEGIN
IDR_MENU, // 与之对应的Windows菜单资源的ID
2, // 主菜单个数
// 子菜单1
I_IMAGENONE, // 应该是菜单位图的标志(没用到,应该是BITMAP的ID),
IDM_OPEN, // SHMENUBAR 资源的ID
TBSTATE_ENABLED, // 菜单项的最初状态
TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, // 菜单的样式
// TBSTYLE_BUTTON 表示没有子项
// TBSTYLE_DROPDOWN 为包含子菜单的项
// TBSTYLE_AUTOSIZE为自动调整大小
IDS_OPEN, // 与菜单的文字对应的字符串资源中的ID
0, // 这个“0”一直也没搞懂
NOMENU, // 这个菜单项对应的Windows菜单资源中的从0开始的索引(NOMENU为-1,表示没有子菜单)
// 子菜单2
I_IMAGENONE,
IDM_OPTIONMENU,
TBSTATE_ENABLED,
TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE,
IDS_OPTION, 0, 1,
END
好,知道这些功能就可以很容易和 Windows 菜单建立关联了。
谢谢大家的支持,如果有什么问题可以给我发邮件,或者MSN,我们一块来研究解决
whikiey@hotmail.com
相关文章推荐
- Win32汇编--如何使用资源 [菜单和加速键]
- vc2008中使用CMFCMenuBar如何动态改变菜单文本
- Python下使用help(dict),显示'more'不是内部或外部命令,也不是可运行的程序或批处理文件,该如何处理?
- 【MFC】Windows 用Visual studio 2010 编译出来的MFC 程序,在平板电脑上无法使用长按来弹出右击菜单
- 【转】如何在windows平台开发OpenGL程序使用OpenGL1.2或更高版本
- 如何使用java程序实现windows锁屏
- 如何在基于Dialog的程序中添加menu菜单 ?
- 如何在windows中使用cmd命令去编译,运行C++程序
- 师门技术论坛:java运行的程序占用哪些资源如何合理使用
- 使用 Visual Studio 生成通用的 XAML 应用程序 (Windows Phone 和 Windows 通用程序)
- Windows下如何使用QT编写dll程序
- Windows编程基础--第2节 win32程序资源管理
- WM6的WIN32程序创建菜单,利用资源文件
- 求解,windows编程中,win32程序,如何将字符串按一个一个字符逐个动态输出?
- Win32汇编--菜单进阶之不使用资源创建菜单
- 如何在Windows下使用Linux系统来编译和运行程序?
- windows下如何使用QT编写dll程序
- Windows下如何使用QT编写dll程序
- windows菜单及其它资源---Win32
- uwp 如何使用c#生成带MenuFlyoutItem的AppBarButton