﻿<?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++博客-WINCE &amp; EVC &amp; Platform Builder-随笔分类-Evc Debug Code</title><link>http://www.cppblog.com/hkingSP/category/3912.html</link><description>in ShangHai,</description><language>zh-cn</language><lastBuildDate>Tue, 20 May 2008 00:51:46 GMT</lastBuildDate><pubDate>Tue, 20 May 2008 00:51:46 GMT</pubDate><ttl>60</ttl><item><title>13CList(EVC)</title><link>http://www.cppblog.com/hkingSP/archive/2007/04/15/21929.html</link><dc:creator>宋鹏</dc:creator><author>宋鹏</author><pubDate>Sun, 15 Apr 2007 02:57:00 GMT</pubDate><guid>http://www.cppblog.com/hkingSP/archive/2007/04/15/21929.html</guid><wfw:comment>http://www.cppblog.com/hkingSP/comments/21929.html</wfw:comment><comments>http://www.cppblog.com/hkingSP/archive/2007/04/15/21929.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/hkingSP/comments/commentRss/21929.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/hkingSP/services/trackbacks/21929.html</trackback:ping><description><![CDATA[<a title="CList 应用工程文件（evc） 下载" href="http://www.cppblog.com/Files/hkingSP/13CList.rar">CList 应用工程文件（evc） 下载</a>
<img src ="http://www.cppblog.com/hkingSP/aggbug/21929.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/hkingSP/" target="_blank">宋鹏</a> 2007-04-15 10:57 <a href="http://www.cppblog.com/hkingSP/archive/2007/04/15/21929.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>12EnableWindow（evc）</title><link>http://www.cppblog.com/hkingSP/archive/2007/04/11/21658.html</link><dc:creator>宋鹏</dc:creator><author>宋鹏</author><pubDate>Wed, 11 Apr 2007 09:03:00 GMT</pubDate><guid>http://www.cppblog.com/hkingSP/archive/2007/04/11/21658.html</guid><wfw:comment>http://www.cppblog.com/hkingSP/comments/21658.html</wfw:comment><comments>http://www.cppblog.com/hkingSP/archive/2007/04/11/21658.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/hkingSP/comments/commentRss/21658.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/hkingSP/services/trackbacks/21658.html</trackback:ping><description><![CDATA[<a title="EnableWindow(EVC)例子 下载" href="http://www.cppblog.com/Files/hkingSP/12EnableWindow.rar">EnableWindow(EVC)例子 下载</a>
<img src ="http://www.cppblog.com/hkingSP/aggbug/21658.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/hkingSP/" target="_blank">宋鹏</a> 2007-04-11 17:03 <a href="http://www.cppblog.com/hkingSP/archive/2007/04/11/21658.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>创建虚拟列表ClistCtrl(MFC)&amp;&amp;ListView(API)</title><link>http://www.cppblog.com/hkingSP/archive/2007/04/04/21212.html</link><dc:creator>宋鹏</dc:creator><author>宋鹏</author><pubDate>Wed, 04 Apr 2007 02:46:00 GMT</pubDate><guid>http://www.cppblog.com/hkingSP/archive/2007/04/04/21212.html</guid><wfw:comment>http://www.cppblog.com/hkingSP/comments/21212.html</wfw:comment><comments>http://www.cppblog.com/hkingSP/archive/2007/04/04/21212.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/hkingSP/comments/commentRss/21212.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/hkingSP/services/trackbacks/21212.html</trackback:ping><description><![CDATA[<p><strong>ClistCtrl(MFC)</strong></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">BOOL&nbsp;CTest::OnInitDialog()&nbsp;<br><img id=Codehighlighter1_28_1181_Open_Image onclick="this.style.display='none'; Codehighlighter1_28_1181_Open_Text.style.display='none'; Codehighlighter1_28_1181_Closed_Image.style.display='inline'; Codehighlighter1_28_1181_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_28_1181_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_28_1181_Closed_Text.style.display='none'; Codehighlighter1_28_1181_Open_Image.style.display='inline'; Codehighlighter1_28_1181_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_28_1181_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_28_1181_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;CDialog::OnInitDialog();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;TODO:&nbsp;Add&nbsp;extra&nbsp;initialization&nbsp;here<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">SP-A1.用工具栏画一个CListCtrl控件<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">SP-A2.插入栏（列）到控件</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;((CListCtrl&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)GetDlgItem(IDC_LIST1))</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">InsertColumn(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;_T(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Name</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">),&nbsp;LVCFMT_LEFT);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;((CListCtrl&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)GetDlgItem(IDC_LIST1))</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">InsertColumn(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,&nbsp;_T(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Scores</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">),&nbsp;LVCFMT_LEFT);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">SP-A3.设置各个栏的宽度</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;((CListCtrl&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)GetDlgItem(IDC_LIST1))</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">SetColumnWidth(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">50</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;((CListCtrl&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)GetDlgItem(IDC_LIST1))</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">SetColumnWidth(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">50</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">SP-23插入栏，并制定高度<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">或((CListCtrl&nbsp;*)GetDlgItem(IDC_LIST1))-&gt;InsertColumn(1,&nbsp;_T("Scores"),&nbsp;LVCFMT_LEFT,50);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;int&nbsp;nColumnCount&nbsp;=&nbsp;((CListCtrl&nbsp;*)GetDlgItem(IDC_LIST1))-&gt;GetHeaderCtrl()-&gt;GetItemCount();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">SP-A4.1.插入行1</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;LV_ITEM&nbsp;lvitem;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">LVITEM结构体</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;lvitem.mask</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">LVIF_TEXT;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">指出对成员中的哪些数据进行设置</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;lvitem.pszText</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">L</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">vv</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">将文本设为vv</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;lvitem.iItem</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">索引值为0</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;lvitem.iSubItem</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">没有子项</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;((CListCtrl&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)GetDlgItem(IDC_LIST1))</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">InsertItem(</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">lvitem);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">SP-A4.2.插入行2<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">((CListCtrl&nbsp;*)GetDlgItem(IDC_LIST1))-&gt;SetItemText(0,0,L"aa");<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">((CListCtrl&nbsp;*)GetDlgItem(IDC_LIST1))-&gt;SetItemText(0,1,L"bb");</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;TRUE;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;return&nbsp;TRUE&nbsp;unless&nbsp;you&nbsp;set&nbsp;the&nbsp;focus&nbsp;to&nbsp;a&nbsp;control<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;EXCEPTION:&nbsp;OCX&nbsp;Property&nbsp;Pages&nbsp;should&nbsp;return&nbsp;FALSE</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top></span><span style="COLOR: #000000">}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
<br><strong>ListView(API)&nbsp;&nbsp; 这是工程文件 <a title=下载 href="http://www.cppblog.com/Files/hkingSP/11LViewAPI.rar">下载</a></strong>
<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: #008000">//</span><span style="COLOR: #008000">----------------------------------------------------------------------<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;DoCreateMain&nbsp;-&nbsp;Process&nbsp;WM_CREATE&nbsp;message&nbsp;for&nbsp;window.<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">LRESULT&nbsp;DoCreateMain&nbsp;(HWND&nbsp;hWnd,&nbsp;UINT&nbsp;wMsg,&nbsp;WPARAM&nbsp;wParam,&nbsp;<br><img id=Codehighlighter1_229_1748_Open_Image onclick="this.style.display='none'; Codehighlighter1_229_1748_Open_Text.style.display='none'; Codehighlighter1_229_1748_Closed_Image.style.display='inline'; Codehighlighter1_229_1748_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_229_1748_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_229_1748_Closed_Text.style.display='none'; Codehighlighter1_229_1748_Open_Image.style.display='inline'; Codehighlighter1_229_1748_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;LPARAM&nbsp;lParam)&nbsp;</span><span id=Codehighlighter1_229_1748_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_229_1748_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;HWND&nbsp;hwndCB;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;nHeight;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;HWND&nbsp;hwndLV;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;LPCREATESTRUCT&nbsp;lpcs;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;Create&nbsp;a&nbsp;command&nbsp;bar.</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;hwndCB&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;CommandBar_Create&nbsp;(hInst,&nbsp;hWnd,&nbsp;IDC_CMDBAR);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;Add&nbsp;exit&nbsp;button&nbsp;to&nbsp;command&nbsp;bar.</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;CommandBar_AddAdornments&nbsp;(hwndCB,&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">SP-A1转换LPARAM<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;Convert&nbsp;lParam&nbsp;into&nbsp;pointer&nbsp;to&nbsp;create&nbsp;structure.</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;lpcs&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(LPCREATESTRUCT)&nbsp;lParam;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">SP-A2创建列表查看控件<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;Create&nbsp;the&nbsp;list&nbsp;view&nbsp;control.<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;hwndLV&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;CreateWindowEx&nbsp;(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;WC_LISTVIEW,&nbsp;TEXT&nbsp;(</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">),<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.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;&nbsp;&nbsp;&nbsp;&nbsp;LVS_REPORT&nbsp;</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">&nbsp;LVS_SINGLESEL&nbsp;</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.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;&nbsp;&nbsp;&nbsp;&nbsp;LVS_OWNERDATA&nbsp;</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">&nbsp;WS_VISIBLE&nbsp;</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">&nbsp;WS_CHILD&nbsp;</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.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;&nbsp;&nbsp;&nbsp;&nbsp;WS_VSCROLL,&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;nHeight,&nbsp;lpcs</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">cx,<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.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;&nbsp;&nbsp;&nbsp;&nbsp;lpcs</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">cy&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;nHeight,&nbsp;hWnd,<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.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;&nbsp;&nbsp;&nbsp;&nbsp;(HMENU)IDC_LISTVIEW,<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.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;&nbsp;&nbsp;&nbsp;&nbsp;lpcs</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">hInstance,&nbsp;NULL);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">SP-A3增加列<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;Add&nbsp;columns.</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_1082_1731_Open_Image onclick="this.style.display='none'; Codehighlighter1_1082_1731_Open_Text.style.display='none'; Codehighlighter1_1082_1731_Closed_Image.style.display='inline'; Codehighlighter1_1082_1731_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1082_1731_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1082_1731_Closed_Text.style.display='none'; Codehighlighter1_1082_1731_Open_Image.style.display='inline'; Codehighlighter1_1082_1731_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1082_1731_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_1082_1731_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LVCOLUMN&nbsp;lvc;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lvc.mask&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;LVCF_TEXT&nbsp;</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">&nbsp;LVCF_WIDTH&nbsp;</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">&nbsp;LVCF_FMT&nbsp;</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">&nbsp;LVCF_SUBITEM;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lvc.fmt&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;LVCFMT_LEFT;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lvc.cx&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">150</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lvc.pszText&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;TEXT&nbsp;(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Name</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lvc.iSubItem&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SendMessage&nbsp;(hwndLV,&nbsp;LVM_INSERTCOLUMN,&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;(LPARAM)</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">lvc);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lvc.mask&nbsp;</span><span style="COLOR: #000000">|=</span><span style="COLOR: #000000">&nbsp;LVCF_SUBITEM;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lvc.pszText&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;TEXT&nbsp;(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Type</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lvc.cx&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lvc.iSubItem&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SendMessage&nbsp;(hwndLV,&nbsp;LVM_INSERTCOLUMN,&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,&nbsp;(LPARAM)</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">lvc);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lvc.mask&nbsp;</span><span style="COLOR: #000000">|=</span><span style="COLOR: #000000">&nbsp;LVCF_SUBITEM;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lvc.pszText&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;TEXT&nbsp;(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Size</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lvc.cx&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lvc.iSubItem&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SendMessage&nbsp;(hwndLV,&nbsp;LVM_INSERTCOLUMN,&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,&nbsp;(LPARAM)</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">lvc);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><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;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<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><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">SP-A4改变窗口大小，显示列表查看控件<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">----------------------------------------------------------------------<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;DoSizeMain&nbsp;-&nbsp;Process&nbsp;WM_SIZE&nbsp;message&nbsp;for&nbsp;window.<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//<br><img id=Codehighlighter1_1973_2416_Open_Image onclick="this.style.display='none'; Codehighlighter1_1973_2416_Open_Text.style.display='none'; Codehighlighter1_1973_2416_Closed_Image.style.display='inline'; Codehighlighter1_1973_2416_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_1973_2416_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1973_2416_Closed_Text.style.display='none'; Codehighlighter1_1973_2416_Open_Image.style.display='inline'; Codehighlighter1_1973_2416_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #000000">LRESULT&nbsp;DoSizeMain&nbsp;(HWND&nbsp;hWnd,&nbsp;UINT&nbsp;wMsg,&nbsp;WPARAM&nbsp;wParam,&nbsp;LPARAM&nbsp;lParam)</span><span id=Codehighlighter1_1973_2416_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_1973_2416_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;HWND&nbsp;hwndLV;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;RECT&nbsp;rect;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;hwndLV&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;GetDlgItem&nbsp;(hWnd,&nbsp;IDC_LISTVIEW);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;Adjust&nbsp;the&nbsp;size&nbsp;of&nbsp;the&nbsp;client&nbsp;rect&nbsp;to&nbsp;take&nbsp;into&nbsp;account<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;the&nbsp;command&nbsp;bar&nbsp;height.</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;GetClientRect&nbsp;(hWnd,&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">rect);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;rect.top&nbsp;</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">&nbsp;CommandBar_Height&nbsp;(GetDlgItem&nbsp;(hWnd,&nbsp;IDC_CMDBAR));<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;SetWindowPos&nbsp;(hwndLV,&nbsp;NULL,&nbsp;rect.left,&nbsp;rect.top,<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rect.right&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;rect.left,&nbsp;rect.bottom&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;rect.top,<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SWP_NOZORDER);<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;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<img src ="http://www.cppblog.com/hkingSP/aggbug/21212.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/hkingSP/" target="_blank">宋鹏</a> 2007-04-04 10:46 <a href="http://www.cppblog.com/hkingSP/archive/2007/04/04/21212.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>(EVC)静态CListCtrl</title><link>http://www.cppblog.com/hkingSP/archive/2007/04/03/21179.html</link><dc:creator>宋鹏</dc:creator><author>宋鹏</author><pubDate>Tue, 03 Apr 2007 08:57:00 GMT</pubDate><guid>http://www.cppblog.com/hkingSP/archive/2007/04/03/21179.html</guid><wfw:comment>http://www.cppblog.com/hkingSP/comments/21179.html</wfw:comment><comments>http://www.cppblog.com/hkingSP/archive/2007/04/03/21179.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/hkingSP/comments/commentRss/21179.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/hkingSP/services/trackbacks/21179.html</trackback:ping><description><![CDATA[<p><em>BOOL CTest::OnInitDialog() <br>{<br>&nbsp;CDialog::OnInitDialog();<br>&nbsp;<br>&nbsp;// TODO: Add extra initialization here</em></p>
<p>&nbsp;<strong>//SP-A1.用工具栏画一个CListCtrl控件<br>&nbsp;//SP-A2.插入栏（列）到控件<br></strong>&nbsp;((CListCtrl *)GetDlgItem(IDC_LIST1))-&gt;InsertColumn(0, _T("Name"), LVCFMT_LEFT);<br>&nbsp;((CListCtrl *)GetDlgItem(IDC_LIST1))-&gt;InsertColumn(1, _T("Scores"), LVCFMT_LEFT);<br>&nbsp;</p>
<p><strong>&nbsp;//SP-A3.设置各个栏的宽度</strong><br>&nbsp;((CListCtrl *)GetDlgItem(IDC_LIST1))-&gt;SetColumnWidth(0,50);<br>&nbsp;((CListCtrl *)GetDlgItem(IDC_LIST1))-&gt;SetColumnWidth(1,50);</p>
<p><strong>&nbsp;//SP-23插入栏，并制定高度</strong><br>&nbsp;//或((CListCtrl *)GetDlgItem(IDC_LIST1))-&gt;InsertColumn(1, _T("Scores"), LVCFMT_LEFT,50);</p>
<p>//&nbsp;int nColumnCount = ((CListCtrl *)GetDlgItem(IDC_LIST1))-&gt;GetHeaderCtrl()-&gt;GetItemCount();</p>
<p><strong>&nbsp;//SP-A4.1.插入行1</strong><br>&nbsp;LV_ITEM lvitem;&nbsp;&nbsp;&nbsp;//LVITEM结构体</p>
<p>&nbsp;lvitem.mask=LVIF_TEXT;&nbsp;//指出对成员中的哪些数据进行设置<br>&nbsp;lvitem.pszText=L"vv";&nbsp;//将文本设为vv<br>&nbsp;lvitem.iItem=0;&nbsp;&nbsp;&nbsp;//索引值为0<br>&nbsp;lvitem.iSubItem=0;&nbsp;&nbsp;//没有子项<br>&nbsp;<br>&nbsp;((CListCtrl *)GetDlgItem(IDC_LIST1))-&gt;InsertItem(&amp;lvitem);<br>&nbsp;//SP-A4.2.插入行2<br>&nbsp;//((CListCtrl *)GetDlgItem(IDC_LIST1))-&gt;SetItemText(0,0,L"aa");<br>&nbsp;//((CListCtrl *)GetDlgItem(IDC_LIST1))-&gt;SetItemText(0,1,L"bb");</p>
<p><br><br><em>&nbsp;return TRUE;&nbsp; // return TRUE unless you set the focus to a control<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // EXCEPTION: OCX Property Pages should return FALSE<br>}</em></p>
<img src ="http://www.cppblog.com/hkingSP/aggbug/21179.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/hkingSP/" target="_blank">宋鹏</a> 2007-04-03 16:57 <a href="http://www.cppblog.com/hkingSP/archive/2007/04/03/21179.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>(evc)动态创建列表框</title><link>http://www.cppblog.com/hkingSP/archive/2007/04/02/21093.html</link><dc:creator>宋鹏</dc:creator><author>宋鹏</author><pubDate>Mon, 02 Apr 2007 06:41:00 GMT</pubDate><guid>http://www.cppblog.com/hkingSP/archive/2007/04/02/21093.html</guid><wfw:comment>http://www.cppblog.com/hkingSP/comments/21093.html</wfw:comment><comments>http://www.cppblog.com/hkingSP/archive/2007/04/02/21093.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/hkingSP/comments/commentRss/21093.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/hkingSP/services/trackbacks/21093.html</trackback:ping><description><![CDATA[BOOL CTest::OnInitDialog() <br>{<br>&nbsp;CDialog::OnInitDialog();<br>&nbsp;<br>//动态创建列表框<br>//----------------------------------------------------<br>&nbsp;#define IDC_LISTBOX 112&nbsp;&nbsp;&nbsp;&nbsp;//列表框标识，放在头文件中<br>&nbsp;CListBox *pList = new CListBox;&nbsp;&nbsp;//给列表框对象分配内存，在成员变量中定义<br>&nbsp;pList-&gt;Create(WS_CHILD<br>&nbsp;&nbsp;&nbsp;&nbsp; |WS_VISIBLE<br>&nbsp;&nbsp;&nbsp;&nbsp; |WS_VSCROLL<br>&nbsp;&nbsp;&nbsp;&nbsp; |WS_HSCROLL<br>&nbsp;&nbsp;&nbsp;&nbsp; |WS_TABSTOP,&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp; CRect(10,10,100,150),&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp; this,&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp; IDC_LISTBOX);&nbsp;&nbsp;&nbsp;<br><br>delete CListBox;&nbsp;&nbsp;&nbsp;//用完之后删除<br>//-----------------------------------------------------<br>&nbsp;<br>&nbsp;return TRUE;&nbsp; // return TRUE unless you set the focus to a control<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // EXCEPTION: OCX Property Pages should return FALSE<br>}
<img src ="http://www.cppblog.com/hkingSP/aggbug/21093.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/hkingSP/" target="_blank">宋鹏</a> 2007-04-02 14:41 <a href="http://www.cppblog.com/hkingSP/archive/2007/04/02/21093.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>(EVC)CListBox的使用</title><link>http://www.cppblog.com/hkingSP/archive/2007/04/02/21090.html</link><dc:creator>宋鹏</dc:creator><author>宋鹏</author><pubDate>Mon, 02 Apr 2007 05:28:00 GMT</pubDate><guid>http://www.cppblog.com/hkingSP/archive/2007/04/02/21090.html</guid><wfw:comment>http://www.cppblog.com/hkingSP/comments/21090.html</wfw:comment><comments>http://www.cppblog.com/hkingSP/archive/2007/04/02/21090.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/hkingSP/comments/commentRss/21090.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/hkingSP/services/trackbacks/21090.html</trackback:ping><description><![CDATA[<p><a title=ListBox的工程文件 href="http://www.cppblog.com/Files/hkingSP/9CListBox.rar">ListBox的工程文件</a><br>1、在资源浏览器中MENU的菜单上生成一个弹出按钮Test<br>2、在资源浏览器里insert dialog<br>3、将该对话框连接到CDialog派生类CTest(自己创建的新类)<br>//这样在单击Test时就会弹出CTest关联的对话框Test<br>4、在插入的对话框上可视化添加一个ListBox控件<br>5、在CTest中添加CTest对话框的初始化消息响应函数，如下<br><br>BOOL CTest::OnInitDialog() <br>{<br>&nbsp;CDialog::OnInitDialog();<br>&nbsp;<br><br>&nbsp;// TODO:&nbsp;自己添加的代码<br>//增加列表框的项<br><strong>&nbsp;&nbsp;((CListBox *)GetDlgItem(IDC_LIST1))-&gt;AddString(L"BeiJIng");<br></strong>&nbsp;<br><br>&nbsp;return TRUE;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>}</p>
<p>6、在Test按钮的消息相应函数中定义对象，弹出对话框<br>void CMainFrame::OnTest() <br>{<br>&nbsp;// TODO: Add your command handler code here</p>
<p><strong>&nbsp;CTest test;<br>&nbsp;test.DoModal();</strong>&nbsp;<br>}</p>
<img src ="http://www.cppblog.com/hkingSP/aggbug/21090.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/hkingSP/" target="_blank">宋鹏</a> 2007-04-02 13:28 <a href="http://www.cppblog.com/hkingSP/archive/2007/04/02/21090.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MultiByteToWideChar和WideCharToMultiByte用法详解 </title><link>http://www.cppblog.com/hkingSP/archive/2007/04/02/21081.html</link><dc:creator>宋鹏</dc:creator><author>宋鹏</author><pubDate>Mon, 02 Apr 2007 02:18:00 GMT</pubDate><guid>http://www.cppblog.com/hkingSP/archive/2007/04/02/21081.html</guid><wfw:comment>http://www.cppblog.com/hkingSP/comments/21081.html</wfw:comment><comments>http://www.cppblog.com/hkingSP/archive/2007/04/02/21081.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/hkingSP/comments/commentRss/21081.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/hkingSP/services/trackbacks/21081.html</trackback:ping><description><![CDATA[<div class=postText>
<div class=postTitle><a href="http://www.cppblog.com/sunraiing9/archive/2007/03/21/20281.html">引用自http://www.cppblog.com/sunraiing9/archive/2007/03/21/20281.html</a></div>
<div class=postText>//========================================================================<br>//TITLE:<br>//&nbsp;&nbsp;&nbsp; MultiByteToWideChar和WideCharToMultiByte用法详解<br>//AUTHOR:<br>//&nbsp;&nbsp;&nbsp; norains<br>//DATE:<br>//&nbsp;&nbsp;&nbsp; 第一版:Monday&nbsp; 25-December -2006<br>//&nbsp;&nbsp;&nbsp; 增补版:Wednesday 27-December -2006<br>//&nbsp;&nbsp;&nbsp; 修订版:Wednesday 14-March-2007 (修正之前的错误例子)<br>//Environment:<br>//&nbsp; EVC4.0 + Standard SDK<br>//========================================================================<br>&nbsp; <br>1.使用方法详解<br><br>&nbsp; 在本文开始之处,先简要地说一下何为短字符和宽字符.<br>&nbsp; 所谓的短字符,就是用8bit来表示的字符,典型的应用是ASCII码.而宽字符,顾名思义,就是用16bit表示的字符,典型的有UNICODE.关于windows下的ASCII和UNICODE的更多信息,可以参考这两本经典著作:《windows 程序设计》,《windows 核心编程》.这两本书关于这两种字符都有比较详细的解说.<br>&nbsp; <br>&nbsp; 宽字符转换为多个短字符是一个难点,不过我们只要掌握到其中的要领,便可如鱼得水.<br>&nbsp; 好吧,那就让我们开始吧.<br>&nbsp; <br>&nbsp; 这个是我们需要转化的多字节字符串: &nbsp;<br>&nbsp; char sText[20] = {"多字节字符串!OK!"};<br>&nbsp; <br>&nbsp; 我们需要知道转化后的宽字符需要多少个数组空间.虽然在这个里程里面,我们可以直接定义一个20*2宽字符的数组,并且事实上将运行得非常轻松愉快.但假如多字节字符串更多,达到上千个乃至上万个,我们将会发现其中浪费的内存将会越来越多.所以以多字节字符的个数的两倍作为宽字符数组下标的声明绝对不是一个好主意.<br>&nbsp; 所幸,我们能够确知所需要的数组空间.<br>&nbsp; 我们只需要将MultiByteToWideChar()的第四个形参设为-1,即可返回所需的短字符数组空间的个数:<br>&nbsp; DWORD dwNum = MultiByteToWideChar (CP_ACP, 0, sText, -1, NULL, 0);<br>&nbsp; <br>&nbsp; 接下来,我们只需要分配响应的数组空间:<br>&nbsp; wchar_t *pwText;<br>&nbsp; pwText = new wchar_t[dwNum];<br>&nbsp; if(!pwText)<br>&nbsp; {<br>&nbsp;&nbsp; delete []pwText;<br>&nbsp; }<br>&nbsp; <br>&nbsp; 接着,我们就可以着手进行转换了.在这里以转换成ASCII码做为例子:<br>&nbsp; MultiByteToWideChar (CP_ACP, 0, psText, -1, sText, dwSize);<br>&nbsp; <br>&nbsp; 最后,使用完毕当然要记得释放占用的内存:<br>&nbsp; delete []psText;<br>&nbsp; <br>&nbsp;<br>&nbsp; 同理,宽字符转为多字节字符的代码如下: &nbsp;<br>&nbsp; wchar_t wText[20] = {L"宽字符转换实例!OK!"};<br>&nbsp; DWORD dwNum = WideCharToMultiByte(CP_OEMCP,NULL,lpcwszStr,-1,NULL,0,NULL,FALSE);<br>&nbsp; char *psText;<br>&nbsp; psText = new char[dwNum];<br>&nbsp; if(!psText)<br>&nbsp; {<br>&nbsp;&nbsp; delete []psText;<br>&nbsp; }<br>&nbsp; WideCharToMultiByte (CP_OEMCP,NULL,lpcwszStr,-1,psText,dwNum,NULL,FALSE);<br>&nbsp; delete []psText;<br>&nbsp; <br>&nbsp;&nbsp; 如果之前我们已经分配好空间,并且由于字符串较短,可以不理会浪费的空间,仅仅只是想简单地将短字符和宽字符相互转换,那有没有什么简便的方法呢?<br>&nbsp;&nbsp; WIN32 API里没有符合这种要求的函数,但我们可以自己进行封装:<br>&nbsp;&nbsp;&nbsp; &nbsp;<br>&nbsp; //-------------------------------------------------------------------------------------<br>&nbsp; //Description:<br>&nbsp; // This function maps a character string to a wide-character (Unicode) string<br>&nbsp; //<br>&nbsp; //Parameters:<br>&nbsp; // lpcszStr: [in] Pointer to the character string to be converted <br>&nbsp; // lpwszStr: [out] Pointer to a buffer that receives the translated string. <br>&nbsp; // dwSize: [in] Size of the buffer<br>&nbsp; //<br>&nbsp; //Return Values:<br>&nbsp; // TRUE: Succeed<br>&nbsp; // FALSE: Failed<br>&nbsp; // <br>&nbsp; //Example:<br>&nbsp; // MByteToWChar(szA,szW,sizeof(szW)/sizeof(szW[0]));<br>&nbsp; //---------------------------------------------------------------------------------------<br>&nbsp; BOOL MByteToWChar(LPCSTR lpcszStr, LPWSTR lpwszStr, DWORD dwSize)<br>&nbsp; {<br>&nbsp;&nbsp;&nbsp; // Get the required size of the buffer that receives the Unicode <br>&nbsp;&nbsp;&nbsp; // string. <br>&nbsp;&nbsp;&nbsp; DWORD dwMinSize;<br>&nbsp;&nbsp;&nbsp; dwMinSize = MultiByteToWideChar (CP_ACP, 0, lpcszStr, -1, NULL, 0);<br>&nbsp; <br>&nbsp;&nbsp;&nbsp; if(dwSize &lt; dwMinSize)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp; return FALSE;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp; <br>&nbsp;&nbsp; &nbsp;<br>&nbsp;&nbsp;&nbsp; // Convert headers from ASCII to Unicode.<br>&nbsp;&nbsp;&nbsp; MultiByteToWideChar (CP_ACP, 0, lpcszStr, -1, lpwszStr, dwMinSize); &nbsp;<br>&nbsp;&nbsp;&nbsp; return TRUE;<br>&nbsp; }<br>&nbsp; <br>&nbsp; //-------------------------------------------------------------------------------------<br>&nbsp; //Description:<br>&nbsp; // This function maps a wide-character string to a new character string<br>&nbsp; //<br>&nbsp; //Parameters:<br>&nbsp; // lpcwszStr: [in] Pointer to the character string to be converted <br>&nbsp; // lpszStr: [out] Pointer to a buffer that receives the translated string. <br>&nbsp; // dwSize: [in] Size of the buffer<br>&nbsp; //<br>&nbsp; //Return Values:<br>&nbsp; // TRUE: Succeed<br>&nbsp; // FALSE: Failed<br>&nbsp; // <br>&nbsp; //Example:<br>&nbsp; // MByteToWChar(szW,szA,sizeof(szA)/sizeof(szA[0]));<br>&nbsp; //---------------------------------------------------------------------------------------<br>&nbsp; BOOL WCharToMByte(LPCWSTR lpcwszStr, LPSTR lpszStr, DWORD dwSize)<br>&nbsp; {<br>&nbsp;&nbsp; DWORD dwMinSize;<br>&nbsp;&nbsp; dwMinSize = WideCharToMultiByte(CP_OEMCP,NULL,lpcwszStr,-1,NULL,0,NULL,FALSE);<br>&nbsp;&nbsp; if(dwSize &lt; dwMinSize)<br>&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; return FALSE;<br>&nbsp;&nbsp; }<br>&nbsp;&nbsp; WideCharToMultiByte(CP_OEMCP,NULL,lpcwszStr,-1,lpszStr,dwSize,NULL,FALSE);<br>&nbsp;&nbsp; return TRUE;<br>&nbsp; }<br>&nbsp; <br>&nbsp; <br>&nbsp; 使用方法也很简单,示例如下:<br>&nbsp; wchar_t wText[10] = {L"函数示例"};<br>&nbsp; char sText[20]= {0};<br>&nbsp; WCharToMByte(wText,sText,sizeof(sText)/sizeof(sText[0]));<br>&nbsp; MByteToWChar(sText,wText,sizeof(wText)/sizeof(wText[0]));<br>&nbsp; <br>&nbsp; 这两个函数的缺点在于无法动态分配内存,在转换很长的字符串时可能会浪费较多内存空间;优点是,在不考虑浪费空间的情况下转换较短字符串非常方便.<br><br>&nbsp; <br>2.MultiByteToWideChar()函数乱码的问题<br><br>&nbsp; 有的朋友可能已经发现,在标准的WinCE4.2或WinCE5.0 SDK模拟器下,这个函数都无法正常工作,其转换之后的字符全是乱码.及时更改MultiByteToWideChar()参数也依然如此.<br>&nbsp; 不过这个不是代码问题,其结症在于所定制的操作系统.如果我们定制的操作系统默认语言不是中文,也会出现这种情况.由于标准的SDK默认语言为英文,所以肯定会出现这个问题.而这个问题的解决,不能在简单地更改控制面板的"区域选项"的"默认语言",而是要在系统定制的时候,选择默认语言为"中文".<br>&nbsp; 系统定制时选择默认语言的位置于:<br>&nbsp; Platform -&gt; Setting... -&gt; locale -&gt; default language ,选择"中文",然后编译即可.<br></div>
</div>
<img src ="http://www.cppblog.com/hkingSP/aggbug/21081.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/hkingSP/" target="_blank">宋鹏</a> 2007-04-02 10:18 <a href="http://www.cppblog.com/hkingSP/archive/2007/04/02/21081.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>7数据库(在EVC 的EMULATOR上调试通过)Version2</title><link>http://www.cppblog.com/hkingSP/archive/2007/03/29/20870.html</link><dc:creator>宋鹏</dc:creator><author>宋鹏</author><pubDate>Thu, 29 Mar 2007 06:22:00 GMT</pubDate><guid>http://www.cppblog.com/hkingSP/archive/2007/03/29/20870.html</guid><wfw:comment>http://www.cppblog.com/hkingSP/comments/20870.html</wfw:comment><comments>http://www.cppblog.com/hkingSP/archive/2007/03/29/20870.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/hkingSP/comments/commentRss/20870.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/hkingSP/services/trackbacks/20870.html</trackback:ping><description><![CDATA[
		<p>//SP-A1.创建或打开数据库卷<br /> CEGUID m_ceguid; //4个DWORD的数据组成的结构体，用来标识数据库文件位置<br />// PCEGUID pguid;<br /> if(!CeMountDBVol(&amp;m_ceguid,  //数据库文件位置<br />     L"DB",   //数据卷的名称<br />     OPEN_ALWAYS)) //操作标志<br /> {<br />  MessageBox(_T("Open Or Create DBVol Fail!"));<br /> }<br /> else<br /> {<br />  MessageBox(_T("Open Or Create DBVol Success!"));<br /> }</p>
		<p>/*<br /> //SP-A2.枚举已装在的数据库卷<br /> CEGUID guid;<br /> TCHAR szVolume[10];<br /> TCHAR szVolumef[10];<br /> int nCnt = 0;</p>
		<p> CREATE_INVALIDGUID(&amp;guid);<br /> while(CeEnumDBVolumes(&amp;guid,szVolume,sizeof(szVolume)))<br /> {<br />  nCnt++;<br />  wsprintf(szVolumef,TEXT("Mounted Vol is %s"),szVolume); //格式化输出<br />  MessageBox(szVolumef); //弹出所有已装载数据库的名字<br /> }<br /> <br />  //2.弹出已装载数据库的数量nCnt<br /> TCHAR temp[20];<br /> TCHAR tempf[20];<br /> <br /> _itow(nCnt,temp,10); //将i转换为字符串放入temp中,最后一个数字表示十进制<br /> wsprintf(tempf,TEXT("The Number of Mounted Vol is %s"),temp);<br /> MessageBox(tempf);</p>
		<p>
				<br /> //SP-A3.卸载数据库卷，并重新弹出所有已装载数据库的名字及数量<br /> CEGUID guid1;<br /> TCHAR szVolume1[10];<br /> int nCnt1 = 0;</p>
		<p> CREATE_INVALIDGUID(&amp;guid1);<br /> CeUnmountDBVol(&amp;m_ceguid);<br /> while(CeEnumDBVolumes(&amp;guid1,szVolume1,sizeof(szVolume1)))<br /> {<br />  nCnt1++;<br />  MessageBox(szVolume1); //弹出所有已装载数据库的名字<br /> }<br /> TCHAR temp1[10];<br /> _itow(nCnt1,temp1,10); //将i转换为字符串放入temp中,最后一个数字表示十进制<br /> MessageBox(temp1);<br />*/</p>
		<p>
				<br />/**/<br /> //SP-A4.创建数据库</p>
		<p>// #define PID_PASSWORD       MAKELONG (CEVT_LPWSTR, 1)<br /> HANDLE m_hdb=0;        //返回的已打开数据库的句柄<br /> CEOID m_ceoid=0;       //typedef DWORD CEOID;</p>
		<p> TCHAR DBTABLENAME[20] = _T("myDB"); </p>
		<p> //1.打开数据库，并检查返回值<br /> m_hdb = CeOpenDatabaseEx(&amp;m_ceguid,   //数据库卷的位置<br />       &amp;m_ceoid,   //通过名称引用数据库，所以将CEOID值设为0<br />       DBTABLENAME,  //数据库名称<br />       NULL,    //<br />       CEDB_AUTOINCREMENT, //读取一个记录后，数据库指针自增<br />       NULL);    //控制发送数据库变化消息的方式</p>
		<p>    if (m_hdb == INVALID_HANDLE_VALUE) <br /> {<br />  int rc;<br />        rc = GetLastError();</p>
		<p>  TCHAR temp1[10];<br />  _itow(rc,temp1,10); <br />  MessageBox(temp1);</p>
		<p>  //2.如果没有该数据库，则创建个新的<br />        if (rc == ERROR_FILE_NOT_FOUND)  <br />  {<br />   //2.1填写数据库信息<br />   CEDBASEINFO cedbaseinfo;   //数据库信息的结构体<br />   cedbaseinfo.dwFlags = CEDB_VALIDNAME <br />        | CEDB_VALIDTYPE <br />        | CEDB_VALIDSORTSPEC; //修建数据库中要用到的类型<br />   wcscpy(cedbaseinfo.szDbaseName,DBTABLENAME); <br />   cedbaseinfo.dwDbaseType = 0; <br />   cedbaseinfo.wNumSortOrder = 1 ; <br />   cedbaseinfo.rgSortSpecs[0].propid = PID_PASSWORD; <br />   cedbaseinfo.rgSortSpecs[0].dwFlags = CEDB_SORT_CASEINSENSITIVE; <br />   //2.2创建数据库<br />   m_ceoid = CeCreateDatabaseEx(&amp;m_ceguid,&amp;cedbaseinfo); <br />   if(m_ceoid==0) <br />   {<br />    MessageBox(TEXT("fail")); <br />   }<br />   else <br />   {<br />    //3创建后打开数据库<br />    m_hdb = CeOpenDatabaseEx(&amp;m_ceguid,<br />          &amp;m_ceoid,<br />          DBTABLENAME,<br />          NULL, <br />          CEDB_AUTOINCREMENT,<br />          NULL); <br />    MessageBox(TEXT("build Database success")); </p>
		<p>    //3.1.打开数据库错误判断<br />    if(INVALID_HANDLE_VALUE == m_hdb)<br />    {<br />     rc = GetLastError();<br />     switch(rc)<br />     {<br />      case ERROR_INVALID_PARAMETER:<br />      MessageBox(L"ERROR_INVALID_PARAMETER");<br />      break;</p>
		<p>      case ERROR_FILE_NOT_FOUND:<br />      MessageBox(L"ERROR_FILE_NOT_FOUND");<br />      break;</p>
		<p>      case ERROR_NOT_ENOUGH_MEMORY:<br />      MessageBox(L"ERROR_NOT_ENOUGH_MEMORY");<br />      break;</p>
		<p>      default :<br />      MessageBox(L"Database Opened");<br />      break;<br />     }<br />    }<br />   } <br />  }<br />  else //1.1打开数据库错误判断<br />  {<br />   switch(rc)<br />   {<br />    case ERROR_INVALID_PARAMETER:<br />    MessageBox(L"ERROR_INVALID_PARAMETER");<br />    break;</p>
		<p>    case ERROR_FILE_NOT_FOUND:<br />    MessageBox(L"ERROR_FILE_NOT_FOUND");<br />    break;</p>
		<p>    case ERROR_NOT_ENOUGH_MEMORY:<br />    MessageBox(L"ERROR_NOT_ENOUGH_MEMORY");<br />    break;</p>
		<p>    default :<br />    MessageBox(L"Database Opened");<br />    break;<br />   }<br />  }<br /> }</p>
		<p> //SP-A5.查找(搜索)记录<br /> DWORD dwIndex;        //索引<br /> CEOID oid;         //CEOID是DWORD<br />   /*<br />    @type CEOID | Unique identifier for all WINCE objects<br />    @comm Every WINCE object can be efficiently referred to by its OID. OID's are unique<br />     in the system and are not reused <br />   */</p>
		<p> oid = CeSeekDatabase(m_hdb,     //已打开数据库的句柄<br />      CEDB_SEEK_BEGINNING, //查找数据库的第n个记录<br />      0,      //n值<br />      &amp;dwIndex);    // receives the index from the start of the database to the beginning of the record that was found. This parameter can be NULL.</p>
		<p> if(0 == oid)<br /> {<br />  MessageBox(L"there is no first item in the database!");<br />  ///insert record </p>
		<p>  CEPROPVAL * pRorps; <br />  pRorps = new CEPROPVAL; </p>
		<p>  // <br />  memset(pRorps,0,LocalSize(pRorps)); <br />  pRorps-&gt;propid = PID_PASSWORD; <br />  pRorps-&gt;val.lpwstr = TEXT("SONGPENG"); </p>
		<p>  oid =0; <br />  oid = CeWriteRecordProps(m_hdb,   //已打开数据库句柄<br />        0,    //为0，则创建新记录<br />        1,    //属性ID结构数组中项目的数量<br />        pRorps);  //要记录的东东</p>
		<p>  if (oid == 0) <br />  {<br />   MessageBox(TEXT("insert failues")); <br />  }<br />  else <br />  {<br />   MessageBox(TEXT("insert success")); <br />   oid = CeSeekDatabase(m_hdb,     //已打开数据库的句柄<br />      CEDB_SEEK_BEGINNING, //查找数据库的第n个记录<br />      0,      //n值<br />      &amp;dwIndex); <br />   if(0 != oid)<br />   {<br />    MessageBox(L"first item found!");<br />   }<br />  }<br /> }<br /> else<br /> {<br />  MessageBox(L"first item found!");<br /> }</p>
		<p> //SP-A6.读取记录<br /> WORD wProps;     //属性个数<br /> PBYTE pBuff;     //缓冲区<br /> pBuff=0;<br /> DWORD dwRecSize;    //缓冲区大小</p>
		<p> oid=CeReadRecordProps(m_hdb, //已打开数据库的句柄<br /> CEDB_ALLOWREALLOC,    //函数可以扩大缓冲区，以便容纳返回数据<br /> &amp;wProps,      //包含了rProgID指向的CEPROPID结构的 数量<br /> NULL,       //一次读取记录所有必须属性<br /> &amp;(LPBYTE)pBuff,    //指向缓冲区指针的指针<br /> &amp;dwRecSize); </p>
		<p> if (oid == 0) <br /> {<br />        TCHAR szTxt[64];<br />        INT rc = GetLastError();<br />        wsprintf (szTxt, TEXT ("Db item not read. rc = %d (%x)"),<br />                  rc, rc);<br />        MessageBox (szTxt);<br /> }<br /> else<br /> {<br />  PCEPROPVAL pRecord;<br />  pRecord = (PCEPROPVAL)pBuff; //指向CEPROVAL数组<br />  TCHAR tmp[20];<br />  for(int i=0;i&lt;wProps;i++)<br />  {<br />   switch(pRecord-&gt;propid)<br />   {<br />   case PID_PASSWORD:<br />    lstrcpy(tmp,pRecord-&gt;val.lpwstr);<br />    break;<br />   default:<br />    break;<br />   }<br />   pRecord++;<br />  }<br />  MessageBox(tmp);<br />  LocalFree(pBuff);<br /> }</p>
		<p> //SP-A7.删除记录<br /> oid = CeSeekDatabase(m_hdb,CEDB_SEEK_BEGINNING,0,NULL); <br /> if( CeDeleteRecord(m_hdb,oid)) <br /> MessageBox(_T("DELE success")); </p>
		<p> if(CloseHandle(m_hdb)) <br /> MessageBox(_T("close success")); </p>
		<p> if(CeUnmountDBVol(&amp;m_ceguid)) <br /> MessageBox(_T("unmount success")); </p>
		<p>}</p>
		<p>/*<br />//用到的结构体和联合体<br />typedef struct _CEPROPVAL { <br />CEPROPID propid; //属性ID<br />WORD wLenData;  //不用<br />WORD wFlags;  //标识<br />CEVALUNION val;  //属性值（联合体）<br />} CEPROPVAL;<br />typedef CEPROPVAL *PCEPROPVAL; </p>
		<p>typedef union _CEVALUNION {<br />short iVal; <br />USHORT uiVal; <br />long lVal; <br />ULONG ulVal; <br />FILETIME filetime;<br />LPWSTR lpwstr;  //字符串形式<br />CEBLOB blob; <br />BOOL boolVal<br />double dblVal<br />} CEVALUNION; </p>
		<p>
				<br />typedef struct _CEDBASEINFO {<br />    DWORD    dwFlags;           <a>//@field</a> Indicates which fields are valid. Possible values are:<br />                                //  @flag CEDB_VALIDNAME | The name field is valid and should be used<br />                                //  @flag CEDB_VALIDTYPE | The type field is valid and should be used<br />                                //  @flag CEDB_VALIDSORTSPEC | The sortspecs are valid and should be used<br />    WCHAR    szDbaseName[CEDB_MAXDBASENAMELEN]; <a>//@field</a> Name of Database. Max CEDB_MAXDBASENAMELEN characters.<br />    DWORD    dwDbaseType;       <a>//@field</a> A type ID for this database<br />    WORD     wNumRecords;       <a>//@field</a> Number of records in the database<br />    WORD     wNumSortOrder;     <a>//@field</a> Number of sort orders active in the database<br />                                // Maximum is CEDB_MAXSORTORDER.<br />    DWORD    dwSize;            <a>//@field</a> Size in bytes that this database is using<br />    FILETIME ftLastModified;    <a>//@field</a> Last time this database was modified<br />    SORTORDERSPEC rgSortSpecs[CEDB_MAXSORTORDER];  <a>//@field</a> Actual sort order descriptions. <br />                                // Only first wNumSortOrder of this array are valid.<br />} CEDBASEINFO, *PCEDBASEINFO;<br />*/</p>
<img src ="http://www.cppblog.com/hkingSP/aggbug/20870.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/hkingSP/" target="_blank">宋鹏</a> 2007-03-29 14:22 <a href="http://www.cppblog.com/hkingSP/archive/2007/03/29/20870.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>6Trace</title><link>http://www.cppblog.com/hkingSP/archive/2007/03/28/20789.html</link><dc:creator>宋鹏</dc:creator><author>宋鹏</author><pubDate>Wed, 28 Mar 2007 09:25:00 GMT</pubDate><guid>http://www.cppblog.com/hkingSP/archive/2007/03/28/20789.html</guid><wfw:comment>http://www.cppblog.com/hkingSP/comments/20789.html</wfw:comment><comments>http://www.cppblog.com/hkingSP/archive/2007/03/28/20789.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/hkingSP/comments/commentRss/20789.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/hkingSP/services/trackbacks/20789.html</trackback:ping><description><![CDATA[
		<p>//在调试时，会从output中输出TRACE信息<br />int x = 1;<br />int y = 16;<br />float z = 32.0;</p>
		<p>TRACE( L"This is a TRACE statement\n" );</p>
		<p>TRACE( L"The value of x is %d\n", x );</p>
<img src ="http://www.cppblog.com/hkingSP/aggbug/20789.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/hkingSP/" target="_blank">宋鹏</a> 2007-03-28 17:25 <a href="http://www.cppblog.com/hkingSP/archive/2007/03/28/20789.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>5TryCatch</title><link>http://www.cppblog.com/hkingSP/archive/2007/03/28/20787.html</link><dc:creator>宋鹏</dc:creator><author>宋鹏</author><pubDate>Wed, 28 Mar 2007 09:24:00 GMT</pubDate><guid>http://www.cppblog.com/hkingSP/archive/2007/03/28/20787.html</guid><wfw:comment>http://www.cppblog.com/hkingSP/comments/20787.html</wfw:comment><comments>http://www.cppblog.com/hkingSP/archive/2007/03/28/20787.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/hkingSP/comments/commentRss/20787.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/hkingSP/services/trackbacks/20787.html</trackback:ping><description><![CDATA[int a=1;<br /> try<br /> {<br />  if(NULL!=a)throw a;<br /> }<br /> catch(int)<br /> {<br />  MessageBox(L"Catch Information \n NULL!=a");<br /> }<img src ="http://www.cppblog.com/hkingSP/aggbug/20787.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/hkingSP/" target="_blank">宋鹏</a> 2007-03-28 17:24 <a href="http://www.cppblog.com/hkingSP/archive/2007/03/28/20787.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CFile文件读写</title><link>http://www.cppblog.com/hkingSP/archive/2007/03/28/20785.html</link><dc:creator>宋鹏</dc:creator><author>宋鹏</author><pubDate>Wed, 28 Mar 2007 09:21:00 GMT</pubDate><guid>http://www.cppblog.com/hkingSP/archive/2007/03/28/20785.html</guid><wfw:comment>http://www.cppblog.com/hkingSP/comments/20785.html</wfw:comment><comments>http://www.cppblog.com/hkingSP/archive/2007/03/28/20785.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/hkingSP/comments/commentRss/20785.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/hkingSP/services/trackbacks/20785.html</trackback:ping><description><![CDATA[
		<p>//SP-A1文件写入及读取<br /> //创建文件2<br />  CFile file;<br />  if(file.Open(L"test1.TXT",CFile::modeReadWrite))<br />  {<br />//   MessageBox(L"File Open Success");<br />  }<br />  else<br />  {<br />   file.Open(L"test1.TXT",CFile::modeCreate | CFile::modeReadWrite);<br />//   MessageBox(L"not exist to create");<br />  }</p>
		<p>
				<br />        //定义读写缓冲区<br />  TCHAR buffer[]=L"a"; //4个字节<br />  TCHAR buffer_r[]=L"";<br />/*  <br />  //SP-A2文件写入<br />  file.Write(buffer,sizeof(buffer));<br />  file.Close(); //文件用完必须关闭，否则下次无法操作<br />*/</p>
		<p>/*<br />  //文件长度<br />  DWORD dwBytesRemaining = file.GetLength();<br />  _itow(dwBytesRemaining,buffer_r,10);<br />*/</p>
		<p>  //SP-A3文件读入,要读取，就要把前面的写入去掉，否则会无法读取<br />  file.Read(buffer_r,4);<br />  MessageBox(buffer_r);<br />  file.Close(); //文件用完必须关闭，否则下次无法操作<br />/*<br /> //写文本，失败<br /> RECT rect;<br />    GetClientRect (&amp;rect);</p>
		<p> HDC hdc;<br /> hdc = (HDC)GetDC();</p>
		<p> ExtTextOut(hdc,0,0,0,NULL,L"aa",lstrlen(L"aa"),NULL);<br />*/ </p>
<img src ="http://www.cppblog.com/hkingSP/aggbug/20785.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/hkingSP/" target="_blank">宋鹏</a> 2007-03-28 17:21 <a href="http://www.cppblog.com/hkingSP/archive/2007/03/28/20785.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>各种类型转换Version2</title><link>http://www.cppblog.com/hkingSP/archive/2007/03/28/20784.html</link><dc:creator>宋鹏</dc:creator><author>宋鹏</author><pubDate>Wed, 28 Mar 2007 09:19:00 GMT</pubDate><guid>http://www.cppblog.com/hkingSP/archive/2007/03/28/20784.html</guid><wfw:comment>http://www.cppblog.com/hkingSP/comments/20784.html</wfw:comment><comments>http://www.cppblog.com/hkingSP/archive/2007/03/28/20784.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/hkingSP/comments/commentRss/20784.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/hkingSP/services/trackbacks/20784.html</trackback:ping><description><![CDATA[
		<p> //SP-A1数字和文字的转换 by Format(CString)<br />/*<br /> CString str;<br /> int i=125;<br /> str.Format(TEXT("%d"),i);<br /> MessageBox(str);<br />*/<br /> //SP-A2数字和文字的转换 BY _itow<br /> //ANSI码<br />// int i1=135;<br />// CHAR temp1[10];<br />// _itoa(i1,temp1,10);<br />// MessageBox(temp);<br />/*<br /> //UNICODE码<br /> int i2=135;<br /> TCHAR temp2[10];<br /> _itow(i2,temp2,10); //将i转换为字符串放入temp中,最后一个数字表示十进制<br /> MessageBox(temp2);<br />*/<br />int i=0x5555;<br />long l=0x66666666;<br />unsigned long ul=0xffffffff;</p>
		<p> Show_Num(i);<br />// MessageBox(L"i"); <br /> Show_Num(l);<br />// MessageBox(L"l"); <br /> Show_Num(ul);<br />// MessageBox(L"ul"); <br />}</p>
		<p>
				<br />//------------------------------<br />//变量显示函数-i<br />//<br />void Show_Num(int i)<br />{<br /> TCHAR temp[8];<br /> _itow(i,temp,16); //将i转换为字符串放入temp中,最后一个数字表示十进制<br /> AfxMessageBox(temp);<br />// MessageBox(NULL,temp,NULL,MB_OK); <br />}</p>
		<p>//------------------------------<br />//变量显示函数-l<br />//<br />void Show_Num(long l)<br />{<br /> TCHAR temp[16];<br /> _itow(l,temp,16); //将i转换为字符串放入temp中,最后一个数字表示十进制<br /> AfxMessageBox(temp);<br />// MessageBox(NULL,temp,NULL,MB_OK); <br />}</p>
		<p>//------------------------------<br />//变量显示函数-ul<br />//<br />void Show_Num(unsigned long ul)<br />{<br /> TCHAR temp[16];<br /> _itow(ul,temp,16); //将i转换为字符串放入temp中,最后一个数字表示十进制<br /> AfxMessageBox(temp);<br />// MessageBox(NULL,temp,NULL,MB_OK); <br />}</p>
<img src ="http://www.cppblog.com/hkingSP/aggbug/20784.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/hkingSP/" target="_blank">宋鹏</a> 2007-03-28 17:19 <a href="http://www.cppblog.com/hkingSP/archive/2007/03/28/20784.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>打开或创建文件（mfc &amp;API）</title><link>http://www.cppblog.com/hkingSP/archive/2007/03/28/20783.html</link><dc:creator>宋鹏</dc:creator><author>宋鹏</author><pubDate>Wed, 28 Mar 2007 09:16:00 GMT</pubDate><guid>http://www.cppblog.com/hkingSP/archive/2007/03/28/20783.html</guid><wfw:comment>http://www.cppblog.com/hkingSP/comments/20783.html</wfw:comment><comments>http://www.cppblog.com/hkingSP/archive/2007/03/28/20783.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/hkingSP/comments/commentRss/20783.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/hkingSP/services/trackbacks/20783.html</trackback:ping><description><![CDATA[
		<p> //SP-A1用CFile来创建文件<br /> CFile file;<br /> if(file.Open(L"test1.TXT",CFile::modeReadWrite))<br /> {<br />  MessageBox(L"Open File OK");<br /> }<br /> else<br /> {<br />  file.Open(L"test1.TXT",CFile::modeCreate | CFile::modeReadWrite);<br />  MessageBox(L"File not exist to create");<br /> }</p>
		<p> /*<br />  //SP-A2创建文件2用CreateFile创建文件<br />  HANDLE g_hFile = 0;                  // Handle to the opened file<br />  g_hFile = CreateFile(L"test.txt",GENERIC_READ | GENERIC_WRITE,<br />                          FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);<br />*/</p>
<img src ="http://www.cppblog.com/hkingSP/aggbug/20783.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/hkingSP/" target="_blank">宋鹏</a> 2007-03-28 17:16 <a href="http://www.cppblog.com/hkingSP/archive/2007/03/28/20783.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MessageBox</title><link>http://www.cppblog.com/hkingSP/archive/2007/03/28/20780.html</link><dc:creator>宋鹏</dc:creator><author>宋鹏</author><pubDate>Wed, 28 Mar 2007 08:50:00 GMT</pubDate><guid>http://www.cppblog.com/hkingSP/archive/2007/03/28/20780.html</guid><wfw:comment>http://www.cppblog.com/hkingSP/comments/20780.html</wfw:comment><comments>http://www.cppblog.com/hkingSP/archive/2007/03/28/20780.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/hkingSP/comments/commentRss/20780.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/hkingSP/services/trackbacks/20780.html</trackback:ping><description><![CDATA[CWnd 类中<br />MessageBox(L"MessageBox test");<img src ="http://www.cppblog.com/hkingSP/aggbug/20780.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/hkingSP/" target="_blank">宋鹏</a> 2007-03-28 16:50 <a href="http://www.cppblog.com/hkingSP/archive/2007/03/28/20780.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>