﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-QuXiao-随笔分类-MFC学习笔记</title><link>http://www.cppblog.com/ACM-Boy/category/9235.html</link><description>每天进步一点点!</description><language>zh-cn</language><lastBuildDate>Thu, 06 Aug 2009 14:30:34 GMT</lastBuildDate><pubDate>Thu, 06 Aug 2009 14:30:34 GMT</pubDate><ttl>60</ttl><item><title>MFC中Radio Button使用方法(转)</title><link>http://www.cppblog.com/ACM-Boy/archive/2009/07/30/91681.html</link><dc:creator>quxiao</dc:creator><author>quxiao</author><pubDate>Thu, 30 Jul 2009 03:10:00 GMT</pubDate><guid>http://www.cppblog.com/ACM-Boy/archive/2009/07/30/91681.html</guid><wfw:comment>http://www.cppblog.com/ACM-Boy/comments/91681.html</wfw:comment><comments>http://www.cppblog.com/ACM-Boy/archive/2009/07/30/91681.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ACM-Boy/comments/commentRss/91681.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ACM-Boy/services/trackbacks/91681.html</trackback:ping><description><![CDATA[<p>先为对话框加上2个radio button，分别是Radio1和Radio2。</p>
<p>问题1：如何让Radio1或者Radio2默认选上？如何知道哪个被选上了？<br><br>关键是选上，&#8220;默认&#8221;只要放在OnInitDialog()即可。三种方法可以让它选上，<br>第一种：<br>((CButton *)GetDlgItem(IDC_RADIO1))-&gt;SetCheck(TRUE);//选上<br>((CButton *)GetDlgItem(IDC_RADIO1))-&gt;SetCheck(FALSE);//不选上<br>((CButton *)GetDlgItem(IDC_RADIO1))-&gt;GetCheck();返回1表示选上，0表示没选上<br>第二种：<br>关
联一个congtrol型变量（子类化），好ctrl+W(即打开classwizard),点开 Member
Variables，咦？怎么没有IDC_RADIO1这个ID？原来是没有分组。因为radio
button通常都是成组使用的，在一组里面是互斥的。取消，回到对话框资源面板，右键Radio1查看属性把Group选上，那么，Radio1和
Radio2就是一组了（怎么知道他们是一组的？后面说）。此时，就可以为Radio1增加一congtrol型变量m_ctrlRadio1了。如下：<br>m_ctrlRadio1.SetCheck(TRUE);<br>同样可以使用GetCheck()获取状态。<br>第三种：<br>关联一个int型变量（同样需要先分组）m_nRadio1，打开对话框构造函数，你会发现有：<br>m_nRadio1
=
-1;m_nRadio1别赋值-1表示哪个都没有选上。如果你把-1改成0，就会发现Radio1默认被选上了，依此类推，m_nRadio1的值为1
就是第二个被选上了（这里同样有问题，哪个是第一个？哪个是第二个？）。获取状态很简单，UpdateData(TRUE)后判断m_nRadio1的值
即可。</p>
<p>问题2：如何使用多组？<br><br>多组和一组是一样的使用，只要搞清楚哪个是哪一组的就行了。再为对话框添加Radio3和Radio4。很
简单，先为这些Radio Button排个顺序，就是排列他们的TAB
ORDER。在对话框资源面板上Ctrl+D，然后按你自己的理想顺序用鼠标逐个点击就可以了。不妨假设Radio1、Radio2、Radio3、
Radio4分别是1、2、3、4。Radio1和Radio3都选上Group属性，那么，1、2是一组，3、4是另外一组，因为分组的原则是在选上
Group属性的这一个开始直到碰到下一个选上Group属性的。你不妨再Ctrl+D，令Radio1、Radio2、Radio3、Radio4分别
是1、3、2、4，那么Radio1和Radio3是一组，如果m_nRadio1=1,此时是Radio3被选上而不是Radio2被选上。分好了组就
分别使用它们吧。</p>
<p>嗯，也许你还要为它们添加鼠标单击事件，非常简单。</p>
<p>&nbsp; 一、对单选按钮进行分组：<br>每组的第一个单选按钮设置属性：Group，Tabstop，Auto;其余按钮设置属性Tabstop，Auto。如：<br>Radio1、Radio2、Radio3为一组，Radio4、Radio5为一组</p>
<p>设定Radio1属性：Group，Tabstop，Auto<br>设定Radio2属性：Tabstop，Auto<br>设定Radio3属性：Tabstop，Auto</p>
<p>设定Radio4属性：Group，Tabstop，Auto<br>设定Radio5属性：Tabstop，Auto</p>
<p>二、用ClassWizard为单选控件定义变量，每组只能定义一个。如：m_Radio1、m_Radio4。</p>
<p>三、用ClassWizard生成各单选按钮的单击消息函数，并加入内容：</p>
<p>void CWEditView::OnRadio1() <br>{<br>&nbsp;&nbsp;&nbsp; m_Radio1 = 0;&nbsp;&nbsp;&nbsp; //第一个单选按钮被选中<br>}</p>
<p>void CWEditView::OnRadio2() <br>{<br>&nbsp;&nbsp;&nbsp; m_Radio1 = 1;&nbsp;&nbsp;&nbsp; //第二个单选按钮被选中<br>}</p>
<p>void CWEditView::OnRadio3() <br>{<br>&nbsp;&nbsp;&nbsp; m_Radio1 = 2;&nbsp;&nbsp;&nbsp; //第三个单选按钮被选中<br>}</p>
<p>void CWEditView::OnRadio4() <br>{<br>&nbsp;&nbsp;&nbsp; m_Radio4 = 0;&nbsp;&nbsp;&nbsp; //第四个单选按钮被选中<br>}</p>
<p>void CWEditView::OnRadio5() <br>{<br>&nbsp;&nbsp;&nbsp; m_Radio4 = 1;&nbsp;&nbsp;&nbsp; //第五个单选按钮被选中<br>}</p>
<p>四、设置默认按钮：<br>在定义控件变量时，ClassWizard在构造函数中会把变量初值设为-1，只需把它改为其它值即可。<br>如：<br>&nbsp;//{{AFX_DATA_INIT(CUnitBlockTypeFlankPublicAdd)<br>&nbsp;m_Radio1 = 0;&nbsp;&nbsp;&nbsp; //初始时第一个单选按钮被选中<br>&nbsp;m_Radio4 = 0;&nbsp;&nbsp;&nbsp; //初始时第四个单选按钮被选中<br>&nbsp;//}}AFX_DATA_INIT</p>
<br><img src ="http://www.cppblog.com/ACM-Boy/aggbug/91681.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ACM-Boy/" target="_blank">quxiao</a> 2009-07-30 11:10 <a href="http://www.cppblog.com/ACM-Boy/archive/2009/07/30/91681.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何SDI中进行多视图切换(转)</title><link>http://www.cppblog.com/ACM-Boy/archive/2009/07/29/91625.html</link><dc:creator>quxiao</dc:creator><author>quxiao</author><pubDate>Wed, 29 Jul 2009 11:51:00 GMT</pubDate><guid>http://www.cppblog.com/ACM-Boy/archive/2009/07/29/91625.html</guid><wfw:comment>http://www.cppblog.com/ACM-Boy/comments/91625.html</wfw:comment><comments>http://www.cppblog.com/ACM-Boy/archive/2009/07/29/91625.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ACM-Boy/comments/commentRss/91625.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ACM-Boy/services/trackbacks/91625.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在一些情况下，应用程序有许多信息要显示，当一个窗口内显示不下时，VC提供的MDI应用程序可以解决这个问题，但是如果应用程序只是对单
个文档，采用多种方式显示，则采用SDI更合适。那么，如何在单文档应用程序中实现多视图呢？缺省情况下，派生类的构造函数是pretected类型的，
必须将它改为public类型，因为我们将会动态生成派生视图类并切换活动的视图。也可以一次生成所有的视图，但是这样造成系统资源的极大浪费。<br><br>1&nbsp;&nbsp;首先利用资源编辑器新建4个对话框，在对话框中添加需要的控件，各个对话框的ID分别为IDD_MULTIVIEW_FORM,IDD_MULTIVIEW_FORM2,IDD_MULTIVIEW_FORM3,IDD_MULTIVIEW_FORM4<br><br>2&nbsp;&nbsp;为每一个对话框创建一个CFormView类的派生类，分别为：CView1,CView2,CView3,CView4<br><br>3&nbsp;&nbsp;在应用程序的初始化文件中用CView1替换原先的视图，这样程序启动后的缺省显示视图是CView1，修改后的部分代码如下：<br>CSingleDocTemplate*&nbsp;pDocTemplate;<br>pDocTemplate&nbsp;=&nbsp;new&nbsp;CSingleDocTemplate(<br>IDR_MAINFRAME,<br>RUNTIME_CLASS(CMultiViewDoc),<br>RUNTIME_CLASS(CMainFrame),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;main&nbsp;SDI&nbsp;frame&nbsp;window<br>RUNTIME_CLASS(CView1));<br>AddDocTemplate(pDocTemplate);<br><br>4&nbsp;&nbsp;利用资源编辑器，添加几个菜单，并添加相应的消息处理函数：<br>void&nbsp;CMainFrame::OnViewView1()&nbsp;<br>{<br>SwitchToForm(IDD_MULTIVIEW_FORM);&nbsp;&nbsp;&nbsp;<br>}<br><br>void&nbsp;CMainFrame::OnViewView2()&nbsp;<br>{<br>SwitchToForm(IDD_MULTIVIEW_FORM2);&nbsp;&nbsp;&nbsp;<br>}<br><br>void&nbsp;CMainFrame::OnViewView3()&nbsp;<br>{<br>SwitchToForm(IDD_MULTIVIEW_FORM3);&nbsp;&nbsp;&nbsp;<br>}<br><br>void&nbsp;CMainFrame::OnViewView4()&nbsp;<br>{<br>SwitchToForm(IDD_MULTIVIEW_FORM4);&nbsp;&nbsp;&nbsp;<br>}<br><br>在
SDI中CFrame的派生类即CMainFrame控制着所有的视图，而且它允许用户通过消息处理进行视图的切换。进行视图切换的原理很简单，只是断开
和旧视图的连接并把他删除，创建一个新视图，将文档和它相连，设置几个标志，然后显示新视图，SwitchToForm函数是进行视图切换的代码函数。<br><br>void&nbsp;CMainFrame::SwitchToForm(int&nbsp;nForm)<br>{<br>&nbsp;&nbsp;//CDocument*&nbsp;pDoc&nbsp;=&nbsp;GetActiveDocument();<br>&nbsp;&nbsp;&nbsp;&nbsp;CView&nbsp;*pOldActiveView=GetActiveView();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//保存旧视图<br>&nbsp;&nbsp;&nbsp;&nbsp;CView&nbsp;*pNewActiveView=(CView*)GetDlgItem(nForm);&nbsp;&nbsp;&nbsp;//取得新视图<br>&nbsp;&nbsp;&nbsp;&nbsp;if(pNewActiveView==NULL)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch(nForm)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//这些ID是对话框的标志符,但也可以用其他的标志<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;IDD_MULTIVIEW_FORM&nbsp;:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pNewActiveView=(CView*)new&nbsp;CView1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;IDD_MULTIVIEW_FORM2&nbsp;:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pNewActiveView=(CView*)new&nbsp;CView2;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;IDD_MULTIVIEW_FORM3&nbsp;:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pNewActiveView=(CView*)new&nbsp;CView3;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;IDD_MULTIVIEW_FORM4&nbsp;:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pNewActiveView=(CView*)new&nbsp;CView4;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CCreateContext&nbsp;context;&nbsp;&nbsp;&nbsp;//将文挡和视图相连<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;context.m_pCurrentDoc=pOldActiveView-&gt;GetDocument();<br>pNewActiveView-&gt;Create(NULL,&nbsp;NULL,&nbsp;WS_BORDER|WS_CHILD&nbsp;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CFrameWnd::rectDefault,&nbsp;this,&nbsp;nForm,&nbsp;&amp;context);<br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pNewActiveView-&gt;OnInitialUpdate();<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;SetActiveView(pNewActiveView);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//改变活动的视图<br>&nbsp;&nbsp;&nbsp;&nbsp;pNewActiveView-&gt;ShowWindow(SW_SHOW);&nbsp;&nbsp;//显示新的视图<br>&nbsp;&nbsp;&nbsp;&nbsp;pOldActiveView-&gt;ShowWindow(SW_HIDE);&nbsp;&nbsp;//隐藏旧的视图<br><br>&nbsp;&nbsp;&nbsp;&nbsp;if(pOldActiveView-&gt;GetRuntimeClass()&nbsp;==RUNTIME_CLASS(CView1))<br>pOldActiveView-&gt;SetDlgCtrlID(IDD_MULTIVIEW_FORM);<br><br>else&nbsp;if(pOldActiveView-&gt;GetRuntimeClass()&nbsp;==RUNTIME_CLASS(CView2))<br>pOldActiveView-&gt;SetDlgCtrlID(IDD_MULTIVIEW_FORM2);<br><br>else&nbsp;if(pOldActiveView-&gt;GetRuntimeClass()&nbsp;==RUNTIME_CLASS(CView3))<br>pOldActiveView-&gt;SetDlgCtrlID(IDD_MULTIVIEW_FORM3);<br><br>else&nbsp;if(pOldActiveView-&gt;GetRuntimeClass()&nbsp;==RUNTIME_CLASS(CView4))<br>pOldActiveView-&gt;SetDlgCtrlID(IDD_MULTIVIEW_FORM4);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;pNewActiveView-&gt;SetDlgCtrlID(AFX_IDW_PANE_FIRST);<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br><br>delete&nbsp;pOldActiveView;&nbsp;&nbsp;&nbsp;//删除旧视图<br><br>RecalcLayout();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//调整框架窗口<br>}
<br><img src ="http://www.cppblog.com/ACM-Boy/aggbug/91625.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ACM-Boy/" target="_blank">quxiao</a> 2009-07-29 19:51 <a href="http://www.cppblog.com/ACM-Boy/archive/2009/07/29/91625.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TCHAR* 转化为 char*</title><link>http://www.cppblog.com/ACM-Boy/archive/2009/02/14/73777.html</link><dc:creator>quxiao</dc:creator><author>quxiao</author><pubDate>Sat, 14 Feb 2009 05:17:00 GMT</pubDate><guid>http://www.cppblog.com/ACM-Boy/archive/2009/02/14/73777.html</guid><wfw:comment>http://www.cppblog.com/ACM-Boy/comments/73777.html</wfw:comment><comments>http://www.cppblog.com/ACM-Boy/archive/2009/02/14/73777.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ACM-Boy/comments/commentRss/73777.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ACM-Boy/services/trackbacks/73777.html</trackback:ping><description><![CDATA[<span id="ctl00_MainContentPlaceholder_ctl01_ctl00_lblEntry">
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008080;">1</span>&nbsp;<span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;iLen&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">2</span><span style="color: #000000;">*</span><span style="color: #000000;">wcslen(tchStr);</span><span style="color: #008000;">//</span><span style="color: #008000;">CString,TCHAR汉字算一个字符，因此不用普通计算长度</span><span style="color: #008000;"><br></span><span style="color: #008080;">2</span>&nbsp;<span style="color: #008000;"></span><span style="color: #0000ff;">char</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;chRtn&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">[iLen</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">]<br></span><span style="color: #008080;">3</span>&nbsp;<span style="color: #000000;">wcstombs(chRtn,tchStr,iLen</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">);</span><span style="color: #008000;">//</span><span style="color: #008000;">转换成功返回为非负值&nbsp;</span></div>
<br></span><img src ="http://www.cppblog.com/ACM-Boy/aggbug/73777.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ACM-Boy/" target="_blank">quxiao</a> 2009-02-14 13:17 <a href="http://www.cppblog.com/ACM-Boy/archive/2009/02/14/73777.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CString,int,string,char*之间的转换（转）</title><link>http://www.cppblog.com/ACM-Boy/archive/2008/12/31/70843.html</link><dc:creator>quxiao</dc:creator><author>quxiao</author><pubDate>Wed, 31 Dec 2008 04:45:00 GMT</pubDate><guid>http://www.cppblog.com/ACM-Boy/archive/2008/12/31/70843.html</guid><wfw:comment>http://www.cppblog.com/ACM-Boy/comments/70843.html</wfw:comment><comments>http://www.cppblog.com/ACM-Boy/archive/2008/12/31/70843.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ACM-Boy/comments/commentRss/70843.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ACM-Boy/services/trackbacks/70843.html</trackback:ping><description><![CDATA[string 转 CString&nbsp;&nbsp;<br>
<strong>CString.format("%s", string.c_str());</strong>&nbsp;&nbsp;<br>
<br>
char 转 CString&nbsp;&nbsp;<br>
<strong>CString.format("%s", char*);</strong>&nbsp;&nbsp;<br>
<br>
char 转 string&nbsp;&nbsp;<br>
<strong>string s(char *);</strong>&nbsp;&nbsp;<br>
<br>
string 转 char *&nbsp;&nbsp;<br>
<strong>char *p = string.c_str();</strong>&nbsp;&nbsp;<br>
<br>
CString 转 string&nbsp;&nbsp;<br>
<strong>string s(CString.GetBuffer());</strong>&nbsp;&nbsp;<br>
<br>
1，string -&gt; CString&nbsp;&nbsp;<br>
<strong>CString.format("%s", string.c_str());</strong>&nbsp;&nbsp;<br>
用c_str()确实比data()要好.&nbsp;&nbsp;<br>
2，char -&gt; string&nbsp;&nbsp;<br>
<strong>string s(char *);</strong>&nbsp;&nbsp;<br>
你的只能初始化，在不是初始化的地方最好还是用assign().&nbsp;&nbsp;<br>
3,CString -&gt; string&nbsp;&nbsp;<br>
<strong>string s(CString.GetBuffer());</strong>&nbsp;&nbsp;<br>
GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间.&nbsp; <br><img src ="http://www.cppblog.com/ACM-Boy/aggbug/70843.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ACM-Boy/" target="_blank">quxiao</a> 2008-12-31 12:45 <a href="http://www.cppblog.com/ACM-Boy/archive/2008/12/31/70843.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>禁止打开文件对话框后改变默认当前路径（转）</title><link>http://www.cppblog.com/ACM-Boy/archive/2008/12/31/70842.html</link><dc:creator>quxiao</dc:creator><author>quxiao</author><pubDate>Wed, 31 Dec 2008 04:44:00 GMT</pubDate><guid>http://www.cppblog.com/ACM-Boy/archive/2008/12/31/70842.html</guid><wfw:comment>http://www.cppblog.com/ACM-Boy/comments/70842.html</wfw:comment><comments>http://www.cppblog.com/ACM-Boy/archive/2008/12/31/70842.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ACM-Boy/comments/commentRss/70842.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ACM-Boy/services/trackbacks/70842.html</trackback:ping><description><![CDATA[问：<br>
我的代码里有这样一行：   <br>
FILE   *fp;   <br>
fp=fopen("data.txt","r");   <br>
在此之前如果我用CFileDialog打开别的文件，好像就破坏了原有的默认找文件的路径，上述语句就产生非法操作，怎样解决，请赐教。 <br>
<br>
答：<br>
禁止改变原有的默认找文件的路径:   <br>
m_ofn.Flags      |=   OFN_NOCHANGEDIR;<br>
<br>
即再创建CFileDialog时这样设置：<br>
CFileDialog fileDiaog(TRUE, NULL, NULL, <strong><font color="#ff0000"><em>OFN_NOCHANGEDIR</em></font></strong>); <img src ="http://www.cppblog.com/ACM-Boy/aggbug/70842.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ACM-Boy/" target="_blank">quxiao</a> 2008-12-31 12:44 <a href="http://www.cppblog.com/ACM-Boy/archive/2008/12/31/70842.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>