★VC-MFC◆CToolbarCtrl && CDialog 下拉菜单 ★

来源:百度知道 编辑:UC知道 时间:2024/05/16 09:42:33
如题;
基于CDialog做成一个CToolBarCtrl的彩色菜单,我还需要一个下拉的,象浏览器一样的下拉菜单,简单代码如下:
i = m_wndToolBar.SendMessage(TB_ADDSTRING, 0, (LPARAM) (LPSTR) "登录");
tbb[nBtCount].iBitmap=0; //ButtonCount初值为0
tbb[nBtCount].idCommand=IDC_SYS_LOGIN; //工具栏与选单上某子项对应
tbb[nBtCount].fsState=TBSTATE_ENABLED;
tbb[nBtCount].fsStyle=TBSTYLE_DROPDOWN;***//已经显示下拉的图标
tbb[nBtCount].dwData=0;
tbb[nBtCount++].iString = i;
问题:
我该如何在tbb[nBtCount].fsStyle=TBSTYLE_DROPDOWN;添加自己的菜单内容,以及如何响应消息.
恳请老鸟予以阐述,太谢谢了.最好展示一下源码,我的油箱地址:lafengok@gmail.com
是基于对话框,而不是单文档的,网上很多例子都是msdn的单文档例子,这里就不要再回答了.再次谢谢!
晕了 :(
有么有简单点的方法?既然不知道怎么得到动态创建的dropdown按钮ID,怎么NOTIFY啊?
关键,消息映射的时候要有ID的吧?
更是,我是基于CDialog做的撒~
STone_DDONGDONG 该你出马详细解决了..................

在资源管理器中为工具栏添加ID
响应消息,
CTRL+W,在Message Maps选项中.Class Name项选择你当前的对话框类
Object IDS 项选择你添加的工具栏ID.然后在Messages添加COMMAND消息响应函数即可.

另外::菜单,我觉得就是在消息响应函数中动态添加菜单,菜单的消息响应也如上面所说一样了.

DROPDOWN按钮按下时向父窗口发送TBN_DROPDOWN消息(notification),父窗口响应这个消息,弹出菜单。
选中菜单后,父窗口响应 wm_command。
在父窗口中响应 重载 OnNotify,或在 windowproc中拦截 wm_notify。均可得到dropdown按钮的下拉消息。