ON_NOTIFY 和 ON_NOTIFY_REFLECT 消息传递 ++急
SOS
我真是疯了,几天都没搞好。
我动态创建工具栏,然后创建BUTTON。现在想在BUTTON上创建个下拉列表。
工具栏ID 555,por-up菜单ID = ID_TEXT
if (!m_ToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP, CRect(0,0,0,0), 555))
{
TRACE0("Failed to create ToolBar\n");
return -1;
}
if (!m_ReBar.Create(this/*,RBS_BANDBORDERS*/))
{
TRACE0("Failed to create rebar\n");
return -1; // fail to create
}
...
添加冷图,热图
...
// m_ToolBar.ModifyStyle(0, TBSTYLE_FLAT |CBRS_TOOLTIPS | TBSTYLE_TRANSPARENT | TBBS_CHECKBOX );
m_ToolBar.SetButtons(NULL,6);
m_ToolBar.GetToolBarCtrl().SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS);
DWORD dwStyle = m_ToolBar.GetButtonStyle(5);
dwStyle |= TBSTYLE_DROPDOWN;
m_ToolBar.SetButtonStyle(5, dwStyle);
...
m_ToolBar.SetButtonInfo(4, MS_HOME, TBBS_BUTTON, 4);
m_ToolBar.SetButtonInfo(5, MS_SEARCH, TBBS_DROPDOWN, 5);
...
然后我在CMainFrame 加入
1. afx_msg void OnToolbarDropDown(NMTOOLBAR* pnmh, LRESULT* plRes); //或(NMHDR * pNotifyStruct,LRESULT* result )
ON_NOTIFY(TBN_DROPDOWN, 555, OnToolbarDropDown) //555改成网上例子的AFX_IDW_TOOLBAR也无效果
void CMainFrame::OnToolbarDropDown(NMTOOLBAR* pnmtb, LRESULT *plr)
{ ... }
2.afx_msg void OnToolbarDropDown(NMHDR * pNotifyStruct , LRESULT* result)
ON_NOTIFY_REFLECT(TBN_DROPDOWN, OnToolbarDropDown)
...
上面两种都没效果,不知道怎么的.按扭图是灰色.
之后我又加了COMMAND响应后,按扭有了效果.可就是dropdown 没反映...
OnToolbarDropDown函数里面是没问题...用资源建菜单和BUTTON我试过可行.
请讲详细些,先谢谢了.