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(); }
原文:http://blog.csdn.net/hepfei90/article/details/44044055