我在我的头文件中添加了这个

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”:找不到标识符

最佳答案

CDialog没有成员EnableDocking或DockControlBar;这些是CFrameWnd的成员。 MFC假定您要将工具栏放入框架窗口,Microsoft从未提供将其放入对话框的方法。可以做到,但是您将必须自己完成所有艰苦的工作。

10-04 11:18