﻿<?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++博客-学无止境</title><link>http://www.cppblog.com/wuewuzhijing/</link><description>人生的第10000天</description><language>zh-cn</language><lastBuildDate>Thu, 23 Apr 2026 10:10:44 GMT</lastBuildDate><pubDate>Thu, 23 Apr 2026 10:10:44 GMT</pubDate><ttl>60</ttl><item><title>ShellExecute打开txt文件两法及注意事项</title><link>http://www.cppblog.com/wuewuzhijing/archive/2012/11/28/195757.html</link><dc:creator>leafcloudsky</dc:creator><author>leafcloudsky</author><pubDate>Wed, 28 Nov 2012 02:56:00 GMT</pubDate><guid>http://www.cppblog.com/wuewuzhijing/archive/2012/11/28/195757.html</guid><wfw:comment>http://www.cppblog.com/wuewuzhijing/comments/195757.html</wfw:comment><comments>http://www.cppblog.com/wuewuzhijing/archive/2012/11/28/195757.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wuewuzhijing/comments/commentRss/195757.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wuewuzhijing/services/trackbacks/195757.html</trackback:ping><description><![CDATA[<p>ShellExecute(NULL,_T( <span style="color: #a31515">"open"</span>),FilePath,NULL,NULL,SW_SHOW);</p>
<p>ShellExecute(NULL, _T(<span style="color: #a31515">"open"</span>), _T(<span style="color: #a31515">"notepad.exe"</span>), FilePath, NULL, SW_SHOWNORMAL);<br /><br />如上，有两种方法，区别在3,4参数。</p>
<p style="word-break: break-all"><span style="font-family: Consolas; color: black">HINSTANCE ShellExecute(</span></p>
<p style="word-break: break-all"><span style="font-family: Consolas; color: black">&nbsp;_In_opt_&nbsp;HWND hwnd,</span></p>
<p style="word-break: break-all"><span style="font-family: Consolas; color: black">&nbsp;_In_opt_&nbsp;LPCTSTR lpOperation,</span></p>
<p style="word-break: break-all"><span style="font-family: Consolas; color: black">&nbsp;_In_&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LPCTSTR lpFile,</span></p>
<p style="word-break: break-all"><span style="font-family: Consolas; color: black">&nbsp;_In_opt_&nbsp;LPCTSTR lpParameters,</span></p>
<p style="word-break: break-all"><span style="font-family: Consolas; color: black">&nbsp;_In_opt_&nbsp;LPCTSTR lpDirectory,</span></p>
<p style="word-break: break-all"><span style="font-family: Consolas; color: black">&nbsp;_In_&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;INT nShowCmd</span></p>
<p style="word-break: break-all"><span style="font-family: Consolas; color: black">);</span></p>
<p><br />第一种方法要注意，需要被打开文件有文件关联。<br />第二种方法注意，需要程序（例如notepad.exe）的路径在环境变量PATH中。或者采用程序的完整安装路径。<br />参考：<br /><a href="http://hi.baidu.com/afikhxqcuabqtyq/item/2dc308f94e39875ec9f3378b">http://hi.baidu.com/afikhxqcuabqtyq/item/2dc308f94e39875ec9f3378b</a><br />msdn:<a href="http://msdn.microsoft.com/en-us/library/bb762153(VS.85).aspx">http://msdn.microsoft.com/en-us/library/bb762153(VS.85).aspx</a></p>
<p><a href="http://www.cnblogs.com/ziwuge/archive/2012/03/12/2392472.html">http://www.cnblogs.com/ziwuge/archive/2012/03/12/2392472.html</a></p>
<p><br /><br />&nbsp;</p><img src ="http://www.cppblog.com/wuewuzhijing/aggbug/195757.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wuewuzhijing/" target="_blank">leafcloudsky</a> 2012-11-28 10:56 <a href="http://www.cppblog.com/wuewuzhijing/archive/2012/11/28/195757.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MFC程序实现xp UI风格二法(2012/10/12)</title><link>http://www.cppblog.com/wuewuzhijing/archive/2012/10/12/193203.html</link><dc:creator>leafcloudsky</dc:creator><author>leafcloudsky</author><pubDate>Fri, 12 Oct 2012 03:06:00 GMT</pubDate><guid>http://www.cppblog.com/wuewuzhijing/archive/2012/10/12/193203.html</guid><wfw:comment>http://www.cppblog.com/wuewuzhijing/comments/193203.html</wfw:comment><comments>http://www.cppblog.com/wuewuzhijing/archive/2012/10/12/193203.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wuewuzhijing/comments/commentRss/193203.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wuewuzhijing/services/trackbacks/193203.html</trackback:ping><description><![CDATA[<div><strong>参考：</strong><br /><a href="http://www.cnblogs.com/pkill/archive/2010/07/09/1774527.html">http://www.cnblogs.com/pkill/archive/2010/07/09/1774527.html</a><br /><a href="http://wutiam.net/2009/08/manifest-dependencies-in-visual-studio-2005/">http://wutiam.net/2009/08/manifest-dependencies-in-visual-studio-2005/</a><br /><br /><strong>总结如下：</strong><br /><span style="color: "><strong>1、自动生成XXX.exe.manifest文件</strong></span><br />1）编写内容。程序使用unicode字符集，stdafx.h 中加入<br />#ifdef _UNICODE<br />#if defined _M_IX86<br />#pragma comment(linker,"/manifestdependency:"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'"")<br />#elif defined _M_IA64<br />#pragma comment(linker,"/manifestdependency:"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'"")<br />#elif defined _M_X64<br />#pragma comment(linker,"/manifestdependency:"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'"")<br />#else<br />#pragma comment(linker,"/manifestdependency:"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'"")<br />#endif<br />#endif<br /><br />若要取消unicode限定，只需修改为：<br />#if defined _M_IX86<br />#pragma comment(linker,"/manifestdependency:"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'"")<br />#elif defined _M_IA64<br />#pragma comment(linker,"/manifestdependency:"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'"")<br />#elif defined _M_X64<br />#pragma comment(linker,"/manifestdependency:"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'"")<br />#else<br />#pragma comment(linker,"/manifestdependency:"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'"")<br />#endif<br /><br /><span style="color: red">注：这些语句也可不写在stdafx.h中，直接在 &#8220;工程属性页-》清单工具-》输入输出 -》附加清单文件&#8221;中添加内容。<br /></span><font color="#ff0000"><span style="color: #000000">对应X86就添加：</span><br /></font>type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='X86' publicKeyToken='6595b64144ccf1df' language='*'<br />不过可能灵活性可能不够。<br /><br />2）然后就是一些设置：<br />&#9734; 工程属性页-》清单工具-》输入输出 <br />嵌入清单：&nbsp; 是<br />输出清单文件：&nbsp; $(IntDir)$(TargetName)$(TargetExt).embed.manifest　<br />清单资源文件： $(IntDir)$(TargetName)$(TargetExt).embed.manifest.res<br />&#9734; 链接-》清单文件-》生成清单文件 设为&#8220;是&#8221;<br />这样清单文件就会嵌入到exe文件中，单独执行exe就可以实现xp风格。<br /><br />或者，也可以设置&#8220;嵌入清单&#8221;为&#8220;否&#8221;<br />这样就会单独生成个&#8220;程序名.exe.manifest"文件，只有与exe文件放在同一目录下，<br />才能实现xp风格。发布时需要同时带上.manifest文件。<br /><br /><strong>2、自己创建并引入一个.manifest文件资源</strong><br />
<p>1) 创建一个.manifest文件的资源.<br />在res/文件夹下创建一个跟以程序名加.manifest的文件, 如果程序为test.exe, 则创建test.exe.manifest<br />文件内容同上面生成的.manifest文件：<br />&lt;?xml version='1.0' encoding='UTF-8' standalone='yes'?&gt;<br />&lt;assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'&gt;<br />&nbsp; &lt;trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"&gt;<br />&nbsp;&nbsp;&nbsp; &lt;security&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;requestedPrivileges&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;requestedExecutionLevel level='asInvoker' uiAccess='false' /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/requestedPrivileges&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/security&gt;<br />&nbsp; &lt;/trustInfo&gt;<br />&nbsp; &lt;dependency&gt;<br />&nbsp;&nbsp;&nbsp; &lt;dependentAssembly&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;assemblyIdentity type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*' /&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/dependentAssembly&gt;<br />&nbsp; &lt;/dependency&gt;<br />&lt;/assembly&gt;<br /><br />注意要使用utf-8编码保存。</p>
<p>2) 将新定义的资源加入到.rc2文件中, 类型设为24.<br />打开res/文件夹下的.rc2文件, 在其中加入如下定义:</p><pre>1 24 MOVEABLE PURE "res/test.exe.manifest"</pre>
<p>其中的文件地址按1)步中修改的设置即可.注意资源ID值一定要为1,当然可用定义为1的宏表示。</p>
<p>之后编译即可, 为了使程序界面可能充分利用系统的界面特性, 可以将界面字体设置为TrueType类型的, 利用Windows XP等系统的屏幕字体平滑特性.<br /><br /><br /><br /><br /><br /><br /><br /></p></div><img src ="http://www.cppblog.com/wuewuzhijing/aggbug/193203.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wuewuzhijing/" target="_blank">leafcloudsky</a> 2012-10-12 11:06 <a href="http://www.cppblog.com/wuewuzhijing/archive/2012/10/12/193203.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>灰化关闭按钮&amp;对话框显示最大，最小化按钮(20121010)</title><link>http://www.cppblog.com/wuewuzhijing/archive/2012/10/10/193106.html</link><dc:creator>leafcloudsky</dc:creator><author>leafcloudsky</author><pubDate>Wed, 10 Oct 2012 03:16:00 GMT</pubDate><guid>http://www.cppblog.com/wuewuzhijing/archive/2012/10/10/193106.html</guid><wfw:comment>http://www.cppblog.com/wuewuzhijing/comments/193106.html</wfw:comment><comments>http://www.cppblog.com/wuewuzhijing/archive/2012/10/10/193106.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wuewuzhijing/comments/commentRss/193106.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wuewuzhijing/services/trackbacks/193106.html</trackback:ping><description><![CDATA[1、灰化当前窗口的关闭按钮：<br />GetSystemMenu(FALSE)-&gt;EnableMenuItem(SC_CLOSE, MF_BYCOMMAND|MF_GRAYED);<br />恢复用GetSystemMenu(FALSE)-&gt;EnableMenuItem(SC_CLOSE, MF_BYCOMMAND|MF_ENABLED);<br />2、对话框不显示最大，最小化按钮怎么办？<br />将对应资源的属性中Minimize Box设为True即可。 <img src ="http://www.cppblog.com/wuewuzhijing/aggbug/193106.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wuewuzhijing/" target="_blank">leafcloudsky</a> 2012-10-10 11:16 <a href="http://www.cppblog.com/wuewuzhijing/archive/2012/10/10/193106.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>改变右键菜单上的指针类型(20120929)</title><link>http://www.cppblog.com/wuewuzhijing/archive/2012/09/29/192430.html</link><dc:creator>leafcloudsky</dc:creator><author>leafcloudsky</author><pubDate>Sat, 29 Sep 2012 10:00:00 GMT</pubDate><guid>http://www.cppblog.com/wuewuzhijing/archive/2012/09/29/192430.html</guid><wfw:comment>http://www.cppblog.com/wuewuzhijing/comments/192430.html</wfw:comment><comments>http://www.cppblog.com/wuewuzhijing/archive/2012/09/29/192430.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wuewuzhijing/comments/commentRss/192430.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wuewuzhijing/services/trackbacks/192430.html</trackback:ping><description><![CDATA[<strong>情景：</strong><br />我做了个对话框，里面只包含一个富文本框。对应的类为CCmdRichEdit继承自CRichEditCtrl。<br />因为默认的CRichEditCtrl它不像CEdit那样，单击右键时是不会弹出菜单的。因此我自己实现了&#8220;复制&#8221;，&#8220;粘贴&#8221;，&#8220;剪切&#8221;功能的右键菜单。<br />随后发现，功能一切正常，但是当鼠标移至菜单上时，没有变成常见的那种箭头式指针。<br /><strong>过程：</strong><br />尝试了在OnContextMenu,OnMouseMove, 中调用::SetCursor(LoadCursor(NULL, IDC_ARROW));<br />都不起作用。<br /><strong>注意：</strong><br />每次移动鼠标，OnMouseMove都会默认的改变指针的样式，但在里面修改却对右键菜单不起作用。<br /><strong>解决办法：<br /></strong>1、设置个类变量m_bContext,在OnContext开始和结束分别设为 TRUE和FALSE;<br />2、OnSetCursor中根据m_bContext来改变光标形式。<br /><br />BOOL CCmdRichEdit::OnSetCursor(CWnd *pWnd, UINT nHitTest, UINT message)<br />{<br />&nbsp;&nbsp;&nbsp; //文本框右键的指针设为箭头<br />&nbsp;&nbsp;&nbsp; if(m_bShowContext)<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ::SetCursor(LoadCursor(NULL, IDC_ARROW));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return TRUE;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; return CRichEditCtrl::OnSetCursor(pWnd, nHitTest, message);<br />}<br /><br /><br /><img src ="http://www.cppblog.com/wuewuzhijing/aggbug/192430.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wuewuzhijing/" target="_blank">leafcloudsky</a> 2012-09-29 18:00 <a href="http://www.cppblog.com/wuewuzhijing/archive/2012/09/29/192430.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>