📄 subject_19026.htm
字号:
<p>
序号:19026 发表者:草席 发表日期:2002-10-25 08:55:18
<br>主题:有关CFileDialog
<br>内容:CFileDialog是VC提供的一个标准的文件打开、存储对话框类,在程序中可以对对话框进行一定的修改!比如可以在原来的基础上,添加按钮等资源!现在我的问题是<BR><BR>选中文件后,点击原来的打开(或者存储)按钮,让对话框继续存在,并执行我自己的相关操作!<BR><BR>我自己考虑可能要用到hook技术,不知道哪位大虾能指点一二!!!谢过
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:凯凯 回复日期:2002-10-25 09:13:37
<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>
回复者:草席 回复日期:2002-10-25 09:19:24
<br>内容:to凯凯:<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>
回复者:PLB 回复日期:2002-10-25 09:32:04
<br>内容:继承CFileDialog类和他的对话框资源,在继承类中硬性声明CFileDialog::OnOK(),然后实现之;<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>
回复者:草席 回复日期:2002-10-25 09:43:19
<br>内容:PLB :<BR><BR> 看来你比较喜欢霸王硬上功:)玩笑,不要在意<BR> 我这个东西比较着急,现在正在用凯凯说的办法实现。我觉得你说的方法不一定行,因为你在继承的对话框中根本就没有IDOK资源,他也不会给你响应你的函数<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>回复者:徐景周 回复日期:2002-10-25 10:29:43
<br>内容:可试下面方法:选从它派生一个类,如:<BR>class COpenDataDlg : public CFileDialog<BR>{<BR>// Construction<BR>public:<BR> COpenDataDlg(BOOL bOpenFileDialog, <BR> LPCTSTR lpszDefExt = NULL,<BR> LPCTSTR lpszFileName = NULL,<BR> DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,<BR> LPCTSTR lpszFilter = NULL,<BR> CWnd* pParentWnd = NULL); // standard constructor<BR><BR> virtual BOOL OnFileNameOK();<BR><BR> DECLARE_MESSAGE_MAP()<BR>};<BR>初始化时可实现替换文字等:<BR>COpenDataDlg::COpenDataDlg(BOOL bOpenFileDialog, LPCTSTR lpszDefExt,<BR> LPCTSTR lpszFileName, DWORD dwFlags, LPCTSTR lpszFilter, CWnd* pParentWnd)<BR> : CFileDialog(bOpenFileDialog, lpszDefExt, lpszFileName, dwFlags, lpszFilter, pParentWnd)<BR>{<BR> //{{AFX_DATA_INIT(COpenDataDlg)<BR> //}}AFX_DATA_INIT<BR> m_ofn.Flags |= OFN_ENABLETEMPLATE;<BR> m_ofn.lpTemplateName = MAKEINTRESOURCE(IDD_CURVE_OPENDLG);<BR> m_ofn.lpstrTitle = _T("加载数据");<BR> m_bClosed = FALSE;<BR> <BR>}<BR>BOOL COpenDataDlg::OnInitDialog() <BR>{<BR> CFileDialog::OnInitDialog();<BR><BR> // 嵌套的CFileDialog和此对话框(this)属于同一父窗口<BR> // 但CFileDialog内的控件属于该父窗口,不属于this<BR> CWnd* pWnd = GetParent()->GetDlgItem(IDOK);<BR> ASSERT(pWnd != NULL);<BR> pWnd->SetWindowText("选中(&S)"); // 指向CFileDialog“打开”按钮<BR>}<BR><BR>在:<BR>BOOL COpenDataDlg::OnFileNameOK()<BR>{<BR> return !m_bClosed; // return TRUE -- 阻止对话框关闭<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>
回复者:草席 回复日期:2002-10-25 10:35:52
<br>内容:还想进一步问,怎么得到原来对话框上的资源?比如OK按钮用IDOK,其他的呢?编辑框,还有其他的资源怎么得到?<BR><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>
回复者:董栋 回复日期:2002-10-25 11:24:23
<br>内容:那个对话框可以更改?<BR>我以前也试过,没有成功啊,兄台指点一下该从何处下手?<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>
回复者:草席 回复日期:2002-10-25 11:44:18
<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>
回复者:董栋 回复日期:2002-10-25 11:57:44
<br>内容:哦,不錯。<BR><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>
回复者:風在發端 回复日期:2002-11-14 16:15:52
<br>内容:各位,那對那個模板有什么要求嗎? filedialog如何處理新模板里的控件。 它把目錄顯示在哪里?<BR><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>
回复者:John Lan 回复日期:2002-11-14 20:44:18
<br>内容:IDs in <dlgs.h>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:風在發端 回复日期:2002-11-14 21:14:23
<br>内容:dr0, what do you mean?<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>
回复者:John Lan 回复日期:2002-11-14 21:31:42
<br>内容:I mean the control IDs of file dialog are defined in <dlgs.h><BR>*Inside Visual C++* has a sample which demonstrates how to customize<BR>the 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>
回复者:風在發端 回复日期:2002-11-14 21:41:59
<br>内容:我今天按照上边的例子写了一个,可是在弹出我的类时,闪了一下就消失了。<BR><BR>为什么啊? 我指定的模板是随便一个IDD_DLG.<BR><BR>我的QQ: 527753 , 希望可以跟你聊一下。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:John Lan 回复日期:2002-11-14 22:07:03
<br>内容:sorry, I have no QQ. <BR>maybe u should use debugger to trace into the nutshell<BR>for the answser.
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:風在發端 回复日期:2002-11-14 22:12:21
<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 + -