⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_34736.htm

📁 vc
💻 HTM
字号:
<p>
序号:34736 发表者:果果 发表日期:2003-04-01 16:24:19
<br>主题:紧急求救(对话框)
<br>内容:紧急求救:<BR>&nbsp;&nbsp;&nbsp;&nbsp;我编了一个对话框,其上有一个“打开”按钮用于打开文件,我想在该按钮的处理<BR><BR>函数中调用 CFileDialog 对象,以便打开文件,代码如下:<BR><BR>void CMyDlg::OnOpenFile() <BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;// TODO: Add your control notification handler code here<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;// 调用文件对话框<BR>&nbsp;&nbsp;&nbsp;&nbsp;char szFilter[]="点文件(*.txt)|*.txt|";<BR>&nbsp;&nbsp;&nbsp;&nbsp;CFileDialog fDlg(<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRUE,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NULL,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"",<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;szFilter,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NULL);<BR>&nbsp;&nbsp;&nbsp;&nbsp;fDlg.DoModal();<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;// 获得全路径文件名<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_strFileName=fDlg.GetPathName();<BR>&nbsp;&nbsp;&nbsp;&nbsp;......<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;UpdateData(FALSE);<BR>}<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;问题:运行后,文件对话框显示不居中,我无法控制 CFileDialog 对象的显示位置<BR><BR>,请高手指点(勿笑)。
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:lyseed 回复日期:2003-04-02 11:37:05
<br>内容:不清楚你问题怎么产生的.<BR>你可以看看CFileDialog的原文件,<BR>DLGFILE.CPP<BR>里面有一个OnInitDone(),<BR>好象使用了CenterWindow,也可能就是Center之类.<BR>应该可以居中的.<BR>要想获得更好的性能,可以自己再定义一个导出类,<BR>也可以修改一下DLGFILE.CPP,使用完了再改回去.<BR>或者把DLGFILE.CPP里对CFileDialog的定义全部拷贝,<BR>自己改个类名重新使用.
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:果果 回复日期:2003-04-03 00:41:37
<br>内容:&nbsp;&nbsp;&nbsp;&nbsp;lyseed 大师,你说的许多函数我都试过,不行。<BR>&nbsp;&nbsp;&nbsp;&nbsp;如果改动CFileDialog的源文件,不太规范。我又较懒(也不里手),不想派生新类。<BR>&nbsp;&nbsp;&nbsp;&nbsp;我把问题说具体点:<BR>&nbsp;&nbsp;&nbsp;&nbsp;“打开”按钮处在屏幕边缘,于是 CFileDialog 的对话框跟着跑(真烦人!),我看了一些资料,大概是句柄、属性、父子等等的缘故,我实在无法,请各位大师多多指点!!!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:亚 回复日期:2003-04-12 09:56:31
<br>内容:果果,你好,我想问你,怎么设计点击一个按钮弹出一个对话框(包括文件对话框)?看来你是会了,请帮忙!!!我是初学者!!!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:林建华 回复日期:2003-04-12 17:03:48
<br>内容:用InitModalIndirect( HGLOBAL hDialogTemplate, CWnd* pParentWnd = NULL );函数可以在domodule之前初始化对话框<BR>初始化的内容在结构体hDialogTemplate中,<BR>typedef struct { <BR>&nbsp;&nbsp;DWORD style; //属性<BR>&nbsp;&nbsp;DWORD dwExtendedStyle; //扩展属性<BR>&nbsp;&nbsp;WORD&nbsp;&nbsp;cdit; //控件个数<BR>&nbsp;&nbsp;short x; //左上角点<BR>&nbsp;&nbsp;short y; //<BR>&nbsp;&nbsp;short cx; //宽<BR>&nbsp;&nbsp;short cy; //高<BR>} DLGTEMPLATE, *LPDLGTEMPLATE; <BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:凌仕晓 回复日期:2003-04-12 22:25:45
<br>内容:CFileDialog fDlg(<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRUE,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NULL,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NULL,//试试,我一直都这样,对话框一直都在中间<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;szFilter,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this);//试试,我一直都这样,对话框一直都在中间<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:不忘旧事 回复日期:2003-04-13 09:52:18
<br>内容:up
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:晚风也渡 回复日期:2003-04-13 10:03:45
<br>内容:你是想让文件对话框居于屏幕的中间?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:果果 回复日期:2003-04-16 00:36:02
<br>内容:CLearnerchen,你好!对话框按钮处理如下:<BR>&nbsp;&nbsp;&nbsp;&nbsp;先在你的应用程序中设计对话框资源(其上布满了控件),然后为该对话框定义类(用向导),并重载几个函数。<BR>&nbsp;&nbsp;&nbsp;&nbsp;回到对话框资源编辑器,双击某个按钮(如前我说的“打开”),按提示便可为该按钮增加处理函数。<BR>&nbsp;&nbsp;&nbsp;&nbsp;也可用向导针对某个特定消息,增加处理函数。<BR>&nbsp;&nbsp;&nbsp;&nbsp;这些书上都有,一般大家都知道!<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:果果 回复日期:2003-04-18 00:32:13
<br>内容:多谢各位!我的问题已经解决。<BR>另外,CLearnerChen 需要的代码如下:<BR><BR>// “打开”按钮的处理函数代码:<BR>void CMyAppMainDlg::OnBUTTONOpenFile() <BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;// TODO: Add your control notification handler code here<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;// 调用文件对话框<BR>&nbsp;&nbsp;&nbsp;&nbsp;char szFilter[]="数据文件(*.xls)|*.xls|";<BR>&nbsp;&nbsp;&nbsp;&nbsp;CFileDialog fDlg(<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRUE,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NULL,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NULL,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;szFilter,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NULL);<BR>&nbsp;&nbsp;&nbsp;&nbsp;fDlg.m_ofn.lStructSize = 88; // 新式对话框<BR>&nbsp;&nbsp;&nbsp;&nbsp;fDlg.DoModal();<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;// 取得文件名<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_strFileName=fDlg.GetPathName();<BR>&nbsp;&nbsp;&nbsp;&nbsp;// 先启用MYOK<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_btnMYOK.EnableWindow(TRUE);<BR>&nbsp;&nbsp;&nbsp;&nbsp;// 测试文件<BR>&nbsp;&nbsp;&nbsp;&nbsp;CFileStatus filestatus;<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(!CFile::GetStatus(m_strFileName, filestatus))<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 若文件不存在,则置空成员、禁MYOK<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_strFileName="";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_btnMYOK.EnableWindow(FALSE);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;// 更新控件<BR>&nbsp;&nbsp;&nbsp;&nbsp;SetDlgItemText(IDC_EDIT_FileName, m_strFileName);<BR>}<BR><BR>// 注:MYOK是“确认”按钮。<BR><BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -