2013-08-06 51 views
0

here's我用於在對話框中創建工具欄的代碼以及剛剛添加的教程的初始階段碼到我的程序:編寫代碼後,將工具欄添加到基於對話框的mfc對話框不運行

InitialJobProject2Dlg.h

CToolBar m_FirstToolBar; 

InitialJobProject2.cpp

BOOL CInitialJobProject2Dlg::OnInitDialog() 
{ 
CDialogEx::OnInitDialog(); 

// Add "About..." menu item to system menu. 

// IDM_ABOUTBOX must be in the system command range. 
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); 
ASSERT(IDM_ABOUTBOX < 0xF000); 

CMenu* pSysMenu = GetSystemMenu(FALSE); 
if (pSysMenu != NULL) 
{ 
    BOOL bNameValid; 
    CString strAboutMenu; 
    bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX); 
    ASSERT(bNameValid); 
    if (!strAboutMenu.IsEmpty()) 
    { 
     pSysMenu->AppendMenu(MF_SEPARATOR); 
     pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); 
    } 
} 

// Set the icon for this dialog. The framework does this automatically 
// when the application's main window is not a dialog 
SetIcon(m_hIcon, TRUE);   // Set big icon 
SetIcon(m_hIcon, FALSE);  // Set small icon 

// TODO: Add extra initialization here 
GDALAllRegister(); 

bool bAnchored = false; 
bAnchored = m_resizer.Hook(this); 
assert(bAnchored); 
bAnchored = m_resizer.SetAnchor(IDC_TXTDataFile,ANCHOR_LEFT | ANCHOR_TOP); 
assert(bAnchored); 
bAnchored = m_resizer.SetAnchor(IDC_EDTDataPath,ANCHOR_LEFT | ANCHOR_TOP); 
assert(bAnchored); 
bAnchored = m_resizer.SetAnchor(IDC_BTNBrowse,ANCHOR_LEFT | ANCHOR_TOP); 
assert(bAnchored); 
bAnchored = m_resizer.SetAnchor(IDC_RICHEDTHeader,ANCHOR_HORIZONTALLY); 
assert(bAnchored); 
bAnchored = m_resizer.SetAnchor(IDC_OPENGL,ANCHOR_ALL); 
assert(bAnchored); 
bAnchored = m_resizer.InvokeOnResized(); 
assert(bAnchored); 

if(!m_FirstToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | 
    WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | 
    CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || 
    !m_FirstToolBar.LoadToolBar(IDR_TOOLBAR1)) 
{ 
    EndDialog(IDCANCEL); 
} 

RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST,0); 
m_FirstToolBar.MoveWindow(50, 0,100, 100, 1); 

m_oglWindow = new COpenGLControl(); 

CRect rect; 

// Get size and position of the picture control 
GetDlgItem(IDC_OPENGL)->GetWindowRect(rect); 

// Convert screen coordinates to client coordinates 
ScreenToClient(rect); 

// Create OpenGL Control window 
m_oglWindow -> oglCreate(rect, this); 

// Setup the OpenGL Window's timer to render 
//m_oglWindow -> m_unpTimer = m_oglWindow -> SetTimer(1, 1, 0); 

return TRUE; // return TRUE unless you set the focus to a control 
} 

,這部分被添加到添加工具欄:

if(!m_FirstToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | 
     WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | 
     CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || 
     !m_FirstToolBar.LoadToolBar(IDR_TOOLBAR1)) 
    { 
     EndDialog(IDCANCEL); 
    } 

    RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST,0); 
    m_FirstToolBar.MoveWindow(50, 0,100, 100, 1); 

在這個階段,當我運行的代碼,有沒有錯誤,但不顯示對話框窗口。我有a similar problem when adding rich edit box to my dialog,但搜索網絡工具欄的情況下沒有結果!
你能幫我解決問題嗎?我該怎麼辦?

回答