2010-06-26 4 views
1
를 사용하여 도구 모음을 만드는 데 도움이 필요

난 내 헤더 파일가 MFC

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

이 추가와 나는 이러한 오류 :( 오류 C3861있어

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); 
} 

.cpp 파일이 추가 ' EnableDocking ': 식별자를 찾을 수 없습니다. 오류 C3861 :'DockControlBar ': 식별자를 찾을 수 없습니다.

답변

2

CDialog에는 EnableDocking 또는 DockControlBar 멤버가 없으며 CFrameWnd. MFC는 툴바를 프레임 창에 배치한다고 가정하고 Microsoft는 대화 상자에 도구 모음을 배치하는 방법을 제공하지 않았습니다. 그것은 할 수 있지만, 모든 노력을 직접해야 할 것입니다.

+0

툴바를 만드는 다른 방법이 있습니까? –

0

코드 프로젝트에서이 기사를 사용하면 과거에 유용하게 사용할 수있었습니다. codeproject article. 제공된 샘플에서 시도하는 것처럼 CDialog에서도 파생됩니다.