2010-06-26 2 views
1

i ajouté dans mon fichier d'en-têtebesoin d'aide pour faire la barre d'outils en utilisant MFC

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

et j'ajouté ce dans le fichier .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); 
} 

je suis arrivé ces erreurs :( erreur C3861: ' EnableDocking ': identifiant non trouvé erreur C3861:' DockControlBar ': identificateur introuvable

Répondre

2

CDialog ne possède pas les membres EnableDocking ou DockControlBar, ceux-ci sont membres de CFrameWnd. MFC suppose que vous allez mettre la barre d'outils dans une fenêtre frame, Microsoft n'a jamais fourni un moyen de les mettre dans une boîte de dialogue. Cela peut être fait, mais vous devrez faire tout le travail vous-même.

+0

Existe-t-il une autre méthode pour créer une barre d'outils? –

0

J'ai trouvé cet article sur le projet de code utile dans le passé quand j'ai essayé de faire de même. codeproject article. Il dérive également de CDialog - comme vous essayez de le faire dans l'exemple fourni.

Questions connexes