﻿<?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++博客-canaan-随笔分类-MSDN</title><link>http://www.cppblog.com/chinapeter2008/category/9678.html</link><description>c++爱好者</description><language>zh-cn</language><lastBuildDate>Thu, 12 Jul 2012 15:22:36 GMT</lastBuildDate><pubDate>Thu, 12 Jul 2012 15:22:36 GMT</pubDate><ttl>60</ttl><item><title>Winsock通过Sockaddr_in寻址</title><link>http://www.cppblog.com/chinapeter2008/archive/2012/07/12/183013.html</link><dc:creator>canaan</dc:creator><author>canaan</author><pubDate>Thu, 12 Jul 2012 08:28:00 GMT</pubDate><guid>http://www.cppblog.com/chinapeter2008/archive/2012/07/12/183013.html</guid><wfw:comment>http://www.cppblog.com/chinapeter2008/comments/183013.html</wfw:comment><comments>http://www.cppblog.com/chinapeter2008/archive/2012/07/12/183013.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/chinapeter2008/comments/commentRss/183013.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/chinapeter2008/services/trackbacks/183013.html</trackback:ping><description><![CDATA[<div>&nbsp; <br />
&nbsp; In the Internet address family, this structure is used by Windows Sockets to specify a local or remote endpoint address to which to connect a socket. This is the form of the sockaddr structure specific to the Internet address family and can be cast to sockaddr. <br />
</div>
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<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; ">struct</span><span style="color: #000000; ">&nbsp;sockaddr_in<br />
</span><span style="color: #008080; ">2</span>&nbsp;<span style="color: #000000; ">{<br />
</span><span style="color: #008080; ">3</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">short</span><span style="color: #000000; ">&nbsp;sin_family;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;(16位)地址家族（即指定地址格式），应为AF_INET。internetwork:&nbsp;UDP,&nbsp;TCP,&nbsp;etc.</span><span style="color: #008000; "><br />
</span><span style="color: #008080; ">4</span>&nbsp;<span style="color: #008000; "></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;</span><span style="color: #0000FF; ">short</span><span style="color: #000000; ">&nbsp;sin_port;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;(16位)端口号</span><span style="color: #008000; "><br />
</span><span style="color: #008080; ">5</span>&nbsp;<span style="color: #008000; "></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">struct</span><span style="color: #000000; ">&nbsp;in_addr&nbsp;sin_addr&nbsp;&nbsp;&nbsp; </span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;(32位)&nbsp;IP地址</span><span style="color: #008000; "><br />
</span><span style="color: #008080; ">6</span>&nbsp;<span style="color: #008000; "></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">&nbsp;sin_zero[</span><span style="color: #000000; ">8</span><span style="color: #000000; ">];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;(64位)&nbsp;填充，使结构体与SOCKADDR大小相同</span><span style="color: #008000; "><br />
</span><span style="color: #008080; ">7</span>&nbsp;<span style="color: #008000; "></span><span style="color: #000000; ">}<br />
</span><span style="color: #008080; ">8</span>&nbsp;<span style="color: #000000; "><br />
</span><span style="color: #008080; ">9</span>&nbsp;<span style="color: #000000;">总共为：128位（即16字节）</span></div>
<br />
&nbsp;需要头文件：winsock2.h<br /><img src ="http://www.cppblog.com/chinapeter2008/aggbug/183013.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/chinapeter2008/" target="_blank">canaan</a> 2012-07-12 16:28 <a href="http://www.cppblog.com/chinapeter2008/archive/2012/07/12/183013.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CColorDialog Class 颜色对话框类 MFC</title><link>http://www.cppblog.com/chinapeter2008/archive/2012/04/05/170192.html</link><dc:creator>canaan</dc:creator><author>canaan</author><pubDate>Thu, 05 Apr 2012 11:17:00 GMT</pubDate><guid>http://www.cppblog.com/chinapeter2008/archive/2012/04/05/170192.html</guid><wfw:comment>http://www.cppblog.com/chinapeter2008/comments/170192.html</wfw:comment><comments>http://www.cppblog.com/chinapeter2008/archive/2012/04/05/170192.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/chinapeter2008/comments/commentRss/170192.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/chinapeter2008/services/trackbacks/170192.html</trackback:ping><description><![CDATA[<div><strong>CColorDialog Class 颜色对话框类</strong><br /><br /><strong>VS2008</strong><br /><br />允许你将颜色选择对话框加入到你的应用程序中。<br /><br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000;"><br /></span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;CColorDialog&nbsp;:&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;CCommonDialog</span></div><br /><br /><strong style="font-size: 14pt;">备注</strong><br style="font-size: 14pt;" /><br /><span style="color: #00ff00;">CColorDialog</span>对象是一个具有一列定义在显示系统中的颜色的对话框。用户可以从列中选择或者创建特定的颜色，在对话框退出时报告返回给应用程序。<br /><br />使用提供的构造函数或派生一个新类然后使用你自己的构造函数，来构建一个<span style="color: #00ff00;">CColorDialog</span>对象。<br /><br />一旦对话框创建完成，你可以设置或修改<a href="http://msdn.microsoft.com/zh-cn/library/24yb6w1e%28v=vs.80%29.aspx">m_cc</a>结构中的任何值来初始化对话框控件的值。该m_cc结构类型是<a href="http://msdn.microsoft.com/zh-cn/library/ms646830%28v=vs.80%29.aspx">CHOOSECOLOR</a>. 。<br /><br />初始化对话框控件后，调用<strong>DoModal</strong>成员函数来显示对话框，并允许用户选择一种颜色。<strong>DoModal</strong>返回用户的选择对话框的OK(<strong>IDOK</strong>)或者Cancel(<strong>IDCANCEL</strong>)按钮。<br /><br />如果<strong>DoModal</strong>返回IDOK，你可以使用<span style="color: #00ff00;">CColorDialog</span>方法来找回由用户输入的信息。<br /><br />你可以使用Windows<a href="http://msdn.microsoft.com/zh-cn/library/ms646916%28v=vs.80%29.aspx"> CommDlgExtendedError</a>函数来决定不管错误发生在对话框初始化过程中并了解更多有关的错误。<br /><br /><span style="color: #00ff00;">CColorDialog</span>依赖COMMDLG.DLL文件映射Windows版本3.1更高版本。<br /><br />从CColorDialog派生一个类，自定义对话框。提供自定义对话框模板，并添加消息映射来处理从扩展控件来的通知消息。任何未处理的消息应该传递给基类。<br /><br /><strong style="font-size: 14pt;">笔记：</strong><br style="font-size: 14pt;" />如果你使用框架使其他对话框对象变成灰色，在某些<span style="color: #00ff00;">CColorDialog</span>安装对象将不显示一个灰色背景。<br /><br />使用<span style="color: #00ff00;">CColorDialog</span>需要更多的信息，参见<a href="http://msdn.microsoft.com/zh-cn/library/5fcd0hw9%28v=vs.80%29.aspx">Common Dialog Classes</a>。<br /><br /><strong style="font-size: 14pt;">需求</strong><br style="font-size: 14pt;" />头文件：afxdlgs.h<br /><br />只能设备开发笔记<br /><br />这个类只支持Windows CE标准SDK。它不支持Windows Mobile Pocket PC或者智能手机平台。智能设备版本CColorDialog类不支持下面方法：<br /><div><a href="http://msdn.microsoft.com/zh-cn/library/9ze0daed%28v=vs.90%29.aspx">CColorDialog::SetCurrentColor</a></div><br /><br /><strong style="font-size: 14pt;">参见</strong><br style="font-size: 14pt;" />概念<br /><div><div>   <a href="http://msdn.microsoft.com/zh-cn/library/ahd07sdd%28v=vs.90%29.aspx">MDI Sample: Demonstrates MDI Without Using Doc/View Architecture</a> </div> <div>   <a href="http://msdn.microsoft.com/zh-cn/library/9t94971d%28v=vs.90%29.aspx">DRAWCLI Sample: Illustrates Integrating Active Container Support with Application-Specific Features</a> </div> <div>   <a href="http://msdn.microsoft.com/zh-cn/library/27630w75%28v=vs.90%29.aspx">CColorDialog Members</a> </div> <div>   <a href="http://msdn.microsoft.com/zh-cn/library/35a2e8ce%28v=vs.90%29.aspx">CCommonDialog Class</a> </div> <div>   <a href="http://msdn.microsoft.com/zh-cn/library/ws8s10w4%28v=vs.90%29.aspx">Hierarchy Chart</a> </div></div></div><img src ="http://www.cppblog.com/chinapeter2008/aggbug/170192.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/chinapeter2008/" target="_blank">canaan</a> 2012-04-05 19:17 <a href="http://www.cppblog.com/chinapeter2008/archive/2012/04/05/170192.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CMFCStatusBar Class （MFC状态栏类）</title><link>http://www.cppblog.com/chinapeter2008/archive/2012/03/30/169571.html</link><dc:creator>canaan</dc:creator><author>canaan</author><pubDate>Fri, 30 Mar 2012 14:43:00 GMT</pubDate><guid>http://www.cppblog.com/chinapeter2008/archive/2012/03/30/169571.html</guid><wfw:comment>http://www.cppblog.com/chinapeter2008/comments/169571.html</wfw:comment><comments>http://www.cppblog.com/chinapeter2008/archive/2012/03/30/169571.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/chinapeter2008/comments/commentRss/169571.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/chinapeter2008/services/trackbacks/169571.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 如何设置MFC状态栏？如何在状态栏添加图片？怎样修改状态栏字体颜色？状态栏编程，如何使用状态栏？&nbsp;&nbsp;<a href='http://www.cppblog.com/chinapeter2008/archive/2012/03/30/169571.html'>阅读全文</a><img src ="http://www.cppblog.com/chinapeter2008/aggbug/169571.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/chinapeter2008/" target="_blank">canaan</a> 2012-03-30 22:43 <a href="http://www.cppblog.com/chinapeter2008/archive/2012/03/30/169571.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CBitmapButton 类</title><link>http://www.cppblog.com/chinapeter2008/archive/2012/03/22/168543.html</link><dc:creator>canaan</dc:creator><author>canaan</author><pubDate>Thu, 22 Mar 2012 02:36:00 GMT</pubDate><guid>http://www.cppblog.com/chinapeter2008/archive/2012/03/22/168543.html</guid><wfw:comment>http://www.cppblog.com/chinapeter2008/comments/168543.html</wfw:comment><comments>http://www.cppblog.com/chinapeter2008/archive/2012/03/22/168543.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/chinapeter2008/comments/commentRss/168543.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/chinapeter2008/services/trackbacks/168543.html</trackback:ping><description><![CDATA[<p><strong style="color: #0000ff;">CBitmapButton 类</strong></p><p><strong><br /></strong></p>
<p>创建位图图像替代文本标记的按钮控件。</p><p><br /></p>
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">Class&nbsp;CBitmapButton&nbsp;:&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;CButton</span></div><p><br /></p>
<p><strong style="color: #0000ff;">备注</strong></p><p><strong><br /></strong></p>
<p><strong><span style="color: #000000;">CBitmapButton</span></strong> 对象包含多达四个位图，为按钮的不同状态包含图像：up(or normal),down(or selected),focused,和disabled<br />。只有第一个位图是必须的；其他都是可以选择的。</p>
<p>位图按钮(Bitmap-button)图像包括图像的边框以及图像本身。边框通常扮演部分显示按钮的状态。例如，focused状态下的位图通</p>
<p>常和up状态下的一样，但是它的边框是矩形虚线或者粗实线。disabled状态下的位图通常类似于up状态但是对比度较低（如暗灰色</p>
<p>或者灰色菜单选择）。</p>
<p>这些位图可以是任意大小，但是对于up状态它们都被视为同样大小。</p>
<p>各种应用要求位图图像的不同组合：</p>
<p>Up Down Focused Disabled 应用<br />*&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; &nbsp; &nbsp; &nbsp; &nbsp; 位图<br />*&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 没有<strong>WS_TABSTOP</strong>样式的按钮<br />*&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 带有所有状态的对话框按钮<br />*&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 带有<strong>WS_TABSTOP</strong>样式的对话框按钮</p>
<p>当创建一个位图按钮控件，设置<strong>BS_OWNERDRAW</strong>样式指定按钮为自己绘制的。这使Windows为按钮发送<strong>WM_MEASUREITEM</strong>和<strong>WMDRAWITEM</strong></p>
<p>消息。框架为你处理这些消息和管理按钮的外观。</p>
<p>&nbsp;</p><p><div><div><span style="color: #0000ff;">在windows客户区域创建位图按钮控件</span><br />&nbsp;&nbsp; 1、为按钮创建一到四个位图。<br />&nbsp;&nbsp; 2、构建CBitmapButton对象。<br />&nbsp;&nbsp; 3、调用Create函数创建按钮控件，然后附加到<strong>CBitmapButton</strong>对象上。<br />&nbsp;&nbsp; 4、当位图按钮构造好后，调用LoadBitmaps成员函数来加载位图资源。<br /><br /><span style="color: #0000ff;">一个对话框中包括一个位图按钮</span><br />&nbsp;&nbsp; 1、为按钮创建一到四个位图。<br />&nbsp;&nbsp; 2、创建一个带有自绘(owner-draw)按钮的对话框模板，按钮放置在你想要的位图按钮的地方。<br />&nbsp;&nbsp; 3、设置按钮的caption为"<strong>MYIMAGE</strong>"，按钮定义符号为<strong>IDC_MYIMAGE</strong>。<br />&nbsp;&nbsp; 4、在你应用程序的资源脚本中，在步骤3中为每个为按钮创建的图形设置标题为ID加一个字母，"U","D","F",或者"X"（对应于up,down,focused,和disabled）的字符串。例如，像标题为"MYIMAGE"的按钮，它们的ID为"<strong>MYIMAGEU</strong>","<strong>MYIMAGED</strong>","<strong>MYIMAGEF</strong>",和"<strong>MYIMAGEX</strong>."你<strong>必须</strong>指定位图的ID要有双引号。否则资源编译器将制定一个整数的资源，那么MFC在加载图片时就会失败。<br />&nbsp;&nbsp; 5、在你的应用程序的对话框类（继承自<strong>CDialog</strong>）中，增加一个<strong>CBitmapButton</strong>成员对象。<br />&nbsp;&nbsp; 6、在<strong>CDialog</strong>对象的OnInitDialog例程中，调用<strong>CBitmapButton</strong>对象的AutoLoad函数，按钮控件的ID和CDialog对象的指针作为参数。<br /><br />如果你想处理窗口信息，像<strong>BN_CLICKED</strong>，位图按钮控件发送给它的父（通常是一个从<strong>CDialog</strong>派生的类），为<strong>CDialog</strong>派生对象增加一个消息映射入口，和每个消息处理成员函数。<strong>CBitmapButton</strong>对象发送的通知跟CButton是一样的。<br /><br />类CToolBar对位图按钮采用不同的方法。<br /><br />更多关于<strong>CBitmapButton</strong>的信息，参考Controls。<br /><br /><strong style="color: #0000ff;">要求</strong><br style="color: #0000ff;" /><br />头文件：afxext.h<br /><br /><strong><span style="color: #0000ff;">参考</span></strong><br /><br />CTLRLTEST sample:Implements Custom Controls<br />CBitmapButton Members<br />CButton Class<br />Hierarchy Chart</div></div></p><p><br /></p><p>原文：<br /></p>
<p><a href="http://msdn.microsoft.com/zh-cn/library/a3y45xs0(v=vs.90).aspx">http://msdn.microsoft.com/zh-cn/library/a3y45xs0(v=vs.90).aspx</a><br />&nbsp;</p><img src ="http://www.cppblog.com/chinapeter2008/aggbug/168543.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/chinapeter2008/" target="_blank">canaan</a> 2012-03-22 10:36 <a href="http://www.cppblog.com/chinapeter2008/archive/2012/03/22/168543.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>音乐播放函数MCI(不断更新)</title><link>http://www.cppblog.com/chinapeter2008/archive/2009/03/02/75297.html</link><dc:creator>canaan</dc:creator><author>canaan</author><pubDate>Mon, 02 Mar 2009 02:14:00 GMT</pubDate><guid>http://www.cppblog.com/chinapeter2008/archive/2009/03/02/75297.html</guid><wfw:comment>http://www.cppblog.com/chinapeter2008/comments/75297.html</wfw:comment><comments>http://www.cppblog.com/chinapeter2008/archive/2009/03/02/75297.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/chinapeter2008/comments/commentRss/75297.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/chinapeter2008/services/trackbacks/75297.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 音乐播放函数MCIWndCreate、MCIWndPlay、MCIWndSetVolume&nbsp;&nbsp;<a href='http://www.cppblog.com/chinapeter2008/archive/2009/03/02/75297.html'>阅读全文</a><img src ="http://www.cppblog.com/chinapeter2008/aggbug/75297.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/chinapeter2008/" target="_blank">canaan</a> 2009-03-02 10:14 <a href="http://www.cppblog.com/chinapeter2008/archive/2009/03/02/75297.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>