使用環境:vc2005+winXP_T
1.顯示消息提示框
//利用MessageBox顯示消息并返回值
int a = MessageBox(TEXT( "是否确认?" ), TEXT("Warning!!"),MB_YESNO|MB_ICONQUESTION );
if (a == IDYES)
AfxMessageBox(_T("Yes"));
else
AfxMessageBox(_T("No"));
//利用AfxMessageBox顯示消息并返回值
if(AfxMessageBox(_T("顯示下一條信息嗎?……"), MB_YESNO | MB_ICONEXCLAMATION) == IDYES)
{
AfxMessageBox(_T("第二條信息."), MB_YESNO | MB_ICONEXCLAMATION | MB_DEFBUTTON2);
}
2.顯示一個新窗口
void CHelloSdiDlg::OnBnClickedButton2()
{
//1.顯示一個模式對話框窗口
CAboutDlg dlgAbout;
dlgAbout.DoModal();
//2.顯示一個非模式對話框窗口
CMessage* obj;
obj=new CMessage(this);
obj->Create(IDD_DIALOG1);
obj->ShowWindow(SW_RESTORE);
}
3.對EDIT取值与賦值
//1.利用控件的ID
//取值
CEdit * pedit=(CEdit*)GetDlgItem( IDC_EDIT1 );
CString str;
pedit->GetWindowText(str);
AfxMessageBox(str);
//賦值
pedit->SetWindowText(_T("sdd可在ddd"));
//2.利用CEDIT,m_name為Control類型
//取值
CString strName;
m_name.GetWindowText(strName);
AfxMessageBox(strName);
//賦值
m_name.SetWindowText(_T("公大dddd"));
//3.利用CString,m_nameValue為CString類型
//取值
UpdateData(true);
AfxMessageBox(m_nameValue);
//賦值
m_nameValue="木ddd";
UpdateData(false);
4.開MDI子窗口
總的來說,mdi与四個東西有關,view,doc,frame,template,
1.Template是用來生成類似Word的界面的,子窗口是同樣的.同樣的frame,同樣的doc,同樣的view
2.一個子窗口就是一個frame,在frame中包含有一個或多個view,這些view可能包含同一個doc,也可能包含不同的doc
3.view可能使用doc,也可能不使用doc.
在實際使用中,我還不知道有沒有必要使用doc,因為我認為將一個對話框作為一個子窗口,似乎更合适.
下面以CChildFrame為frame,frame中包含一個view,view中不使用doc,至于template,我還不知道在這有什么用.
void CHelloCppApp::OnUser()
{
CCreateContext context;
//這里我不要doc,如果要,則可以聲明一個doc變量,避免每次生成view時都生成doc
context.m_pCurrentDoc=NULL;
context.m_pNewViewClass=RUNTIME_CLASS(CUserView);
//這句好像可有可無,如果要,則需聲明變量pDocTemplate
//context.m_pNewDocTemplate=pDocTemplate;
context.m_pLastView=(((CMainFrame *)m_pMainWnd)->GetActiveFrame() ? ((CMainFrame *)m_pMainWnd)-
>GetActiveFrame()->GetActiveView() : NULL);
context.m_pCurrentFrame=((CMainFrame *)m_pMainWnd)->GetActiveFrame();
CChildFrame* pFrame = new CChildFrame();
//IDR_USERFRAME為標題及圖標,需在資源中添加相同ID
if (!pFrame->LoadFrame(IDR_USERFRAME,WS_OVERLAPPEDWINDOW | FWS_PREFIXTITLE ,m_pMainWnd, &context
))return;
pFrame->InitialUpdateFrame(NULL,TRUE);
}
注:下一步進一步了解vc中各控件的使用.