2012-05-05 48 views
0

我正在用工具欄編寫一個MFC文檔視圖應用程序。我想在大型機windoiw的右上角添加一個工具欄。目前我使用下面的代碼來設置工具欄CToolBar在對話框的右下角

if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP | CBRS_BORDER_RIGHT 
    | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || 
    !m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) 
{ 
    TRACE0("Failed to create toolbar\n"); 
    return -1;  // fail to create 
} 

上述代碼將在主機左上角創建收費條。我想把它從左上角移到右上角。我希望工具欄位於右上角。

在MFC中有選項可以在右側,左側,頂部和底部設置工具欄。但沒有選項將其設置在右上角

在此先感謝!

+0

據我所知,唯一的方法是在中間添加虛擬按鈕並將按鈕移動到末尾 – DAC84

回答

0

據我所知,唯一的方法是在中間添加虛擬按鈕並將按鈕移動到最後。

LPTBBUTTON newbutton=NULL; 
    newbutton=(LPTBBUTTON)calloc(20,sizeof(TBBUTTON)); 
    int i=0; 

    for(i=0;i<20;i++) 
    { 

     newbutton[i].iBitmap=-1;// for dummy button 
     newbutton[i].idCommand=1222; 
     newbutton[i].fsState=TBSTATE_ENABLED; 
     newbutton[i].fsStyle=TBSTYLE_BUTTON; //TBSTYLE_SEP; 
     newbutton[i].iString=-1; 

    } 
    m_wndToolBar.GetToolBarCtrl().AddButtons(20,newbutton) // this will add 20 new buttons 
    m_wndToolBar.GetToolBarCtrl().MoveButton(1,20);// This will move button from left to right 

但這個模型中唯一的問題是調整按鈕來處理最大化選項。需要處理最大化按鈕按下並將按鈕增益移動到右側。

如果有任何選擇,請讓我知道。謝謝

1

您可能可以在現有工具欄左側創建另一個工具欄,並將其保留爲空。將其調整到任何剩餘的空間。

對不起,但因爲我使用工具欄來提供任何細節已經太久了。

+0

我也試過。但工具欄是在第一個下方創建的。所以它看起來像是頂部的兩個工具欄。任何方式感謝您的回覆, – DAC84

相關問題