﻿<?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++博客-梦中乐园-随笔分类-Windows</title><link>http://www.cppblog.com/Dream5/category/18374.html</link><description>C/C++程序员之梦</description><language>zh-cn</language><lastBuildDate>Fri, 06 Jan 2012 05:54:10 GMT</lastBuildDate><pubDate>Fri, 06 Jan 2012 05:54:10 GMT</pubDate><ttl>60</ttl><item><title>SetBkColor</title><link>http://www.cppblog.com/Dream5/archive/2012/01/05/163649.html</link><dc:creator>梦五</dc:creator><author>梦五</author><pubDate>Thu, 05 Jan 2012 12:16:00 GMT</pubDate><guid>http://www.cppblog.com/Dream5/archive/2012/01/05/163649.html</guid><wfw:comment>http://www.cppblog.com/Dream5/comments/163649.html</wfw:comment><comments>http://www.cppblog.com/Dream5/archive/2012/01/05/163649.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Dream5/comments/commentRss/163649.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Dream5/services/trackbacks/163649.html</trackback:ping><description><![CDATA[<div>SetBkColor填充文字的背景色。</div><img src ="http://www.cppblog.com/Dream5/aggbug/163649.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Dream5/" target="_blank">梦五</a> 2012-01-05 20:16 <a href="http://www.cppblog.com/Dream5/archive/2012/01/05/163649.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>windows 色彩宏</title><link>http://www.cppblog.com/Dream5/archive/2011/12/31/163256.html</link><dc:creator>梦五</dc:creator><author>梦五</author><pubDate>Sat, 31 Dec 2011 05:57:00 GMT</pubDate><guid>http://www.cppblog.com/Dream5/archive/2011/12/31/163256.html</guid><wfw:comment>http://www.cppblog.com/Dream5/comments/163256.html</wfw:comment><comments>http://www.cppblog.com/Dream5/archive/2011/12/31/163256.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Dream5/comments/commentRss/163256.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Dream5/services/trackbacks/163256.html</trackback:ping><description><![CDATA[在大多数 GDI 函数调用中，使用 COLORREF 值（只是一个32位的无符号长整数）来表示一种色彩。COLORREF 值按照红、绿和蓝色的亮度指定了一种颜色，通常叫做&#8220;RGB色彩&#8221;。<br /><br />windows 头文件 WINGDI.H 提供了几种使用 RGB 色彩值的宏。RGB 宏要求三个参数分别代表红、绿和蓝值，然后将它们组合为一个无符号长整数：
<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"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">#define</span><span style="color: #000000">&nbsp;RGB(r,g,b)&nbsp;((COLORREF)(((BYTE)(r)&nbsp;|&nbsp;\</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((WORD)((BYTE)(g))&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">8</span><span style="color: #000000">))&nbsp;</span><span style="color: #000000">|</span><span style="color: #000000">&nbsp;\<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(((DWORD)(BYTE)(b))&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">16</span><span style="color: #000000">&nbsp;)))</span></div>注意三个参数的顺序是红、绿和蓝值。因此，值 RGB(255,255,0) 是0x0000FFFF 或黄色（红色和绿色的合成）。<br /><br />可以调用 GetNearestColor 来决定与某一色彩最接近的纯色：<br />crPureColor = GetNearestColor(hdc,crColor);<br /><img src ="http://www.cppblog.com/Dream5/aggbug/163256.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Dream5/" target="_blank">梦五</a> 2011-12-31 13:57 <a href="http://www.cppblog.com/Dream5/archive/2011/12/31/163256.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>分辨率与设备联系起来的方式</title><link>http://www.cppblog.com/Dream5/archive/2011/12/21/162503.html</link><dc:creator>梦五</dc:creator><author>梦五</author><pubDate>Tue, 20 Dec 2011 16:49:00 GMT</pubDate><guid>http://www.cppblog.com/Dream5/archive/2011/12/21/162503.html</guid><wfw:comment>http://www.cppblog.com/Dream5/comments/162503.html</wfw:comment><comments>http://www.cppblog.com/Dream5/archive/2011/12/21/162503.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Dream5/comments/commentRss/162503.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Dream5/services/trackbacks/162503.html</trackback:ping><description><![CDATA[<strong>对于打印机，经常用&#8220;每英寸的点数(dpi)&#8221;表示分辨率。<br />例如，大多数激光打印机有300或600 dpi 的分辨率。<br /><br />视频显示器的分辨率是以水平和垂直的总的像素数来表示的。<br />例如，1024 * 768。<br /></strong><br />备注：<br />Windows 应用程序可以使用 SM_CXSCREEN 和 SM_CYSCREEN 参数从 GetSystemMetrics 得到像素尺寸。<br />程序也可以用 HORZRES（水平分辨率）和 VERTRES 参数从 GetDeviceCaps 中得到同样的值。<img src ="http://www.cppblog.com/Dream5/aggbug/162503.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Dream5/" target="_blank">梦五</a> 2011-12-21 00:49 <a href="http://www.cppblog.com/Dream5/archive/2011/12/21/162503.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UpdateWindow 函数</title><link>http://www.cppblog.com/Dream5/archive/2011/12/18/162320.html</link><dc:creator>梦五</dc:creator><author>梦五</author><pubDate>Sat, 17 Dec 2011 17:15:00 GMT</pubDate><guid>http://www.cppblog.com/Dream5/archive/2011/12/18/162320.html</guid><wfw:comment>http://www.cppblog.com/Dream5/comments/162320.html</wfw:comment><comments>http://www.cppblog.com/Dream5/archive/2011/12/18/162320.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Dream5/comments/commentRss/162320.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Dream5/services/trackbacks/162320.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">BOOL&nbsp;UpdateWindow(<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;HWND&nbsp;hWnd&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;handle&nbsp;to&nbsp;window</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">);<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span></div>如果客户区的任一部分无效，UpdateWindow 将导致 Windows 用 WM_PAINT 消息调用窗口过程（如果整个客户区有效，则不调用窗口过程）。<strong>这一 WM_PAINT 消息不进入消息队列，直接由 Windows 调用窗口过程。</strong>窗口过程完成刷新后立即退出，Windows 将控制返回给程序中 UpdateWindow 调用之后的语句。<br /><br />如果希望立即刷新无效区域，可以在调用 InvalidateRect 之后调用 UpdateWindow函数。<img src ="http://www.cppblog.com/Dream5/aggbug/162320.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Dream5/" target="_blank">梦五</a> 2011-12-18 01:15 <a href="http://www.cppblog.com/Dream5/archive/2011/12/18/162320.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>InvalidateRect函数</title><link>http://www.cppblog.com/Dream5/archive/2011/12/18/162319.html</link><dc:creator>梦五</dc:creator><author>梦五</author><pubDate>Sat, 17 Dec 2011 17:10:00 GMT</pubDate><guid>http://www.cppblog.com/Dream5/archive/2011/12/18/162319.html</guid><wfw:comment>http://www.cppblog.com/Dream5/comments/162319.html</wfw:comment><comments>http://www.cppblog.com/Dream5/archive/2011/12/18/162319.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Dream5/comments/commentRss/162319.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Dream5/services/trackbacks/162319.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">BOOL&nbsp;InvalidateRect(<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;HWND&nbsp;hWnd,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;handle&nbsp;to&nbsp;window</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;CONST&nbsp;RECT</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;lpRect,&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;rectangle&nbsp;coordinates</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;BOOL&nbsp;bErase&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;erase&nbsp;state</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">);<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span></div>InvalidateRect 函数调用使客户区内的特定矩形或者整个客户区失效，这会导致 Windows 将 WM_PAINT 消息放入应用程序的消息队列中，最后由窗口过程处理他。<br />要注意的是，Windows 将 WM_PAINT 消息当成低优先级消息。<img src ="http://www.cppblog.com/Dream5/aggbug/162319.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Dream5/" target="_blank">梦五</a> 2011-12-18 01:10 <a href="http://www.cppblog.com/Dream5/archive/2011/12/18/162319.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WM_SIZE 消息</title><link>http://www.cppblog.com/Dream5/archive/2011/12/17/162301.html</link><dc:creator>梦五</dc:creator><author>梦五</author><pubDate>Sat, 17 Dec 2011 09:48:00 GMT</pubDate><guid>http://www.cppblog.com/Dream5/archive/2011/12/17/162301.html</guid><wfw:comment>http://www.cppblog.com/Dream5/comments/162301.html</wfw:comment><comments>http://www.cppblog.com/Dream5/archive/2011/12/17/162301.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Dream5/comments/commentRss/162301.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Dream5/services/trackbacks/162301.html</trackback:ping><description><![CDATA[确定窗口客户区大小的一个好方法是在窗口过程中处理WM_SIZE消息。<br /><br />在窗口大小改变时，Windows（操作系统） 给窗口过程发送一个 WM_SIZE 消息。传给窗口过程的 lParam 参数的低位字节中包含客户区的宽度，高位字节中包含客户区的高度。<br /><br />LOWORD(lParam);&nbsp;&nbsp; // 获取客户区的宽度<br />HIWORD(lParam);&nbsp;&nbsp;&nbsp; // 获取客户区的高度<img src ="http://www.cppblog.com/Dream5/aggbug/162301.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Dream5/" target="_blank">梦五</a> 2011-12-17 17:48 <a href="http://www.cppblog.com/Dream5/archive/2011/12/17/162301.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>消息驱动系统</title><link>http://www.cppblog.com/Dream5/archive/2011/12/16/162205.html</link><dc:creator>梦五</dc:creator><author>梦五</author><pubDate>Fri, 16 Dec 2011 01:39:00 GMT</pubDate><guid>http://www.cppblog.com/Dream5/archive/2011/12/16/162205.html</guid><wfw:comment>http://www.cppblog.com/Dream5/comments/162205.html</wfw:comment><comments>http://www.cppblog.com/Dream5/archive/2011/12/16/162205.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Dream5/comments/commentRss/162205.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Dream5/services/trackbacks/162205.html</trackback:ping><description><![CDATA[<div>Windows 是一个消息驱动系统。它通过把消息投入应用程序消息队列中或者把消息发送给合适的窗口过程，将发生的各种事件通知给应用程序。</div> <img src ="http://www.cppblog.com/Dream5/aggbug/162205.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Dream5/" target="_blank">梦五</a> 2011-12-16 09:39 <a href="http://www.cppblog.com/Dream5/archive/2011/12/16/162205.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>窗口过程</title><link>http://www.cppblog.com/Dream5/archive/2011/12/15/162176.html</link><dc:creator>梦五</dc:creator><author>梦五</author><pubDate>Thu, 15 Dec 2011 08:18:00 GMT</pubDate><guid>http://www.cppblog.com/Dream5/archive/2011/12/15/162176.html</guid><wfw:comment>http://www.cppblog.com/Dream5/comments/162176.html</wfw:comment><comments>http://www.cppblog.com/Dream5/archive/2011/12/15/162176.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Dream5/comments/commentRss/162176.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Dream5/services/trackbacks/162176.html</trackback:ping><description><![CDATA[一个Windows 程序可以包含多个窗口过程。一个窗口过程总是与调用RegisterClass注册的特定窗口类相关联。<br />程序通常不直接调用窗口过程。窗口过程通常由 Windows 本身调用。通过调用 SendMessage 函数，程序能够直接调用它自己的窗口过程。 <br /><br />窗口过程在处理消息时，必须返回0。窗口过程不予处理的所有消息应该被传给名为 DefWindowProc 的 Windwos 函数。<br />从 DefWindowProc&nbsp; 返回的值必须由窗口过程返回。 <img src ="http://www.cppblog.com/Dream5/aggbug/162176.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Dream5/" target="_blank">梦五</a> 2011-12-15 16:18 <a href="http://www.cppblog.com/Dream5/archive/2011/12/15/162176.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>客户区</title><link>http://www.cppblog.com/Dream5/archive/2011/12/15/162147.html</link><dc:creator>梦五</dc:creator><author>梦五</author><pubDate>Thu, 15 Dec 2011 02:02:00 GMT</pubDate><guid>http://www.cppblog.com/Dream5/archive/2011/12/15/162147.html</guid><wfw:comment>http://www.cppblog.com/Dream5/comments/162147.html</wfw:comment><comments>http://www.cppblog.com/Dream5/archive/2011/12/15/162147.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Dream5/comments/commentRss/162147.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Dream5/services/trackbacks/162147.html</trackback:ping><description><![CDATA[客户区就是程序自由绘图并且向用户交付可视输出的窗口区域。 <br /><br />客户区不包含滚动条所占据的空间。<img src ="http://www.cppblog.com/Dream5/aggbug/162147.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Dream5/" target="_blank">梦五</a> 2011-12-15 10:02 <a href="http://www.cppblog.com/Dream5/archive/2011/12/15/162147.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows没有标准输入和标准输出的概念</title><link>http://www.cppblog.com/Dream5/archive/2011/12/13/162058.html</link><dc:creator>梦五</dc:creator><author>梦五</author><pubDate>Tue, 13 Dec 2011 14:20:00 GMT</pubDate><guid>http://www.cppblog.com/Dream5/archive/2011/12/13/162058.html</guid><wfw:comment>http://www.cppblog.com/Dream5/comments/162058.html</wfw:comment><comments>http://www.cppblog.com/Dream5/archive/2011/12/13/162058.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Dream5/comments/commentRss/162058.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Dream5/services/trackbacks/162058.html</trackback:ping><description><![CDATA[Windows没有标准输入和标准输出的概念。 <img src ="http://www.cppblog.com/Dream5/aggbug/162058.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Dream5/" target="_blank">梦五</a> 2011-12-13 22:20 <a href="http://www.cppblog.com/Dream5/archive/2011/12/13/162058.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>原子访问（atomic access）</title><link>http://www.cppblog.com/Dream5/archive/2011/11/30/161223.html</link><dc:creator>梦五</dc:creator><author>梦五</author><pubDate>Wed, 30 Nov 2011 03:32:00 GMT</pubDate><guid>http://www.cppblog.com/Dream5/archive/2011/11/30/161223.html</guid><wfw:comment>http://www.cppblog.com/Dream5/comments/161223.html</wfw:comment><comments>http://www.cppblog.com/Dream5/archive/2011/11/30/161223.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Dream5/comments/commentRss/161223.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Dream5/services/trackbacks/161223.html</trackback:ping><description><![CDATA[<div>所谓原子访问，指的是一个线程在访问某个资源的同时能够保证没有其他线程会在同一时刻访问同一资源。</div> <img src ="http://www.cppblog.com/Dream5/aggbug/161223.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Dream5/" target="_blank">梦五</a> 2011-11-30 11:32 <a href="http://www.cppblog.com/Dream5/archive/2011/11/30/161223.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>