<?xml version="1.0" encoding="utf-8"?><rss version="2.0">
<channel>
<title><![CDATA[菜鸟老师教你windows编程]]></title>
<link>http://blog.pfan.cn/caoxin</link>
<description>编程爱好者博客</description>
<language>zh-cn</language>
			<item>
		<title><![CDATA[人性的悲哀]]></title>
		<link>http://blog.pfan.cn/caoxin/2974.html</link>
		<description><![CDATA[刚看了篇攻击老潭的贴子,感觉象吃了个苍蝇.

&nbsp;&nbsp;批评别人是容易的,特别是已经用完了人家.

&nbsp;&nbsp;批评别人是容易的,特别是可以抬高自己.
 
&nbsp;&nbsp;批评别人是容易的,特别是用不同的标准.

&nbsp;&nbsp;批评别人是容易的,特别是当自己也无知.

&nbsp;&nbsp;批评别人是容易的,特别是正好闲着无聊.

&nbsp;&nbsp;批评别人是容易的,特别是自己也做不了.

&nbsp;&nbsp;批评别人是容易的,特别是自己喜欢忘本.

&nbsp;&nbsp;批评别人是容易的,特别是些丑陋的国人.

&nbsp;&nbsp;我也会攻击,因为我也是人,更因为我是中国人.

&nbsp;&nbsp;人性如此,无药可医,只希望有些克制才好~`````]]></description>
		<author><![CDATA[caoxin]]></author>
		<pubDate>2005-07-19 23:54:00</pubDate>
		</item>
				<item>
		<title><![CDATA[逆反链表]]></title>
		<link>http://blog.pfan.cn/caoxin/2518.html</link>
		<description><![CDATA[#include&lt;iostream.h&gt;

typedef struct tagNODE
{
&nbsp;&nbsp;&nbsp;&nbsp;int a;
&nbsp;&nbsp;&nbsp;&nbsp;tagNODE *next;
}NODE;


void printNODE(NODE *head)
{
&nbsp;&nbsp;&nbsp;&nbsp;if(head!=NULL)
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;for(NODE *q = head; q!=NULL; q = q-&gt;next)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;q-&gt;a&lt;&lt;&quot; &quot;;
&nbsp;&nbsp;cout&lt;&lt;endl;
&nbsp;&nbsp;&nbsp;&nbsp;}
}

void main()
{
&nbsp;&nbsp;&nbsp;&nbsp;NODE *q,*phead,*p;
&nbsp;&nbsp;&nbsp;&nbsp;phead = NULL;

&nbsp;&nbsp;&nbsp;&nbsp;for(int i=9; i&gt;=0; i--)
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p = new(NODE);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p-&gt;a = i;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p-&gt;next = phead;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;phead = p;
&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;printNODE(phead);

&nbsp;&nbsp;&nbsp;&nbsp;q = phead;
&nbsp;&nbsp;&nbsp;&nbsp;p = q-&gt;next;
&nbsp;&nbsp;&nbsp;&nbsp;while(p != NULL)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/]]></description>
		<author><![CDATA[caoxin]]></author>
		<pubDate>2005-07-04 14:11:00</pubDate>
		</item>
				<item>
		<title><![CDATA[还是个屏保]]></title>
		<link>http://blog.pfan.cn/caoxin/2517.html</link>
		<description><![CDATA[//Win32 Application:

#include&lt;windows.h&gt;
#include&lt;math.h&gt;
#include&lt;stdlib.h&gt;

LRESULT CALLBACK WinProc(HWND,UINT,WPARAM,LPARAM);

int cxClient,cyClient;
HPEN hpen;

#define TWO_PI (2*3.1415926)

WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpcmdLine,int nShowCmd)
{
&nbsp;&nbsp;&nbsp;&nbsp;HWND hwnd;
&nbsp;&nbsp;&nbsp;&nbsp;MSG msg;
&nbsp;&nbsp;&nbsp;&nbsp;WNDCLASS wc;
&nbsp;&nbsp;&nbsp;&nbsp;TCHAR szAppname[] = TEXT(&quot;随机圆&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;HBRUSH hbrush;
&nbsp;&nbsp;&nbsp;&nbsp;LOGPEN logpen;
&nbsp;&nbsp;&nbsp;&nbsp;PAINTSTRUCT ps;
&nbsp;&nbsp;&nbsp;&nbsp;HDC hdc;
&nbsp;&nbsp;&nbsp;&nbsp;double radius,i;


&nbsp;&nbsp;&nbsp;&nbsp;POINT pt;
&nbsp;&nbsp;&nbsp;&nbsp;pt.x = 1;
&nbsp;&nbsp;&nbsp;&nbsp;pt.y =2;

&nbsp;&nbsp;&nbsp;&nbsp;wc.cbClsExtra = 0;
&nbsp;&nbsp;&nbsp;&nbsp;wc.cbWndExtra = 0;
&nbsp;&nbsp;&nbsp;&nbsp;wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
&nbsp;&nbsp;&nbsp;&nbsp;wc.hCursor = LoadCursor(NULL,IDC_ARRO]]></description>
		<author><![CDATA[caoxin]]></author>
		<pubDate>2005-07-04 14:10:00</pubDate>
		</item>
				<item>
		<title><![CDATA[一个屏保]]></title>
		<link>http://blog.pfan.cn/caoxin/2516.html</link>
		<description><![CDATA[//Win32 Application

#include&lt;windows.h&gt;
#include&lt;stdlib.h&gt;

LRESULT CALLBACK WinProc(HWND,UINT,WPARAM,LPARAM);

void RandRECT(HWND,int,int);

int cxClient,cyClient;

WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpcmdLine,int nShowCmd)
{
&nbsp;&nbsp;&nbsp;&nbsp;HWND hwnd;
&nbsp;&nbsp;&nbsp;&nbsp;MSG msg;
&nbsp;&nbsp;&nbsp;&nbsp;WNDCLASS wc;
&nbsp;&nbsp;&nbsp;&nbsp;TCHAR szAppname[] = TEXT(&quot;随机矩形&quot;);

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wc.cbClsExtra = 0;
&nbsp;&nbsp;&nbsp;&nbsp;wc.cbWndExtra = 0;
&nbsp;&nbsp;&nbsp;&nbsp;wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
&nbsp;&nbsp;&nbsp;&nbsp;wc.hCursor = LoadCursor(NULL,IDC_ARROW);
&nbsp;&nbsp;&nbsp;&nbsp;wc.hIcon = LoadIcon(NULL,IDI_APPLICATION);
&nbsp;&nbsp;&nbsp;&nbsp;wc.hInstance = hInstance;
&nbsp;&nbsp;&nbsp;&nbsp;wc.lpfnWndProc = WinProc;
&nbsp;&nbsp;&nbsp;&nbsp;wc.lpszClassName = szAppname;
&nbsp;&nbsp;&nbsp;&nbsp;wc.lpszMenuName = NULL;
&nbsp;&nbsp;&nbsp;&nbsp;wc]]></description>
		<author><![CDATA[caoxin]]></author>
		<pubDate>2005-07-04 14:09:00</pubDate>
		</item>
				<item>
		<title><![CDATA[第二讲 消息机制]]></title>
		<link>http://blog.pfan.cn/caoxin/2509.html</link>
		<description><![CDATA[各位，久违.

&nbsp;&nbsp;让我们开始.

&nbsp;&nbsp;可曾在邮局寄过邮包? 可曾给相好递过纸条? 都干过?! 太棒了,弟真乃学习Windows程序的不二好胚.请看下图:(至少我认为是图)

&nbsp;&nbsp;&nbsp;----------------------------------------------------------------------
&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;系统消息队列&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|
&nbsp;&nbsp;&nbsp;----------------------------------------------------------------------
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;↓&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;↓&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;↓]]></description>
		<author><![CDATA[caoxin]]></author>
		<pubDate>2005-07-04 00:15:00</pubDate>
		</item>
				<item>
		<title><![CDATA[[原创]我的C++乱码]]></title>
		<link>http://blog.pfan.cn/caoxin/1942.html</link>
		<description><![CDATA[#include&lt;iostream.h&gt;
void main(int i,int n) 
{i==1?cout&lt;&lt;&quot;请输入行数:&quot;&lt;&lt;endl,cin&gt;&gt;n,cout&lt;&lt;&quot;*&quot;:(i&gt;(2*n*n))?
main(1,n):!(i%(2*n))?cout&lt;&lt;endl:(i&lt;2*n||i&gt;2*n*n-2*n)?
cout&lt;&lt;&quot;*&quot;:!((i-1)%(2*n))||!((i+1)%(2*n))?cout&lt;&lt;&quot;*&quot;:cout&lt;&lt;&quot; &quot;,main(++i,n);}

这是个打印空心正方形的代码.]]></description>
		<author><![CDATA[caoxin]]></author>
		<pubDate>2005-06-19 19:52:00</pubDate>
		</item>
				<item>
		<title><![CDATA[让你的代码会唱歌]]></title>
		<link>http://blog.pfan.cn/caoxin/1941.html</link>
		<description><![CDATA[看到一个好玩的API，把它加入你的代码，就能在程序运行时有背景音乐了！
编译之前先： project -&gt; setting -&gt; link -&gt; 在object/moduol中加入 winmm.lib
//vc6.0&nbsp;&nbsp;dos consoul. 
//音乐只能是wav格式。

#include&lt;windows.h&gt;
#include&lt;iostream.h&gt;

int main()
{
cout&lt;&lt;&quot;来段音乐！\n&quot;;
PlaySound(&quot;要听的.wav的全路径名(包括后缀)&quot;，NULL,SND_FILENAME|SND_ASYNC);

//这里加干正经活的代码。 

if(cin.get()!=''q'');
return 0;
}]]></description>
		<author><![CDATA[caoxin]]></author>
		<pubDate>2005-06-19 19:49:00</pubDate>
		</item>
				<item>
		<title><![CDATA[动态显示系统时间的汇编代码]]></title>
		<link>http://blog.pfan.cn/caoxin/1940.html</link>
		<description><![CDATA[以下代码用MASM5.0编译,在WinXP,Win98的dos下运行正常.
其中,运行中按上,下,左,右,pageup,pagedown键分别可调整年月日时分秒的显示
属性. caps lock键控制分割符&quot;\&quot;显示属性,Esc键退出.

assume cs:code
data segment
dw 0,0
data ends
stack segment
db 128 dup(0)
stack ends

code segment
begin:&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;mov bx,0
&nbsp;&nbsp;&nbsp;&nbsp;mov ax,0b800h
&nbsp;&nbsp;&nbsp;&nbsp;mov es,ax
&nbsp;&nbsp;&nbsp;&nbsp;mov ax,data
&nbsp;&nbsp;&nbsp;&nbsp;mov ds,ax
&nbsp;&nbsp;&nbsp;&nbsp;mov ax,stack
&nbsp;&nbsp;&nbsp;&nbsp;mov ss,ax
&nbsp;&nbsp;&nbsp;&nbsp;mov sp,128
&nbsp;&nbsp;&nbsp;&nbsp;push es
&nbsp;&nbsp;&nbsp;&nbsp;mov ax,0
&nbsp;&nbsp;&nbsp;&nbsp;mov es,ax
&nbsp;&nbsp;&nbsp;&nbsp;push es:[9*4]
&nbsp;&nbsp;&nbsp;&nbsp;pop ds:[0]
&nbsp;&nbsp;&nbsp;&nbsp;push es:[9*4+2]
&nbsp;&nbsp;&nbsp;&nbsp;pop ds:[2]
&nbsp;&nbsp;&nbsp;&nbsp;mov ax,offset int9
&nbsp;&nbsp;&nbsp;&nbsp;cli
&nbsp;&nbsp;&nbsp;&nbsp;mov es:[9*4],ax
&nbsp;&nbsp;&nbsp;&nbsp;mov es:[9*4+2],cs
&nbsp;&nbsp;&nbsp;&nbsp;sti
&nbsp;&nbsp;&nbsp;&nbsp;pop es]]></description>
		<author><![CDATA[caoxin]]></author>
		<pubDate>2005-06-19 19:48:00</pubDate>
		</item>
				<item>
		<title><![CDATA[[原创]汇编版张雨生《大海》]]></title>
		<link>http://blog.pfan.cn/caoxin/1939.html</link>
		<description><![CDATA[自学两个月汇编了，用MASM5.0编译。

data segment
freq dw 196,220
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dw 262,262,262,262,262,220,196
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dw 262,262,262,262,294,262,220,262
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dw 294,294,294,294,294,262,220
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dw 294,294,294,294,330,294,330,392
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dw 440,440,392,440,392,330
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dw 294,294,330,294,262,220,196,220
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dw 262,262,262,262,262,220
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dw 262,196,220
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dw 440,440,392,440,524,440
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dw 392,330,294,262,220,196,220
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dw 262,262,262,262,294,262
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dw 262,330,392
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dw 440,440,440,440,524,440
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dw 392,392,392,440,392,330,294
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dw 262,262,262,262,294
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dw 330,330,294
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dw 262,]]></description>
		<author><![CDATA[caoxin]]></author>
		<pubDate>2005-06-19 19:47:00</pubDate>
		</item>
				<item>
		<title><![CDATA[随机画Bezier曲线的程序]]></title>
		<link>http://blog.pfan.cn/caoxin/1938.html</link>
		<description><![CDATA[工程目录是:Win32App 
vc6.0

#include&lt;windows.h&gt;
#include&lt;stdlib.h&gt;
#include&lt;time.h&gt;
#define NUM 10


LRESULT CALLBACK Winproc(HWND,UINT,WPARAM,LPARAM);

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstanc,LPSTR lpCmdLine,int nShowCmd)
{
&nbsp;&nbsp;&nbsp;&nbsp;MSG msg;
&nbsp;&nbsp;&nbsp;&nbsp;static TCHAR szClassName[] = TEXT(&quot;::Bezier样条计算公式由法国雷诺汽车公司的工程师Pierm Bezier于六十年代提出&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;HWND hwnd;
&nbsp;&nbsp;&nbsp;&nbsp;WNDCLASS wc;
&nbsp;&nbsp;&nbsp;&nbsp;wc.cbClsExtra =0;
&nbsp;&nbsp;&nbsp;&nbsp;wc.cbWndExtra =0;
&nbsp;&nbsp;&nbsp;&nbsp;wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
&nbsp;&nbsp;&nbsp;&nbsp;wc.hCursor = LoadCursor(NULL,IDC_ARROW);
&nbsp;&nbsp;&nbsp;&nbsp;wc.hIcon = LoadIcon(NULL,IDI_APPLICATION);
&nbsp;&nbsp;&nbsp;&nbsp;wc.hInstance = hInstance;
&nbsp;&nbsp;&nbsp;&nbsp;wc.lpfnWndProc = Winproc;
&nbsp;&nbsp;&nbsp;&nbsp;wc.lpszClassName = szClassName;
&nbsp;&nbsp;&nbsp;&nbsp;wc.lpszMenuName = NULL;
&nbsp;&nbsp;&nbs]]></description>
		<author><![CDATA[caoxin]]></author>
		<pubDate>2005-06-19 19:45:00</pubDate>
		</item>
				<item>
		<title><![CDATA[第一讲: 匈牙利命名法]]></title>
		<link>http://blog.pfan.cn/caoxin/1917.html</link>
		<description><![CDATA[在开始授课前我想介绍下学习Windows编程的基本基础:

1.从用户角度你应该熟悉Windwos系统.
2.了解C语言.
3.你的机器上应该装有VC6.0或更高版本的编译器.

　至此,不再假设你已经具有任何图形用户界面的编程经验.

&nbsp;&nbsp;Let's begin!

&nbsp;&nbsp;绝大多数Windows程序使用一种叫做[color=FF0000]匈牙利命名法[/color]的命名约定.这不是强制的,但对我们广大菜鸟来说,还是有必要了解下为妙.

&nbsp;&nbsp;之所以叫做匈牙利命名法是为了纪念匈牙利籍的 Microsoft 程序员 Charles Simonyi, Simonyi这个姓我查了一下,是盗卖圣经的意思,真是闻所未闻. 
 
&nbsp;&nbsp;简单来讲: 

&nbsp;&nbsp;变量名以一个或者多个小写字母打头,这些字母表示变量的数据类型.
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;比如: iCmdShow 表示 int型的变量 iCmdShow.

&nbsp;&nbsp;函数名用一个大写字母打头.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;比如: ShowWindow()

&nbsp;&nbsp;类型名全部用大写字母.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;比如: UINT uA 表示定义无符号整型变量uA.

&nbsp;&nbsp;宏全部用大写字母或全部用小写. 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;比如: RGB(r,g,b) //该宏要求三个参数分别代表红绿蓝, 然后将它门组合为一个无符号长整型.
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;比如: min(int,int)//该宏返回两者的小者.

&nbsp;&nbsp;在命名结构体变量时,用结构体的类型名的小写或缩写作为变量]]></description>
		<author><![CDATA[caoxin]]></author>
		<pubDate>2005-06-18 15:39:00</pubDate>
		</item>
				<item>
		<title><![CDATA[基本课程安排]]></title>
		<link>http://blog.pfan.cn/caoxin/1863.html</link>
		<description><![CDATA[第一讲: 匈牙利命名法

第二讲: 消息机制

第三讲: 第一个windows程序

第四讲: 待定

开课时间: 半月后, 这段时间我要准备教案.

参考资料: &lt;&lt;Windows程序设计&gt;&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;有这书的电子版最好,没的问有的要.
其实,我也在学, 如果你学的比我好比我快,那你来教我! 真理面前不分大小.


[/color]]]></description>
		<author><![CDATA[caoxin]]></author>
		<pubDate>2005-06-15 22:33:00</pubDate>
		</item>
		</channel>
</rss>