前一段由于时间比较忙没有将解决办法贴给大家,本人也只是经过一整天摸索,才对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