2013-08-06 27 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,但搜索网络工具栏的情况下没有结果!
你能帮我解决问题吗?我该怎么办?

回答