﻿<?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++博客-goos</title><link>http://www.cppblog.com/goos/</link><description>代码改变世界!</description><language>zh-cn</language><lastBuildDate>Thu, 09 Apr 2026 05:37:57 GMT</lastBuildDate><pubDate>Thu, 09 Apr 2026 05:37:57 GMT</pubDate><ttl>60</ttl><item><title>WTL在VC各版本下的安装</title><link>http://www.cppblog.com/goos/archive/2012/08/16/187424.html</link><dc:creator>雁子</dc:creator><author>雁子</author><pubDate>Thu, 16 Aug 2012 15:00:00 GMT</pubDate><guid>http://www.cppblog.com/goos/archive/2012/08/16/187424.html</guid><wfw:comment>http://www.cppblog.com/goos/comments/187424.html</wfw:comment><comments>http://www.cppblog.com/goos/archive/2012/08/16/187424.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/goos/comments/commentRss/187424.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/goos/services/trackbacks/187424.html</trackback:ping><description><![CDATA[<div><span>WTL各版本下载地址：<a href="http://sourceforge.net/projects/wtl/files/"><span>http://sourceforge.net/projects/wtl/files/</span></a><br /></span><span style="color: #ff0000">WTL7.1+VC6.0</span></div>
<div>安装过程：</div>
<div>运行WTL71.exe，解压</div>
<div>运行/WTL71/AppWiz60/setup.js</div>
<div>复制WTL71/include目录下的18个头文件到VC++6.0安装目录的 /VC98/Include下。</div>
<div>运行VC++6.0，根据向导可以轻松的创建ATL/WTL AppWizard工程即可。<br /></div>
<div></div>
<div><br /><span style="color: red">WTL8.0+VS2005</span><br />安装过程：</div>
<div>1、从http://sourceforge.net/projects/wtl下载8.0版本的WTL</div>
<div>2、下载得到的是一个自解压文件，可以解压到任意目录。比如d:\wtl80，下面有几个子目录samples, include, AppWizMobile, AppWizCE, AppWiz，还有一个txt文件和htm文件。其中include是头文件，samples是几个示例，AppWiz*是各种向导文件。</div>
<div>3、在命令行里执行：wscript.exe "D:\WTL80\AppWiz\setup80.js"，如果是vs2005 express、vs2003等，分别执行setup80x.js, setup70.js,可以看看里面的文档说明。</div>
<div>&nbsp; &nbsp;注：这是一个很容易让人困惑的地方，网上的文档全都说解压后执行setup80.js文件，但都没说如何执行。后来在代码里看到有WScript，才想到用WSCript.exe来执行。</div>
<div>4、打开VS2005, 选择VC++项目，就可以看到WTL项目的向导了。</div>
<div>5、在VS2005里，打开菜单&#8220;工具&#8221;&#8212;&#8212;选项&#8212;&#8212;项目和解决方案&#8212;&#8212;VC++目录，在&#8220;显示以下内容的目录&#8221;下拉框中，选择&#8220;包含文件&#8221;，加入刚才解压的wtl下的include，本例中是"d:\wtl80\include"。</div>
<div>6、按照向导创建一个程序，编译，执行，OK。<br /><br /><span style="color: red">WTL8.1+VS2008</span><br />安装过程：<br />
<p>1.下载了WTL8.1，然后运行AppWiz文件夹下的setup90.js，就可以安装成功了。</p>
<p>2.然后就是配置工程了。打开VS2008，选择Tools-&gt;Options-&gt;Projects and Solutions-&gt;VC++ Directories，在include中将c:/wtl81/include加入。或者将include目录复制到Microsoft Visual Studio 9.0/VC/目录下就可以了。</p><br /><span style="color: red">WTL.tag+VS2010</span><br />安装过程：<br />
<p>1.下载WTL包，<a href="http://wtl.svn.sourceforge.net/viewvc/wtl/?view=tar">http://wtl.svn.sourceforge.net/viewvc/wtl/?view=tar</a><br />下载下来的文件是tar.gz，你可以用7z打开。<br />2.解压后依次打开文件夹trunk-&gt;Wizards-&gt;AppWiz，然后双击setup100.js<br />3.将解压的include目录复制到Microsoft Visual Studio 10.0/VC/目录<br /></p></div>
<div></div>
<div><a href="/Files/goos/WTL71.zip">/Files/goos/WTL71.zip<br /></a><a href="http://www.cppblog.com/Files/goos/WTL80_sf.zip">/Files/goos/WTL80_sf.zip</a><br /><a href="http://www.cppblog.com/Files/goos/WTL81_9127.zip">/Files/goos/WTL81_9127.zip<br /></a><a href="/Files/goos/wtl.tar.zip">/Files/goos/wtl.tar.zip</a><br /></div><img src ="http://www.cppblog.com/goos/aggbug/187424.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/goos/" target="_blank">雁子</a> 2012-08-16 23:00 <a href="http://www.cppblog.com/goos/archive/2012/08/16/187424.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ANIMATE控件播放简单avi应用练习</title><link>http://www.cppblog.com/goos/archive/2012/08/15/187327.html</link><dc:creator>雁子</dc:creator><author>雁子</author><pubDate>Wed, 15 Aug 2012 14:33:00 GMT</pubDate><guid>http://www.cppblog.com/goos/archive/2012/08/15/187327.html</guid><wfw:comment>http://www.cppblog.com/goos/comments/187327.html</wfw:comment><comments>http://www.cppblog.com/goos/archive/2012/08/15/187327.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/goos/comments/commentRss/187327.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/goos/services/trackbacks/187327.html</trackback:ping><description><![CDATA[<img src="http://www.cppblog.com/images/cppblog_com/goos/1.png" width="615" height="517" alt="" /><br />功能：实现第一代简小AVI的播放<br />打开通用对话框选择播放文件，点击单选按钮"开始"即开始播放，左侧可以设置循环播放次数。<br />文件播放完毕后，文件名显示在ListBox上，双击对应的选项改变播放路径。<br />HOTKEY控件可以设置相应快捷键实现程序在后台时快速显示。<br /><br />相关代码：<br /><div style="font-size: 13px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; border-image: initial; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; background-color: #eeeeee; "><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><br /><span style="color: #0000FF; ">void</span>&nbsp;CMFCCtrlDlg::OnOpenfile()&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;TODO:&nbsp;Add&nbsp;your&nbsp;control&nbsp;notification&nbsp;handler&nbsp;code&nbsp;here</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;CHAR&nbsp;szFilter[]&nbsp;=&nbsp;"AVI&nbsp;File(*.avi)|*.avi|ALL&nbsp;File(*.*)|*.*||";<br />&nbsp;&nbsp;&nbsp;&nbsp;CFileDialog&nbsp;dlg(TRUE,&nbsp;NULL,&nbsp;NULL,&nbsp;OFN_HIDEREADONLY,&nbsp;szFilter);<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(&nbsp;IDOK&nbsp;!=&nbsp;dlg.DoModal())<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">获取选择的文件到编辑框中</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;m_PathName&nbsp;=&nbsp;dlg.GetPathName();<br />&nbsp;&nbsp;&nbsp;&nbsp;UpdateData(FALSE);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">添加文件名到列表框中，并返回选项值</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;nItem&nbsp;=&nbsp;m_List_History.AddString(dlg.GetFileName());<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">保存文件路径到选项</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;CString&nbsp;*&nbsp;pstrFilePath&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;CString;<br />&nbsp;&nbsp;&nbsp;&nbsp;*pstrFilePath&nbsp;=&nbsp;dlg.GetPathName(&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;m_List_History.SetItemData(&nbsp;nItem,&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(DWORD)pstrFilePath&nbsp;);<br /><br />}<br /><br /><span style="color: #0000FF; ">void</span>&nbsp;CMFCCtrlDlg::OnRadioStart()&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;TODO:&nbsp;Add&nbsp;your&nbsp;control&nbsp;notification&nbsp;handler&nbsp;code&nbsp;here</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;m_WndAnimate.Open(m_PathName);&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">打开文件</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(m_check_loop.GetCheck())&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">如果循环播放复选框被勾选刚判断combobox选项的播放次数</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;sCur&nbsp;=&nbsp;m_ComboBox_LoopNum.GetCurSel();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">switch</span>(sCur)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">case</span>&nbsp;0:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_WndAnimate.Play(0,-1,-1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">break</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">case</span>&nbsp;1:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_WndAnimate.Play(0,-1,1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">break</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">case</span>&nbsp;2:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_WndAnimate.Play(0,-1,2);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">break</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">case</span>&nbsp;3:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_WndAnimate.Play(0,-1,3);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">break</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">case</span>&nbsp;4:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_WndAnimate.Play(0,-1,5);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">break</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">case</span>&nbsp;5:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_WndAnimate.Play(0,-1,10);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">break</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span><br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_WndAnimate.Play(0,-1,1);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br /><br /><span style="color: #0000FF; ">void</span>&nbsp;CMFCCtrlDlg::OnRadioStop()&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;TODO:&nbsp;Add&nbsp;your&nbsp;control&nbsp;notification&nbsp;handler&nbsp;code&nbsp;here</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;m_WndAnimate.Stop();<br />&nbsp;&nbsp;&nbsp;&nbsp;m_WndAnimate.Close();<br />}<br /><br /><span style="color: #0000FF; ">void</span>&nbsp;CMFCCtrlDlg::OnCheck1()&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;TODO:&nbsp;Add&nbsp;your&nbsp;control&nbsp;notification&nbsp;handler&nbsp;code&nbsp;here</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;BOOL&nbsp;bCheck&nbsp;=&nbsp;m_check_loop.GetCheck();&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;m_ComboBox_LoopNum.EnableWindow(bCheck);<br />}<br /><br /><span style="color: #0000FF; ">void</span>&nbsp;CMFCCtrlDlg::OnDblclkList1()&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;TODO:&nbsp;Add&nbsp;your&nbsp;control&nbsp;notification&nbsp;handler&nbsp;code&nbsp;here</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;nSel&nbsp;=&nbsp;m_List_History.GetCurSel(&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(&nbsp;LB_ERR&nbsp;==&nbsp;nSel&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">获取选择项的路径</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;CString&nbsp;*&nbsp;pstrPathName&nbsp;=&nbsp;(&nbsp;CString&nbsp;*&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_List_History.GetItemData(&nbsp;nSel&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">设置到EDIT中</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;m_PathName&nbsp;=&nbsp;*pstrPathName;<br />&nbsp;&nbsp;&nbsp;&nbsp;UpdateData(&nbsp;FALSE&nbsp;);<br />}<br /><br /><span style="color: #0000FF; ">void</span>&nbsp;CMFCCtrlDlg::OnButtonHotkey()&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;TODO:&nbsp;Add&nbsp;your&nbsp;control&nbsp;notification&nbsp;handler&nbsp;code&nbsp;here<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">获取设置的热键</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;nHotKey&nbsp;=&nbsp;m_HotKey.GetHotKey(&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">设置成程序的热键</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;SendMessage(&nbsp;WM_SETHOTKEY,&nbsp;nHotKey&nbsp;);<br />}</div><br /><a href="/Files/goos/MFCCtrl.zip">/Files/goos/MFCCtrl.zip</a><br /><br /><br /> <br /><br /> <img src ="http://www.cppblog.com/goos/aggbug/187327.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/goos/" target="_blank">雁子</a> 2012-08-15 22:33 <a href="http://www.cppblog.com/goos/archive/2012/08/15/187327.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>