VS2008如何在MFC中d出选择文件夹的对话框?

VS2008如何在MFC中d出选择文件夹的对话框?,第1张

CFileDialog( BOOL bOpenFileDialog, LPCTSTR
lpszDefExt = NULL, LPCTSTR lpszFileName
= NULL, DWORD dwFlags =
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR
lpszFilter = NULL, CWnd pParentWnd =
NULL );
这是CFileDialog的构造函数对照你的参数 ,过滤器(lpszFilter)你设置成"PDF 文件 (pdf)|pdf|所有文件 ()|||")
就不再是默认值,那前面的dwFlags也要设置 总之 参数填的不对 你对照看下吧

CFileDialog CFileDialogEx(TRUE,0,0,4|2|OFN_ALLOWMULTISELECT,filefilter,this->GetSafeOwner(),0,1);
OPENFILENAME& ofn = CFileDialogExGetOFN();
ofnlpstrTitle = sTitle;
ofnlpstrFile = sMaxfileGetBuffer(MAXFILEBUFFER);
ofnnMaxFile = MAXFILEBUFFER;
ofnlpstrInitialDir = path;//设置初始文件夹;
sMaxfileReleaseBuffer();//必须有;
我的是多选的代码。比较简单。
建议你参考一下MSDN的例子。
>首先要,写一个d出对话框的槽函数;
然后在构造函数里连接按钮按下和d出对话框的槽函数,如下:
connect(uibuttonName,SIGNAL(按钮按下的信号),this,SLOT(d出对话框的槽函数));

void CmodeDlg::OnBnClickedButton1()
{
OnBnClickedButton2();
}
void CmodeDlg::OnBnClickedButton2()
{
MessageBoxA(NULL,"123","123",MB_OK);
}
给分吧

你可以加入下面的代码:
private void button1_Click(object sender, EventArgs e)
{
thisFormClosing += new FormClosingEventHandler(Form1_FormClosing);
}
void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBoxShow("你确定关闭窗口吗","Application",MessageBoxButtonsYesNo,MessageBoxIconInformation)==DialogResultNo)
{
eCancel = true;
}
}
希望对您有帮助。

VS是一个开发工具,你让它d出子窗体干嘛?
你是想开发一个Winform程序,并让这个Winform程序d出子窗体吧?
如果是简单的对话框,用MessageBoxShow方法即可
如果是自定义窗体,new一个窗体对象,Show方法即可

看d出的错误信息知:你的那段代码使用了assert宏,并且assert宏里面的语句报错,应该是非法指针引起的(可能你引用了对话框里面的某些控件,因为此时对话框的控件此时还没完成绘制,资源没初始化等;
你只要把那段代码放到对话框类的OnInitialDlg函数中,应该没问题


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12927175.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-28
下一篇2025-08-28

发表评论

登录后才能评论

评论列表(0条)

    保存