<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PKILL.info &#187; programming</title>
	<atom:link href="http://pkill.info/b/topic/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://pkill.info/b</link>
	<description>Tutorials and tips</description>
	<lastBuildDate>Wed, 08 Sep 2010 06:08:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Vim Formatting C/C++ Code</title>
		<link>http://pkill.info/b/1419/vim-formatting-cc-code/</link>
		<comments>http://pkill.info/b/1419/vim-formatting-cc-code/#comments</comments>
		<pubDate>Sat, 13 Mar 2010 13:55:14 +0000</pubDate>
		<dc:creator>Zhiqiang Ma</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://zhiqiangma.info/?p=1419</guid>
		<description><![CDATA[Vim provides some basic formatting commands. A combination of these commands with the editing commands will make the programmer happy. A list of basic text formatting commands in Vim: = is an operator that formats/indents text. i{ is a text object that specifies the surrounding code block. It should be used together with v, =, [...]

<b>Read more:</b><ul><li><a href='http://pkill.info/b/324/vim-cgdb/' rel='bookmark' title='Permanent Link: vim + cgdb'>vim + cgdb</a></li>
<li><a href='http://pkill.info/b/731/how-to-wrap-and-not-wrap-lines-in-vim/' rel='bookmark' title='Permanent Link: How to wrap and NOT wrap lines in vim'>How to wrap and NOT wrap lines in vim</a></li>
<li><a href='http://pkill.info/b/398/my-vim-emacs-configuration-files/' rel='bookmark' title='Permanent Link: My vim emacs configuration files'>My vim emacs configuration files</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Vim provides some basic formatting commands. A combination of these commands with the editing commands will make the programmer happy.</p>
<p>A list of basic text formatting commands in Vim:</p>
<ul>
<li><strong><tt>=</tt></strong> is an operator that formats/indents text.</li>
<li><strong><tt>i{</tt></strong> is a text object that specifies the surrounding code block. It should be used together with <strong><em>v</em></strong>, <strong><em>=</em></strong>, etc.</li>
</ul>
<p>Some basic but useful operation that are combination of the two basic ones above:</p>
<ul>
<li><strong><tt>vi{</tt></strong> visually selects the inner code block around the cursor.</li>
<li><strong><tt>=i{</tt></strong> formats the code block.</li>
<li><strong><tt>=2i{</tt></strong> formats the current block and the block around it.</li>
<li><strong><tt>==</tt></strong> formats current line.</li>
</ul>
<p>The method to format a block of C/C++ or Java code:</p>
<ul>
<li>First, go to the start point of codes to be formatted, then press <strong><em>v</em></strong> to start selection.</li>
<li>Second, go to the end point.</li>
<li>Third, press <strong><em>=</em></strong> to format the codes that have been selected. All braces and indentations will be aligned.</li>
</ul>
<p>A short way to format the whole buffer:</p>
<ul>
<li>gg=G</li>
</ul>


<b>Read more:</b><ul><li><a href='http://pkill.info/b/324/vim-cgdb/' rel='bookmark' title='Permanent Link: vim + cgdb'>vim + cgdb</a></li>
<li><a href='http://pkill.info/b/731/how-to-wrap-and-not-wrap-lines-in-vim/' rel='bookmark' title='Permanent Link: How to wrap and NOT wrap lines in vim'>How to wrap and NOT wrap lines in vim</a></li>
<li><a href='http://pkill.info/b/398/my-vim-emacs-configuration-files/' rel='bookmark' title='Permanent Link: My vim emacs configuration files'>My vim emacs configuration files</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://pkill.info/b/1419/vim-formatting-cc-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The C Programming Style that I Follow</title>
		<link>http://pkill.info/b/1352/the-c-programming-style-that-i-follow/</link>
		<comments>http://pkill.info/b/1352/the-c-programming-style-that-i-follow/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 07:54:53 +0000</pubDate>
		<dc:creator>Zhiqiang Ma</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[style]]></category>

		<guid isPermaLink="false">http://zhiqiangma.info/?p=1352</guid>
		<description><![CDATA[C programming language allow any style the programmer like. A good style can make the code easy to understand and maintain, while a bad style will make the project a nightmare. This is the C programming styles that I follows: 1. For each source file (*.c), there is a header file (*.h) that have the [...]

<b>Read more:</b><ul><li><a href='http://pkill.info/b/108/c-style/' rel='bookmark' title='Permanent Link: C++ Style'>C++ Style</a></li>
<li><a href='http://pkill.info/b/1419/vim-formatting-cc-code/' rel='bookmark' title='Permanent Link: Vim Formatting C/C++ Code'>Vim Formatting C/C++ Code</a></li>
<li><a href='http://pkill.info/b/391/win32%e4%b8%8bcom%e5%8f%a3%e9%80%9a%e4%bf%a1%e6%8e%a7%e5%88%b6/' rel='bookmark' title='Permanent Link: Win32下COM口通信控制'>Win32下COM口通信控制</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>C programming language allow any style the programmer like. A good style can make the code easy to understand and maintain, while a bad style will make the project a nightmare.</p>
<p>This is the C programming styles that I follows:</p>
<p><strong>1. For each source file (*.c), there is a header file (*.h) that have the same name with it as it&#8217;s interface.</strong></p>
<p><strong>2. The header file starts with</strong></p>
<pre>#ifndef _HEADER_NAME_H
#  define  _HEADER_NAME_H
</pre>
<p><strong> And end with:</strong></p>
<pre>#endif // _HEADER_NAME_H</pre>
<p><strong>3. #include is only used in source file usually.  ONLY when it is really necessary, #include can be used in header file.</strong></p>
<p><strong>4. There is NO definition in header file. </strong></p>
<p><strong>5. Global variable defined in source file that is visible outside the module is declared as extern variable in the relevant header file. Global variable is used only when it is really necessary.</strong></p>
<p>An example that follow this style is <a href="http://github.com/zma/mrcc">mrcc</a>.</p>


<b>Read more:</b><ul><li><a href='http://pkill.info/b/108/c-style/' rel='bookmark' title='Permanent Link: C++ Style'>C++ Style</a></li>
<li><a href='http://pkill.info/b/1419/vim-formatting-cc-code/' rel='bookmark' title='Permanent Link: Vim Formatting C/C++ Code'>Vim Formatting C/C++ Code</a></li>
<li><a href='http://pkill.info/b/391/win32%e4%b8%8bcom%e5%8f%a3%e9%80%9a%e4%bf%a1%e6%8e%a7%e5%88%b6/' rel='bookmark' title='Permanent Link: Win32下COM口通信控制'>Win32下COM口通信控制</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://pkill.info/b/1352/the-c-programming-style-that-i-follow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Put the categories, archives and all posts into pages</title>
		<link>http://pkill.info/b/754/put-the-categories-archives-and-all-posts-into-pages/</link>
		<comments>http://pkill.info/b/754/put-the-categories-archives-and-all-posts-into-pages/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 07:02:52 +0000</pubDate>
		<dc:creator>Zhiqiang Ma</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://zhiqiangma.info/?p=754</guid>
		<description><![CDATA[I prefer putting pages that contains all the categories, archives and even all the posts in one page to putting these links in the side bar. Actually, most of time it needn&#8217;t to stay on every pages. And if it is in the side bar, the search engine will see these links in every page [...]

<b>Read more:</b><ul><li><a href='http://pkill.info/b/777/use-noindex-meta-tag-in-wordpress-to-prevent-search-engine-indexing-categories-tags-and-archives/' rel='bookmark' title='Permanent Link: Use noindex Meta Tag in WordPress to Prevent Search Engine Indexing Categories, Tags and Archives'>Use noindex Meta Tag in WordPress to Prevent Search Engine Indexing Categories, Tags and Archives</a></li>
<li><a href='http://pkill.info/b/812/get-the-number-of-all-posts-in-wordpress/' rel='bookmark' title='Permanent Link: Get the Number of All Posts in WordPress'>Get the Number of All Posts in WordPress</a></li>
<li><a href='http://pkill.info/b/705/use-excerpt-in-index-category-tag-and-arhieve-pages-for-wordpress/' rel='bookmark' title='Permanent Link: Use Excerpt in Index, Category, Tag and Arhieve Pages for WordPress'>Use Excerpt in Index, Category, Tag and Arhieve Pages for WordPress</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>I prefer putting pages that contains all the categories, archives and even all the posts in one page to putting these links in the side bar. Actually, most of time it needn&#8217;t to stay on every pages. And if it is in the side bar, the search engine will see these links in every page and think it is very important while it is not so important. So the better way is put them in one or several pages.</p>
<p>But unfortunately, WordPress doesn&#8217;t provide a simple way to put several pages and put some part like the widget into it. So I write some php script that will call WordPress&#8217;s API to put them input pages.</p>
<p>The page template is like this. This template enable the theme and load the common files that contains WordPress&#8217;s API functions. Then it generate the header, sidebar and the footer. What we need to do is add the content to replace &#8220;TODO: content here&#8221; now.</p>
<pre class="prettyprint">&lt;?php
/**
* Loads the WordPress environment and template.
*/
define('WP_USE_THEMES', true);
if ( !isset($wp_did_header) ) {
  $wp_did_header = true;
  require_once( dirname(__FILE__) . '/../wp-load.php' );
}
?&gt;

&lt;?php get_header(); ?&gt;
&lt;div id="container"&gt;
  TODO: Content here.
&lt;/div&gt;
&lt;?php get_sidebar(); ?&gt;
&lt;?php get_footer(); ?&gt;
</pre>
<p><strong>1. Categories</strong></p>
<p>The code for categories is:</p>
<pre class="prettyprint">&lt;div&gt;
&lt;h1&gt;&lt;?php _e('Categories', 'default'); ?&gt;&lt;/h1&gt;
&lt;div&gt;
&lt;ul&gt;
  &lt;?php wp_list_categories('title_li=&amp;show_count=1'); ?&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
</pre>
<p>wp_list_categories() can list all the categories as a list. &#8220;show_count=1&#8243; means the post number under each category will be shown after the category.</p>
<p><strong>2. Archives</strong></p>
<p>The code is:</p>
<pre class="prettyprint">&lt;div&gt;
&lt;h1&gt;&lt;?php _e('Archives by Month', 'default'); ?&gt;&lt;/h1&gt;
&lt;div&gt;
&lt;ul&gt;
  &lt;?php wp_get_archives('type=monthly&amp;show_post_count=1'); ?&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
</pre>
<p>wp_get_archives() will show the archives. the type can be changed to weekly, daily to show archives by week or day.</p>
<p><strong>3. All posts</strong></p>
<p>The code:</p>
<pre class="prettyprint">&lt;div&gt;
&lt;h1&gt;&lt;?php _e('All posts', 'default'); ?&gt;&lt;/h1&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;?php
  //The Query
  query_posts('posts_per_page=1000');
  //The Loop
  if ( have_posts() )
  {
    while ( have_posts() )
    {
      the_post();
?&gt;
&lt;li&gt;
&lt;a href="&lt;?php the_permalink() ?&gt;" rel="bookmark"
title="Permanent Link to &lt;?php the_title_attribute(); ?&gt;"&gt;
&lt;?php the_title(); ?&gt;&lt;/a&gt;&lt;/li&gt;
&lt;?php
_e('&lt;/li&gt;');
    }
  }
  //Reset Query
  wp_reset_query();
?&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
</pre>
<p>At most 1000 posts&#8217; titles will be listed.</p>
<p>Put these php files into the site, edit the theme files and then enjoy it! :)</p>


<b>Read more:</b><ul><li><a href='http://pkill.info/b/777/use-noindex-meta-tag-in-wordpress-to-prevent-search-engine-indexing-categories-tags-and-archives/' rel='bookmark' title='Permanent Link: Use noindex Meta Tag in WordPress to Prevent Search Engine Indexing Categories, Tags and Archives'>Use noindex Meta Tag in WordPress to Prevent Search Engine Indexing Categories, Tags and Archives</a></li>
<li><a href='http://pkill.info/b/812/get-the-number-of-all-posts-in-wordpress/' rel='bookmark' title='Permanent Link: Get the Number of All Posts in WordPress'>Get the Number of All Posts in WordPress</a></li>
<li><a href='http://pkill.info/b/705/use-excerpt-in-index-category-tag-and-arhieve-pages-for-wordpress/' rel='bookmark' title='Permanent Link: Use Excerpt in Index, Category, Tag and Arhieve Pages for WordPress'>Use Excerpt in Index, Category, Tag and Arhieve Pages for WordPress</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://pkill.info/b/754/put-the-categories-archives-and-all-posts-into-pages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>vim + cgdb</title>
		<link>http://pkill.info/b/324/vim-cgdb/</link>
		<comments>http://pkill.info/b/324/vim-cgdb/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 12:33:17 +0000</pubDate>
		<dc:creator>Zhiqiang Ma</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[cgdb]]></category>
		<category><![CDATA[client config]]></category>
		<category><![CDATA[gdb]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://zhiqiangma.info/vim-cgdb/</guid>
		<description><![CDATA[I begin to use vim for programming. I like the tools that focus on one function. I used to use emacs. But I think I like vim more. For debugging, I use gdb. But I use the front end cgdb. I can see the codes with the cursor when debugging. I can use F8 for [...]

<b>Read more:</b><ul><li><a href='http://pkill.info/b/1419/vim-formatting-cc-code/' rel='bookmark' title='Permanent Link: Vim Formatting C/C++ Code'>Vim Formatting C/C++ Code</a></li>
<li><a href='http://pkill.info/b/731/how-to-wrap-and-not-wrap-lines-in-vim/' rel='bookmark' title='Permanent Link: How to wrap and NOT wrap lines in vim'>How to wrap and NOT wrap lines in vim</a></li>
<li><a href='http://pkill.info/b/398/my-vim-emacs-configuration-files/' rel='bookmark' title='Permanent Link: My vim emacs configuration files'>My vim emacs configuration files</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>I begin to use vim for programming. I like the tools that focus on one function. I used to use emacs. But I think I like vim more.</p>
<p>For debugging, I use gdb. But I use the front end cgdb. I can see the codes with the cursor when debugging. I can use F8 for next instead of n + enter. And F10 for step instead of s + enter. i is the key for enter gdb command mode. And ESC can change the user to command mode. But ESC is too far away from my finger, so I prefer &#8220;Ctrl + [&#8221; to ESC ;)</p>
<p>My configuration files can be found here if they are useful for someone:<br />
<a href="http://github.com/zma/config_files">http://github.com/zma/config_files</a></p>
<p>In the config file of cgdb:<br />
&#8220;set winsplit=top_big: is for letting the code window bigger than the gdb command windows, which is convenient for debugging.</p>
<p>A list of useful cgdb shortcuts:</p>
<pre>`F5'
     Send a run command to GDB.

`F6'
     Send a continue command to GDB.

`F7'
     Send a finish command to GDB.

`F8'
     Send a next command to GDB.

`F10'
     Send a step command to GDB.

`spacebar'
     Sets a breakpoint at the current line number.

`t'
     Sets a temporary breakpoint at the current line number.

`i'
     Puts the user into "GDB mode".

`I'
     Puts the user into "TTY mode".
</pre>
<p>These short cuts is available in cgdb 0.6.5.</p>
<p><span style="font-size: x-small;">Updated on Apr. 2 2010. Short cuts are added.</span></p>


<b>Read more:</b><ul><li><a href='http://pkill.info/b/1419/vim-formatting-cc-code/' rel='bookmark' title='Permanent Link: Vim Formatting C/C++ Code'>Vim Formatting C/C++ Code</a></li>
<li><a href='http://pkill.info/b/731/how-to-wrap-and-not-wrap-lines-in-vim/' rel='bookmark' title='Permanent Link: How to wrap and NOT wrap lines in vim'>How to wrap and NOT wrap lines in vim</a></li>
<li><a href='http://pkill.info/b/398/my-vim-emacs-configuration-files/' rel='bookmark' title='Permanent Link: My vim emacs configuration files'>My vim emacs configuration files</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://pkill.info/b/324/vim-cgdb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Generate a mixed source and assembly list using gcc</title>
		<link>http://pkill.info/b/240/generate-a-mixed-source-and-assembly-listing-using-gcc/</link>
		<comments>http://pkill.info/b/240/generate-a-mixed-source-and-assembly-listing-using-gcc/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 14:53:40 +0000</pubDate>
		<dc:creator>Zhiqiang Ma</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[tutorials]]></category>

		<guid isPermaLink="false">http://zhiqiangma.info/generate-a-mixed-source-and-assembly-listing-using-gcc/</guid>
		<description><![CDATA[Generating a mixed source and assembly list will help the programmer a lot for debugging. Just add these gcc compile options: -Wa,-adhln -g -g: Produce debugging information -Wa,option: Pass option as an option to the assembler -adhln: a: turn on listings d: omit debugging directives; n: omit forms processing h: include high-level source l: include [...]

<b>Read more:</b><ul><li><a href='http://pkill.info/b/1419/vim-formatting-cc-code/' rel='bookmark' title='Permanent Link: Vim Formatting C/C++ Code'>Vim Formatting C/C++ Code</a></li>
<li><a href='http://pkill.info/b/2199/jailbreaking-apple-ipod-touch-with-spirit-in-linux/' rel='bookmark' title='Permanent Link: Jailbreaking Apple iPod Touch with Spirit in Linux'>Jailbreaking Apple iPod Touch with Spirit in Linux</a></li>
<li><a href='http://pkill.info/b/1593/backup-linux-home-directory-using-rsync/' rel='bookmark' title='Permanent Link: Backup Linux Home Directory Using rsync'>Backup Linux Home Directory Using rsync</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Generating a mixed source and assembly list will help the programmer a lot for debugging.</p>
<p>Just add these gcc compile options:</p>
<pre>-Wa,-adhln -g</pre>
<p>-g:  Produce debugging information<br />
-Wa,option: Pass option as an option to the assembler<br />
-adhln:<br />
a: turn on listings<br />
d: omit debugging directives; n: omit forms processing<br />
h: include high-level source<br />
l: include assembly</p>
<p>One example:<br />
helloworld.c:</p>
<pre class="prettyprint">#include &lt;stdio.h&gt;
int main()
{
  printf("Helloworld!\n");
  return 0;
}
</pre>
<p>The command:</p>
<pre>$ gcc -Wa,-adhln -g helloworld.c &gt; helloworld.s</pre>
<p>helloworld.s:</p>
<pre class="prettyprint">...

0:helloworld.c  **** #include &lt;stdio.h&gt;
1:helloworld.c  ****
2:helloworld.c  **** int main()
3:helloworld.c  **** {
19                            .loc 1 4 0
20                            .cfi_startproc
21 0000 55                    pushq   %rbp
22                    .LCFI0:
23                            .cfi_def_cfa_offset 16
24 0001 4889E5                movq    %rsp, %rbp
25                            .cfi_offset 6, -16
26                    .LCFI1:
27                            .cfi_def_cfa_register 6
4:helloworld.c  ****   printf("Helloworld!\n");
28                            .loc 1 5 0
29 0004 BF000000              movl    $.LC0, %edi
29      00
30 0009 E8000000              call    puts
30      00
5:helloworld.c  ****   return 0;
31                            .loc 1 6 0
32 000e B8000000              movl    $0, %eax
32      00
6:helloworld.c  **** }

...</pre>
<p><span style="font-size: x-small;">Updated on 17 Mar. 2010. Add example source code.</span><br />
<span style="font-size: x-small;">Updated on 24 Feb. 2010.</span></p>


<b>Read more:</b><ul><li><a href='http://pkill.info/b/1419/vim-formatting-cc-code/' rel='bookmark' title='Permanent Link: Vim Formatting C/C++ Code'>Vim Formatting C/C++ Code</a></li>
<li><a href='http://pkill.info/b/2199/jailbreaking-apple-ipod-touch-with-spirit-in-linux/' rel='bookmark' title='Permanent Link: Jailbreaking Apple iPod Touch with Spirit in Linux'>Jailbreaking Apple iPod Touch with Spirit in Linux</a></li>
<li><a href='http://pkill.info/b/1593/backup-linux-home-directory-using-rsync/' rel='bookmark' title='Permanent Link: Backup Linux Home Directory Using rsync'>Backup Linux Home Directory Using rsync</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://pkill.info/b/240/generate-a-mixed-source-and-assembly-listing-using-gcc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MFC中屏蔽ESC和回车关闭对话框</title>
		<link>http://pkill.info/b/169/mfc%e4%b8%ad%e5%b1%8f%e8%94%bdesc%e5%92%8c%e5%9b%9e%e8%bd%a6%e5%85%b3%e9%97%ad%e5%af%b9%e8%af%9d%e6%a1%86/</link>
		<comments>http://pkill.info/b/169/mfc%e4%b8%ad%e5%b1%8f%e8%94%bdesc%e5%92%8c%e5%9b%9e%e8%bd%a6%e5%85%b3%e9%97%ad%e5%af%b9%e8%af%9d%e6%a1%86/#comments</comments>
		<pubDate>Sat, 04 Jul 2009 11:31:42 +0000</pubDate>
		<dc:creator>Zhiqiang Ma</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[mfc]]></category>
		<category><![CDATA[vc]]></category>

		<guid isPermaLink="false">http://zhiqiangma.info/mfc%e4%b8%ad%e5%b1%8f%e8%94%bdesc%e5%92%8c%e5%9b%9e%e8%bd%a6%e5%85%b3%e9%97%ad%e5%af%b9%e8%af%9d%e6%a1%86/</guid>
		<description><![CDATA[解决方法是在CDialog::PreTranslateMessage() 的重载函数中将ESC和回车按键的消息处理掉. 直接上代码: BOOL CResultCollectorDlg::PreTranslateMessage(MSG* pMsg) { if(pMsg-&#62;message == WM_KEYDOWN) { switch(pMsg-&#62;wParam) { case VK_RETURN: //回车 return TRUE; case VK_ESCAPE: //ESC return TRUE; } } return CDialog::PreTranslateMessage(pMsg); } Read more:使用XP风格的打开文件对话框 MFC程序使用系统风格界面 使用选择文件夹对话框

<b>Read more:</b><ul><li><a href='http://pkill.info/b/168/%e4%bd%bf%e7%94%a8xp%e9%a3%8e%e6%a0%bc%e7%9a%84%e6%89%93%e5%bc%80%e6%96%87%e4%bb%b6%e5%af%b9%e8%af%9d%e6%a1%86/' rel='bookmark' title='Permanent Link: 使用XP风格的打开文件对话框'>使用XP风格的打开文件对话框</a></li>
<li><a href='http://pkill.info/b/132/mfc%e7%a8%8b%e5%ba%8f%e4%bd%bf%e7%94%a8%e7%b3%bb%e7%bb%9f%e9%a3%8e%e6%a0%bc%e7%95%8c%e9%9d%a2/' rel='bookmark' title='Permanent Link: MFC程序使用系统风格界面'>MFC程序使用系统风格界面</a></li>
<li><a href='http://pkill.info/b/167/%e4%bd%bf%e7%94%a8%e9%80%89%e6%8b%a9%e6%96%87%e4%bb%b6%e5%a4%b9%e5%af%b9%e8%af%9d%e6%a1%86/' rel='bookmark' title='Permanent Link: 使用选择文件夹对话框'>使用选择文件夹对话框</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>解决方法是在CDialog::PreTranslateMessage() 的重载函数中将ESC和回车按键的消息处理掉.<br />
直接上代码:</p>
<pre>
BOOL
CResultCollectorDlg::PreTranslateMessage(MSG* pMsg)
{
  if(pMsg-&gt;message == WM_KEYDOWN) {
    switch(pMsg-&gt;wParam) {
      case VK_RETURN: //回车
        return TRUE;
      case VK_ESCAPE: //ESC
        return TRUE;
    }
  }
  return CDialog::PreTranslateMessage(pMsg);
}
</pre>


<b>Read more:</b><ul><li><a href='http://pkill.info/b/168/%e4%bd%bf%e7%94%a8xp%e9%a3%8e%e6%a0%bc%e7%9a%84%e6%89%93%e5%bc%80%e6%96%87%e4%bb%b6%e5%af%b9%e8%af%9d%e6%a1%86/' rel='bookmark' title='Permanent Link: 使用XP风格的打开文件对话框'>使用XP风格的打开文件对话框</a></li>
<li><a href='http://pkill.info/b/132/mfc%e7%a8%8b%e5%ba%8f%e4%bd%bf%e7%94%a8%e7%b3%bb%e7%bb%9f%e9%a3%8e%e6%a0%bc%e7%95%8c%e9%9d%a2/' rel='bookmark' title='Permanent Link: MFC程序使用系统风格界面'>MFC程序使用系统风格界面</a></li>
<li><a href='http://pkill.info/b/167/%e4%bd%bf%e7%94%a8%e9%80%89%e6%8b%a9%e6%96%87%e4%bb%b6%e5%a4%b9%e5%af%b9%e8%af%9d%e6%a1%86/' rel='bookmark' title='Permanent Link: 使用选择文件夹对话框'>使用选择文件夹对话框</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://pkill.info/b/169/mfc%e4%b8%ad%e5%b1%8f%e8%94%bdesc%e5%92%8c%e5%9b%9e%e8%bd%a6%e5%85%b3%e9%97%ad%e5%af%b9%e8%af%9d%e6%a1%86/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用XP风格的打开文件对话框</title>
		<link>http://pkill.info/b/168/%e4%bd%bf%e7%94%a8xp%e9%a3%8e%e6%a0%bc%e7%9a%84%e6%89%93%e5%bc%80%e6%96%87%e4%bb%b6%e5%af%b9%e8%af%9d%e6%a1%86/</link>
		<comments>http://pkill.info/b/168/%e4%bd%bf%e7%94%a8xp%e9%a3%8e%e6%a0%bc%e7%9a%84%e6%89%93%e5%bc%80%e6%96%87%e4%bb%b6%e5%af%b9%e8%af%9d%e6%a1%86/#comments</comments>
		<pubDate>Sat, 04 Jul 2009 11:08:57 +0000</pubDate>
		<dc:creator>Zhiqiang Ma</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[mfc]]></category>
		<category><![CDATA[vc]]></category>

		<guid isPermaLink="false">http://zhiqiangma.info/%e4%bd%bf%e7%94%a8xp%e9%a3%8e%e6%a0%bc%e7%9a%84%e6%89%93%e5%bc%80%e6%96%87%e4%bb%b6%e5%af%b9%e8%af%9d%e6%a1%86/</guid>
		<description><![CDATA[使用MFC开发时,MFC提供的CFileDialg类进行选择文件时,打开的对话框是98风格的,新的XP风格左边有一个包含&#8221;我的电脑&#8221;"我的文档&#8221;等的快捷选项,用起来比较方便.使用下面的代码可以实现在使用MFC进行开发时使用XP风格的打开文件对话框: CString OpenFileXPStyle() { // TODO: Add your control notification handler code here char name[4096]; name[0] = ''; OPENFILENAME ofn; memset( &#38;ofn, 0, sizeof(ofn)); ofn.lStructSize = sizeof(ofn); ofn.hwndOwner = m_hWnd; ofn.lpstrFilter = "文本文件(*.txt)*.txt"; ofn.nFilterIndex = 1; ofn.lpstrFile = name; ofn.nMaxFile = 4096; ofn.lpstrTitle = "选择文件"; ofn.Flags = OFN_CREATEPROMPT&#124;OFN_ENABLESIZING&#124;OFN_HIDEREADONLY; CString file_path; if( ::GetOpenFileName( &#38;ofn ) ) [...]

<b>Read more:</b><ul><li><a href='http://pkill.info/b/169/mfc%e4%b8%ad%e5%b1%8f%e8%94%bdesc%e5%92%8c%e5%9b%9e%e8%bd%a6%e5%85%b3%e9%97%ad%e5%af%b9%e8%af%9d%e6%a1%86/' rel='bookmark' title='Permanent Link: MFC中屏蔽ESC和回车关闭对话框'>MFC中屏蔽ESC和回车关闭对话框</a></li>
<li><a href='http://pkill.info/b/132/mfc%e7%a8%8b%e5%ba%8f%e4%bd%bf%e7%94%a8%e7%b3%bb%e7%bb%9f%e9%a3%8e%e6%a0%bc%e7%95%8c%e9%9d%a2/' rel='bookmark' title='Permanent Link: MFC程序使用系统风格界面'>MFC程序使用系统风格界面</a></li>
<li><a href='http://pkill.info/b/167/%e4%bd%bf%e7%94%a8%e9%80%89%e6%8b%a9%e6%96%87%e4%bb%b6%e5%a4%b9%e5%af%b9%e8%af%9d%e6%a1%86/' rel='bookmark' title='Permanent Link: 使用选择文件夹对话框'>使用选择文件夹对话框</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>使用MFC开发时,MFC提供的CFileDialg类进行选择文件时,打开的对话框是98风格的,新的XP风格左边有一个包含&#8221;我的电脑&#8221;"我的文档&#8221;等的快捷选项,用起来比较方便.使用下面的代码可以实现在使用MFC进行开发时使用XP风格的打开文件对话框:</p>
<pre>
CString OpenFileXPStyle()
{
	// TODO: Add your control notification handler code here
	char name[4096];
	name[0] = '';
	OPENFILENAME ofn;
	memset( &amp;ofn, 0, sizeof(ofn));
	ofn.lStructSize = sizeof(ofn);
	ofn.hwndOwner = m_hWnd;
	ofn.lpstrFilter = "文本文件(*.txt)*.txt";
	ofn.nFilterIndex = 1;
	ofn.lpstrFile = name;
	ofn.nMaxFile = 4096;
	ofn.lpstrTitle = "选择文件";
	ofn.Flags = OFN_CREATEPROMPT|OFN_ENABLESIZING|OFN_HIDEREADONLY;
	CString file_path;
	if( ::GetOpenFileName( &amp;ofn ) )
	{
		file_path = ofn.lpstrFile; //打开的文件名
	}
	return file_path;
}
</pre>
<p>CFileDialog内部其实也是调用GetOpenFileName来打开文件对话框.OPENFILENAME的第一个字段指定该结构的大小.Windows的GetOpenFileName函数通过OPENFILENAME的大小来判断是使用新风格还是使用老风格.<br />
在2000和XP中,OPENFILENAME结构新增加了数据成员.如果用的是老版本的windows头文件,编译的时候便是原来的结构大小,如果是win2000以后的头文件,使用的结构的大小就变大了.而MFC不知道新的结构成员的存在,所以MFC程序编译时,size还是老的大小,打开的还是老式的对话框.</p>


<b>Read more:</b><ul><li><a href='http://pkill.info/b/169/mfc%e4%b8%ad%e5%b1%8f%e8%94%bdesc%e5%92%8c%e5%9b%9e%e8%bd%a6%e5%85%b3%e9%97%ad%e5%af%b9%e8%af%9d%e6%a1%86/' rel='bookmark' title='Permanent Link: MFC中屏蔽ESC和回车关闭对话框'>MFC中屏蔽ESC和回车关闭对话框</a></li>
<li><a href='http://pkill.info/b/132/mfc%e7%a8%8b%e5%ba%8f%e4%bd%bf%e7%94%a8%e7%b3%bb%e7%bb%9f%e9%a3%8e%e6%a0%bc%e7%95%8c%e9%9d%a2/' rel='bookmark' title='Permanent Link: MFC程序使用系统风格界面'>MFC程序使用系统风格界面</a></li>
<li><a href='http://pkill.info/b/167/%e4%bd%bf%e7%94%a8%e9%80%89%e6%8b%a9%e6%96%87%e4%bb%b6%e5%a4%b9%e5%af%b9%e8%af%9d%e6%a1%86/' rel='bookmark' title='Permanent Link: 使用选择文件夹对话框'>使用选择文件夹对话框</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://pkill.info/b/168/%e4%bd%bf%e7%94%a8xp%e9%a3%8e%e6%a0%bc%e7%9a%84%e6%89%93%e5%bc%80%e6%96%87%e4%bb%b6%e5%af%b9%e8%af%9d%e6%a1%86/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用选择文件夹对话框</title>
		<link>http://pkill.info/b/167/%e4%bd%bf%e7%94%a8%e9%80%89%e6%8b%a9%e6%96%87%e4%bb%b6%e5%a4%b9%e5%af%b9%e8%af%9d%e6%a1%86/</link>
		<comments>http://pkill.info/b/167/%e4%bd%bf%e7%94%a8%e9%80%89%e6%8b%a9%e6%96%87%e4%bb%b6%e5%a4%b9%e5%af%b9%e8%af%9d%e6%a1%86/#comments</comments>
		<pubDate>Sat, 04 Jul 2009 11:00:57 +0000</pubDate>
		<dc:creator>Zhiqiang Ma</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[mfc]]></category>

		<guid isPermaLink="false">http://zhiqiangma.info/%e4%bd%bf%e7%94%a8%e9%80%89%e6%8b%a9%e6%96%87%e4%bb%b6%e5%a4%b9%e5%af%b9%e8%af%9d%e6%a1%86/</guid>
		<description><![CDATA[VC下使用选择文件夹对话框,返回文件夹的地址: CString BrowseDirectory( LPCTSTR title ) { char dir[MAX_PATH]; dir[0]='0'; BROWSEINFO bi; bi.hwndOwner=NULL; bi.pidlRoot=NULL; bi.pszDisplayName=dir; bi.lpszTitle=title; bi.ulFlags=0; bi.lpfn=NULL; bi.lParam=NULL; bi.iImage=NULL; SHGetPathFromIDList(SHBrowseForFolder(&#38;bi),dir); return dir; } Read more:MFC中屏蔽ESC和回车关闭对话框 使用XP风格的打开文件对话框 MFC SetTimer示例一个

<b>Read more:</b><ul><li><a href='http://pkill.info/b/169/mfc%e4%b8%ad%e5%b1%8f%e8%94%bdesc%e5%92%8c%e5%9b%9e%e8%bd%a6%e5%85%b3%e9%97%ad%e5%af%b9%e8%af%9d%e6%a1%86/' rel='bookmark' title='Permanent Link: MFC中屏蔽ESC和回车关闭对话框'>MFC中屏蔽ESC和回车关闭对话框</a></li>
<li><a href='http://pkill.info/b/168/%e4%bd%bf%e7%94%a8xp%e9%a3%8e%e6%a0%bc%e7%9a%84%e6%89%93%e5%bc%80%e6%96%87%e4%bb%b6%e5%af%b9%e8%af%9d%e6%a1%86/' rel='bookmark' title='Permanent Link: 使用XP风格的打开文件对话框'>使用XP风格的打开文件对话框</a></li>
<li><a href='http://pkill.info/b/166/mfc-settimer%e7%a4%ba%e4%be%8b%e4%b8%80%e4%b8%aa/' rel='bookmark' title='Permanent Link: MFC SetTimer示例一个'>MFC SetTimer示例一个</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>VC下使用选择文件夹对话框,返回文件夹的地址:</p>
<pre>
CString BrowseDirectory( LPCTSTR title )
{
    char dir[MAX_PATH];
    dir[0]='0';

    BROWSEINFO bi;
    bi.hwndOwner=NULL;
    bi.pidlRoot=NULL;
    bi.pszDisplayName=dir;
    bi.lpszTitle=title;
    bi.ulFlags=0;
    bi.lpfn=NULL;
    bi.lParam=NULL;
    bi.iImage=NULL;

    SHGetPathFromIDList(SHBrowseForFolder(&amp;bi),dir);
    return dir;
}
</pre>


<b>Read more:</b><ul><li><a href='http://pkill.info/b/169/mfc%e4%b8%ad%e5%b1%8f%e8%94%bdesc%e5%92%8c%e5%9b%9e%e8%bd%a6%e5%85%b3%e9%97%ad%e5%af%b9%e8%af%9d%e6%a1%86/' rel='bookmark' title='Permanent Link: MFC中屏蔽ESC和回车关闭对话框'>MFC中屏蔽ESC和回车关闭对话框</a></li>
<li><a href='http://pkill.info/b/168/%e4%bd%bf%e7%94%a8xp%e9%a3%8e%e6%a0%bc%e7%9a%84%e6%89%93%e5%bc%80%e6%96%87%e4%bb%b6%e5%af%b9%e8%af%9d%e6%a1%86/' rel='bookmark' title='Permanent Link: 使用XP风格的打开文件对话框'>使用XP风格的打开文件对话框</a></li>
<li><a href='http://pkill.info/b/166/mfc-settimer%e7%a4%ba%e4%be%8b%e4%b8%80%e4%b8%aa/' rel='bookmark' title='Permanent Link: MFC SetTimer示例一个'>MFC SetTimer示例一个</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://pkill.info/b/167/%e4%bd%bf%e7%94%a8%e9%80%89%e6%8b%a9%e6%96%87%e4%bb%b6%e5%a4%b9%e5%af%b9%e8%af%9d%e6%a1%86/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MFC SetTimer示例一个</title>
		<link>http://pkill.info/b/166/mfc-settimer%e7%a4%ba%e4%be%8b%e4%b8%80%e4%b8%aa/</link>
		<comments>http://pkill.info/b/166/mfc-settimer%e7%a4%ba%e4%be%8b%e4%b8%80%e4%b8%aa/#comments</comments>
		<pubDate>Sat, 04 Jul 2009 09:50:23 +0000</pubDate>
		<dc:creator>Zhiqiang Ma</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[mfc]]></category>

		<guid isPermaLink="false">http://zhiqiangma.info/mfc-settimer%e7%a4%ba%e4%be%8b%e4%b8%80%e4%b8%aa/</guid>
		<description><![CDATA[1) in OnInitDialog(): UINT time_result = SetTimer(1, 50, 0); 2) process in OnTimer(UINT nIDEvent); 3) in OnDestroy(); KillTimer(1); Read more:MFC中屏蔽ESC和回车关闭对话框 使用XP风格的打开文件对话框 使用选择文件夹对话框

<b>Read more:</b><ul><li><a href='http://pkill.info/b/169/mfc%e4%b8%ad%e5%b1%8f%e8%94%bdesc%e5%92%8c%e5%9b%9e%e8%bd%a6%e5%85%b3%e9%97%ad%e5%af%b9%e8%af%9d%e6%a1%86/' rel='bookmark' title='Permanent Link: MFC中屏蔽ESC和回车关闭对话框'>MFC中屏蔽ESC和回车关闭对话框</a></li>
<li><a href='http://pkill.info/b/168/%e4%bd%bf%e7%94%a8xp%e9%a3%8e%e6%a0%bc%e7%9a%84%e6%89%93%e5%bc%80%e6%96%87%e4%bb%b6%e5%af%b9%e8%af%9d%e6%a1%86/' rel='bookmark' title='Permanent Link: 使用XP风格的打开文件对话框'>使用XP风格的打开文件对话框</a></li>
<li><a href='http://pkill.info/b/167/%e4%bd%bf%e7%94%a8%e9%80%89%e6%8b%a9%e6%96%87%e4%bb%b6%e5%a4%b9%e5%af%b9%e8%af%9d%e6%a1%86/' rel='bookmark' title='Permanent Link: 使用选择文件夹对话框'>使用选择文件夹对话框</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<pre>1)
in OnInitDialog():

UINT time_result = SetTimer(1, 50, 0);

2)
process in OnTimer(UINT nIDEvent);

3)
in OnDestroy();

KillTimer(1);</pre>


<b>Read more:</b><ul><li><a href='http://pkill.info/b/169/mfc%e4%b8%ad%e5%b1%8f%e8%94%bdesc%e5%92%8c%e5%9b%9e%e8%bd%a6%e5%85%b3%e9%97%ad%e5%af%b9%e8%af%9d%e6%a1%86/' rel='bookmark' title='Permanent Link: MFC中屏蔽ESC和回车关闭对话框'>MFC中屏蔽ESC和回车关闭对话框</a></li>
<li><a href='http://pkill.info/b/168/%e4%bd%bf%e7%94%a8xp%e9%a3%8e%e6%a0%bc%e7%9a%84%e6%89%93%e5%bc%80%e6%96%87%e4%bb%b6%e5%af%b9%e8%af%9d%e6%a1%86/' rel='bookmark' title='Permanent Link: 使用XP风格的打开文件对话框'>使用XP风格的打开文件对话框</a></li>
<li><a href='http://pkill.info/b/167/%e4%bd%bf%e7%94%a8%e9%80%89%e6%8b%a9%e6%96%87%e4%bb%b6%e5%a4%b9%e5%af%b9%e8%af%9d%e6%a1%86/' rel='bookmark' title='Permanent Link: 使用选择文件夹对话框'>使用选择文件夹对话框</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://pkill.info/b/166/mfc-settimer%e7%a4%ba%e4%be%8b%e4%b8%80%e4%b8%aa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>一个非常优秀的MFC Grid控件</title>
		<link>http://pkill.info/b/165/%e4%b8%80%e4%b8%aa%e9%9d%9e%e5%b8%b8%e4%bc%98%e7%a7%80%e7%9a%84mfc-grid%e6%8e%a7%e4%bb%b6/</link>
		<comments>http://pkill.info/b/165/%e4%b8%80%e4%b8%aa%e9%9d%9e%e5%b8%b8%e4%bc%98%e7%a7%80%e7%9a%84mfc-grid%e6%8e%a7%e4%bb%b6/#comments</comments>
		<pubDate>Sat, 04 Jul 2009 08:43:04 +0000</pubDate>
		<dc:creator>Zhiqiang Ma</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[mfc]]></category>

		<guid isPermaLink="false">http://zhiqiangma.info/%e4%b8%80%e4%b8%aa%e9%9d%9e%e5%b8%b8%e4%bc%98%e7%a7%80%e7%9a%84mfc-grid%e6%8e%a7%e4%bb%b6/</guid>
		<description><![CDATA[使用MFC进行开发,界面编程占用了很大部分的时间.像Grid这样的控件,MFC并没有提供支持. 发现了这样一个GridCtrl控件,非常好用: http://www.codeproject.com/KB/miscctrl/gridctrl.aspx 要开发类似的程序时可以采用. Read more:MFC中屏蔽ESC和回车关闭对话框 使用XP风格的打开文件对话框 使用选择文件夹对话框

<b>Read more:</b><ul><li><a href='http://pkill.info/b/169/mfc%e4%b8%ad%e5%b1%8f%e8%94%bdesc%e5%92%8c%e5%9b%9e%e8%bd%a6%e5%85%b3%e9%97%ad%e5%af%b9%e8%af%9d%e6%a1%86/' rel='bookmark' title='Permanent Link: MFC中屏蔽ESC和回车关闭对话框'>MFC中屏蔽ESC和回车关闭对话框</a></li>
<li><a href='http://pkill.info/b/168/%e4%bd%bf%e7%94%a8xp%e9%a3%8e%e6%a0%bc%e7%9a%84%e6%89%93%e5%bc%80%e6%96%87%e4%bb%b6%e5%af%b9%e8%af%9d%e6%a1%86/' rel='bookmark' title='Permanent Link: 使用XP风格的打开文件对话框'>使用XP风格的打开文件对话框</a></li>
<li><a href='http://pkill.info/b/167/%e4%bd%bf%e7%94%a8%e9%80%89%e6%8b%a9%e6%96%87%e4%bb%b6%e5%a4%b9%e5%af%b9%e8%af%9d%e6%a1%86/' rel='bookmark' title='Permanent Link: 使用选择文件夹对话框'>使用选择文件夹对话框</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>使用MFC进行开发,界面编程占用了很大部分的时间.像Grid这样的控件,MFC并没有提供支持.</p>
<p>发现了这样一个GridCtrl控件,非常好用:</p>
<p><a href="http://www.codeproject.com/KB/miscctrl/gridctrl.aspx">http://www.codeproject.com/KB/miscctrl/gridctrl.aspx</a></p>
<p>要开发类似的程序时可以采用.</p>


<b>Read more:</b><ul><li><a href='http://pkill.info/b/169/mfc%e4%b8%ad%e5%b1%8f%e8%94%bdesc%e5%92%8c%e5%9b%9e%e8%bd%a6%e5%85%b3%e9%97%ad%e5%af%b9%e8%af%9d%e6%a1%86/' rel='bookmark' title='Permanent Link: MFC中屏蔽ESC和回车关闭对话框'>MFC中屏蔽ESC和回车关闭对话框</a></li>
<li><a href='http://pkill.info/b/168/%e4%bd%bf%e7%94%a8xp%e9%a3%8e%e6%a0%bc%e7%9a%84%e6%89%93%e5%bc%80%e6%96%87%e4%bb%b6%e5%af%b9%e8%af%9d%e6%a1%86/' rel='bookmark' title='Permanent Link: 使用XP风格的打开文件对话框'>使用XP风格的打开文件对话框</a></li>
<li><a href='http://pkill.info/b/167/%e4%bd%bf%e7%94%a8%e9%80%89%e6%8b%a9%e6%96%87%e4%bb%b6%e5%a4%b9%e5%af%b9%e8%af%9d%e6%a1%86/' rel='bookmark' title='Permanent Link: 使用选择文件夹对话框'>使用选择文件夹对话框</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://pkill.info/b/165/%e4%b8%80%e4%b8%aa%e9%9d%9e%e5%b8%b8%e4%bc%98%e7%a7%80%e7%9a%84mfc-grid%e6%8e%a7%e4%bb%b6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
