2010-06-26 39 views
1
制作工具帮助

我在头文件需要使用MFC

CToolBar myBar; 
public: 
int OnCreate(LPCREATESTRUCT lpCreateStruct); 
void OnToolBarButton1(); 
void OnToolBarButton2(); 

加入这个,我加入这.cpp文件

BEGIN_MESSAGE_MAP(CtoolbarfDlg, CDialog) 
    ON_WM_SYSCOMMAND() 
    ON_WM_PAINT() 
    ON_WM_QUERYDRAGICON() 
    ON_WM_CREATE() 
    ON_COMMAND(IDC_TBBUTTON1,OnToolBarButton1) 
    ON_COMMAND(IDC_TBBUTTON2,OnToolBarButton2) 
    //}}AFX_MSG_MAP 
END_MESSAGE_MAP() 

void CtoolbarfDlg::OnToolBarButton1() 
{ 
} 
void CtoolbarfDlg::OnToolBarButton2() 
{ 
} 
int CtoolbarfDlg::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{ 
    if (CDialog::OnCreate(lpCreateStruct) == -1) 
     return -1; 

    if (!myBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP 
      | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC)) 
    { 
     TRACE0("Failed to create toolbar"); 
     return -1; // fail to create 
    } 

    myBar.LoadToolBar(IDR_TOOLBAR1); 
    myBar.EnableDocking(CBRS_ALIGN_ANY); 
    EnableDocking(CBRS_ALIGN_ANY); 
    DockControlBar(&myBar); 
} 

我得到了这些错误:( 错误C3861:' EnableDocking':标识符未找到 错误C3861:'DockControlBar':标识符未找到

回答

2

CDialog没有成员EnableDocking或DockControlBar;它们是CFrameWnd的。 MFC假设你将把工具栏放到框架窗口中,微软从来没有提供过把它们放到对话框中的方法。它可以完成,但你必须自己完成所有的努力工作。

+0

有没有其他方法来制作工具栏? – 2010-06-26 04:05:51

0

我发现这篇关于代码项目的文章在过去有用,当时我试图做同样的事情。 codeproject article。 它也从CDialog派生 - 就像你试图在提供的示例中一样。