﻿<?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/tx7do/</link><description>每做一件事情之前都要好好想清楚，斟酌斟酌再斟酌！&lt;/br&gt;
GMail/GTalk: yanglinbo#google.com;&lt;/br&gt;
MSN/Email: tx7do#yahoo.com.cn;&lt;/br&gt;
QQ: 3 0 3 3 9 6 9 2 0 .</description><language>zh-cn</language><lastBuildDate>Sun, 05 Jul 2009 19:49:33 GMT</lastBuildDate><pubDate>Sun, 05 Jul 2009 19:49:33 GMT</pubDate><ttl>60</ttl><item><title>何时离开一个团队？离开一个团队的理由？</title><link>http://www.cppblog.com/tx7do/archive/2009/07/01/88951.html</link><dc:creator>杨粼波</dc:creator><author>杨粼波</author><pubDate>Tue, 30 Jun 2009 17:02:00 GMT</pubDate><guid>http://www.cppblog.com/tx7do/archive/2009/07/01/88951.html</guid><wfw:comment>http://www.cppblog.com/tx7do/comments/88951.html</wfw:comment><comments>http://www.cppblog.com/tx7do/archive/2009/07/01/88951.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tx7do/comments/commentRss/88951.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tx7do/services/trackbacks/88951.html</trackback:ping><description><![CDATA[<strong>何时离开一个团队？</strong><br>1.绝对失败的时候；<br>2.成功，但是合作伙伴存在不可调和问题。<br><br><strong>离开一个团队的理由？</strong><br>1.已经没有希望；<br>2.无法合作下去。<br><br><br>总的来说，我会在成功的时候，或者失败的时候离开。<br>加入一个团队，合作伙伴是非常重要的。<br>一个齐心，一个高效的团队是非常不容易的。<br>通常都是一群人而已，都没有形成团队，令人叹息非常。
<img src ="http://www.cppblog.com/tx7do/aggbug/88951.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tx7do/" target="_blank">杨粼波</a> 2009-07-01 01:02 <a href="http://www.cppblog.com/tx7do/archive/2009/07/01/88951.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我的一个乐趣</title><link>http://www.cppblog.com/tx7do/archive/2009/06/13/87551.html</link><dc:creator>杨粼波</dc:creator><author>杨粼波</author><pubDate>Fri, 12 Jun 2009 18:24:00 GMT</pubDate><guid>http://www.cppblog.com/tx7do/archive/2009/06/13/87551.html</guid><wfw:comment>http://www.cppblog.com/tx7do/comments/87551.html</wfw:comment><comments>http://www.cppblog.com/tx7do/archive/2009/06/13/87551.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tx7do/comments/commentRss/87551.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tx7do/services/trackbacks/87551.html</trackback:ping><description><![CDATA[我发现，我是挺喜欢收集些什么东西的。就算是踏遍各个城市，各个地方，各个国家，也是我的一种收集行为：收集一种体验。<br>曾经，小学时候，给同学的同学录上写着爱好：实践。事实上，我倒现在还是，我喜欢自己去亲身经历，<br>走过，路过，看过，也是一种乐趣。<br>人生的道路，不可能总是一帆风顺，不可能总是快乐，当然也绝不可能永远的悲伤。<br>不论是悲伤还是快乐，人生不论是如何都好，只有自己的人生，才是人生。<br>我喜欢不停的去搜寻着不同的音乐，从中找寻不同的感觉，适合当时的情绪，适合当时的环境，这意味着这些搜集的歌曲当中同时记录着我当时的记忆。每当我翻起这些音乐，带上耳塞静静的聆听的时候，就把我的记忆带出来了，还有当时的心情。<br>有的音乐，重复的出现，不同的时期，却有着不同的心情和记忆。就像我每次踏上同一个土地，却每次都有不同的感觉，因为，已经是物是人非了。可是，记忆没有变。<br>我想，我是在搜集我的人生。它的轨迹究竟是如何呢？它的藏品又是些什么呢？真是很令人期待着。<br>人生的意义，不仅仅是为了活着啊。
<img src ="http://www.cppblog.com/tx7do/aggbug/87551.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tx7do/" target="_blank">杨粼波</a> 2009-06-13 02:24 <a href="http://www.cppblog.com/tx7do/archive/2009/06/13/87551.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>log4cplus的包裹类(log4cplus Wrapper)</title><link>http://www.cppblog.com/tx7do/archive/2009/06/08/87090.html</link><dc:creator>杨粼波</dc:creator><author>杨粼波</author><pubDate>Mon, 08 Jun 2009 12:19:00 GMT</pubDate><guid>http://www.cppblog.com/tx7do/archive/2009/06/08/87090.html</guid><wfw:comment>http://www.cppblog.com/tx7do/comments/87090.html</wfw:comment><comments>http://www.cppblog.com/tx7do/archive/2009/06/08/87090.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tx7do/comments/commentRss/87090.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tx7do/services/trackbacks/87090.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 头文件：/**//***********************************************************************&nbsp;Copyright&nbsp;(C)&nbsp;2008&nbsp;-&nbsp;-&nbsp;All&nbsp;Rights&nbsp;Reserved**&nbsp;文件名称:&nbsp;&nbsp;&nbsp;&nbs...&nbsp;&nbsp;<a href='http://www.cppblog.com/tx7do/archive/2009/06/08/87090.html'>阅读全文</a><img src ="http://www.cppblog.com/tx7do/aggbug/87090.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tx7do/" target="_blank">杨粼波</a> 2009-06-08 20:19 <a href="http://www.cppblog.com/tx7do/archive/2009/06/08/87090.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MFC里让动态创建的ActiveX控件响应Windows消息</title><link>http://www.cppblog.com/tx7do/archive/2009/06/05/86856.html</link><dc:creator>杨粼波</dc:creator><author>杨粼波</author><pubDate>Fri, 05 Jun 2009 08:31:00 GMT</pubDate><guid>http://www.cppblog.com/tx7do/archive/2009/06/05/86856.html</guid><wfw:comment>http://www.cppblog.com/tx7do/comments/86856.html</wfw:comment><comments>http://www.cppblog.com/tx7do/archive/2009/06/05/86856.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tx7do/comments/commentRss/86856.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tx7do/services/trackbacks/86856.html</trackback:ping><description><![CDATA[<strong>碰到的问题：<br></strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;我在MFC程序中使用一个由CWnd::CreateControl 创建的WebBrowser控件，这个控件是有CWnd继承下来的，今天我有一个需求是要在当中响应Windows消息去重绘，但是我发现这个控件窗口居然不能够接受父窗口的Windows窗口消息，很是无语。<br><br><strong>问题产生的原因：</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;导致控件无法接收Windows窗口消息的原因是因为CreateControl 没有子类化子窗口，自然是无法响应了。关于子类化的相关资料请查看参考资料，或者自行搜索。<br><br><strong>解决的办法：</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在创建窗口以后调用CWnd::SubclassWindow即可。伪代码如下：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">CControlWnd</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;pWnd;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>pWnd</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Create();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>HWND&nbsp;hWnd&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;pWnd</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Detach();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>pWnd</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">SubclassWindow(hWnd);</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当然，你也可以再重载CWnd::Create()方法将以上代码加入进去，比如：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">BOOL&nbsp;CWebBrowser::Create(&nbsp;LPCTSTR&nbsp;lpszClassName,<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LPCTSTR&nbsp;lpszWindowName,&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;dwStyle,&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;RECT</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;rect,&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CWnd</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;pParentWnd,&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UINT&nbsp;nID,&nbsp;<br><img id=Codehighlighter1_314_317_Open_Image onclick="this.style.display='none'; Codehighlighter1_314_317_Open_Text.style.display='none'; Codehighlighter1_314_317_Closed_Image.style.display='inline'; Codehighlighter1_314_317_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_314_317_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_314_317_Closed_Text.style.display='none'; Codehighlighter1_314_317_Open_Image.style.display='inline'; Codehighlighter1_314_317_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CCreateContext</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;pContext&nbsp;</span><span id=Codehighlighter1_314_317_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span><span id=Codehighlighter1_314_317_Open_Text><span style="COLOR: #008000">/**/</span></span><span id=Codehighlighter1_318_327_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span><span id=Codehighlighter1_318_327_Open_Text><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">=&nbsp;NULL</span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000">&nbsp;)<br><img id=Codehighlighter1_331_493_Open_Image onclick="this.style.display='none'; Codehighlighter1_331_493_Open_Text.style.display='none'; Codehighlighter1_331_493_Closed_Image.style.display='inline'; Codehighlighter1_331_493_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_331_493_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_331_493_Closed_Text.style.display='none'; Codehighlighter1_331_493_Open_Image.style.display='inline'; Codehighlighter1_331_493_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_331_493_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_331_493_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;BOOL&nbsp;bRet&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;CreateControl(GetClsid(),&nbsp;lpszWindowName,&nbsp;dwStyle,&nbsp;rect,&nbsp;pParentWnd,&nbsp;nID);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;HWND&nbsp;hWnd&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Detach();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;SubclassWindow(hWnd);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;bRet;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
<br><br><strong>参考资料：</strong><br>1. 在VC中，让动态创建的ActiveX控件响应Windows消息。 <a href="http://www.ttadd.com/diannao/HTML/152058.html"><span style="FONT-SIZE: 10pt">http://www.ttadd.com/diannao/HTML/152058.html</span></a><br>2.CWnd中PreCreateWindow、PreSubclassWindow、SubclassWindow的区别&nbsp; <a href="http://www.cppblog.com/totti1006/archive/2009/01/15/72101.html">http://www.cppblog.com/totti1006/archive/2009/01/15/72101.html</a> <br>
<img src ="http://www.cppblog.com/tx7do/aggbug/86856.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tx7do/" target="_blank">杨粼波</a> 2009-06-05 16:31 <a href="http://www.cppblog.com/tx7do/archive/2009/06/05/86856.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于HGE渲染窗口作为子窗口时无法得到窗口消息的问题以及解决办法</title><link>http://www.cppblog.com/tx7do/archive/2009/06/02/86579.html</link><dc:creator>杨粼波</dc:creator><author>杨粼波</author><pubDate>Tue, 02 Jun 2009 11:27:00 GMT</pubDate><guid>http://www.cppblog.com/tx7do/archive/2009/06/02/86579.html</guid><wfw:comment>http://www.cppblog.com/tx7do/comments/86579.html</wfw:comment><comments>http://www.cppblog.com/tx7do/archive/2009/06/02/86579.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tx7do/comments/commentRss/86579.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tx7do/services/trackbacks/86579.html</trackback:ping><description><![CDATA[<p>只要稍微了解HGE的人都是知道的，如果在HGE中设置了父窗口，则HGE的渲染窗口作为传入的父窗口的子窗口存在的。如果要嵌入到MFC的窗口中，就需要这样做。<br>不过，奇怪的是，消息处理回调函数无法收到窗口消息，在System_Initiate()中注册窗口类的时候，是有设置父窗口的句柄的。但是，现在是没有接受到窗口消息，那很显然的事情就是，父窗口设置是失败的。<br>后来，我查了下资料，WS_POPUP风格的窗口默认父窗口是为空的，除非用::SetParent去特意设置。后面我尝试着在CreateWindowEx方法后调用该方法：<br></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">::SetParent(hWnd,&nbsp;hWndParent);</span></div>
<p>结果证明我的猜测是对的，能够正常接收到窗口消息了。</p>
<br>另外，想要渲染窗口作为子窗口时候执行渲染，可以使用一个多媒体定时器来驱动渲染。同时还可以获得到理论上的锁帧渲染的效果。这样可以满足基本需求。
<img src ="http://www.cppblog.com/tx7do/aggbug/86579.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tx7do/" target="_blank">杨粼波</a> 2009-06-02 19:27 <a href="http://www.cppblog.com/tx7do/archive/2009/06/02/86579.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>