首先怎样弹出界面库的菜单呢?
首先模块向主窗口发出弹出菜单请求,然后在主程序中收到请求后向发出请求模块询问菜单,模块加载菜单返回然后由主窗口调用函数弹出菜单。
略为思索发现其实这个方法有点绕,可以更为直接点,模块向主窗口发出弹出菜单请求,请求中既包含要弹出的菜单句柄和位置坐标信息一次完成。可以根据这个思路改进上面的方法。
BCGControlBar以及VC2008FeaturePack在菜单中添加图标一般来说需要在资源里添加一个专门的Toolbar工具条资源 然后调用AddToolBarForImageCollection这个方法来加载图标,此种方法适合资源都在主工程时使用。
如果是其他模块请求主程序弹出菜单时这时候怎么增加菜单图标?
我们可以利用在菜单中增加自定义的数据来保存图标,当然也可以直接设置菜单图标,这里我只以在菜单使用自定义数据为例子。
ok图标已经设置好了,然后需要在CMainframe中增加一个虚函数的实现即可
函数原型是
实现:
以上代码为VC2008FeaturePack环境,在bcg环境下类似只需要替换相应的函数即可