windows創建對話框的源代碼
定義一個成員變量,當在調用DOMODAL()的時候,便把要加到COMBOBOX裏面的數據給寫進這個成員變量,然後在ONINITDIALOG裏面對COMBOBOX進行初始化
void CMyView::OnShow()
{
// TODO: Add your command handler code here
CDIALOG1 dlg;
dlg.Create(IDD_DIALOG1) ;
dlg.ShowWindow(SW_SHOW);
}
作爲非模態對話框,你定義的dlg是一個局部對象,那麼執行完dlg.ShowWindow(SW_SHOW);後一到}符號處OnShow()函數結束,dlg這個局部對象的生命週期也到了,系統會隨之把爲dlg所關聯的對話框資源也銷燬,所以你看不到對話框顯示,你把dlg改變成CMyView的類成員變量來定義就好了
CString type = L"";
type.AppendFormat(L"ALL FILES(*%s)|*%s||",SUFFIX,SUFFIX);
CFileDialog file_dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,type,AfxGetMainWnd());
CString current_file = L"";
if (file_dlg.DoModal() == IDOK)
{
current_file = file_dlg.GetPathName();
if (!(current_file.Right(strlen(SUFFIX))==SUFFIX))
{
current_file+=SUFFIX;
}
// CFile file(current_file,CFile::modeRead);
// int bufferLength = file.GetLength();
// char *buffer = (char *)malloc(bufferLength);
// file.Read(buffer,bufferLength);
// file.Close();
}