您好我的单文档MFC应用程序出了问题。
我想将自己的工具栏添加到MainFrm类(CFrameWnd)。
我是MFC的新手。所以我不确定是否可以添加它。
到目前为止:
创建了ID为IDR_TOOLBAR1的工具栏资源
ID为ID_SELECT_SHAPE
的工具栏按钮在MainFrm.h中声明了CToolBar m_wndMyToolBar;
在MainFrm.cpp中:
if (!m_wndMyToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndMyToolBar.LoadToolBar(IDR_TOOLBAR1))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
工具栏现在显示。好极了!
但我不知道如何添加事件处理程序。
有人可以判断我是否走在正确的轨道上?如果是这样,谁可以告诉如何添加该事件?
答案 0 :(得分:1)
是的,你走在正确的轨道上。您的MainFrame.cpp应该有一个以
开头的部分BEGIN_MESSAGE_MAP
以
结束END_MESSAGE_MAP
在该部分内,您需要一个条目
ON_COMMAND (ID_SELECT_SHAPE, &CFrameWnd::OnSelectShape)
在.h文件中添加声明
afx_msg void OnSelectShape();
并在.cpp文件中实现OnSelectShape函数来处理您的事件。
根据处理程序需要执行的操作以及需要处理的数据,可能更容易添加处理程序并在CView ...类中实现它而不是CFrameWnd类。处理程序也可以在CDocument ...类中实现。单击工具栏按钮时,MFC Doc-View框架将首先在View中查找处理程序。如果没有可用的处理程序,它会在Document中查找一个,最后如果没有处理程序,它将在主框架窗口中查找一个。