Win32學習筆記 第一章 (轉)

worldblog發表於2007-12-13
Win32學習筆記 第一章 (轉)[@more@]

學習筆記

作者: 姜學哲(tosail0@163.net">netsail0@163.net)
教材: 設計(第五版)北京大學出版社
 [美]Charles Petzold 著
 北京博彥科技發展有限公司 譯  ¥:160
環境:  server + Internet Explorer 6.0 + 7.0 + Visual C++ 6.0

(圖們江程式編制小組版權所有,轉載請說明出處)
---------------------------------------------------------------------------------
第一章 開始

從第N頁的  對《windows程式設計》的評論  開始嘰嘰歪歪一大堆讚揚之詞過後,在第十頁我總於見到了main(),讓我感到無比親切!

#include

int main()
{
 printf("Hello Worldn");

 return 0;
}

緊接著就是WINDOWS版本的等價程式

1.3.2 Windows等價程式

/******************************************************
 Copyright(c) , TUMEN Programming Clan
 ()  All rights reserved.

 Filename:  HelloMsg
 Author: -Chul Kang
 ******************************************************/
#include

int WIN WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
 MessageBox(NULL, TEXT("Hello, Windows98!"), TEXT("HelloMsg"), 0);

 return 0;
}

執行上面的程式後會隨著“叮”的一聲,出現一個對話方塊。可以看到標題欄上有HelloMsg,對話方塊中央出現Hello Windows98!字樣,以及一個“大大”的‘確定’按鈕。恭喜恭喜!你的第一個WINDOWS程式已經問世了!

在標準C中我們需要stdio.h,而在WINDOWS的C中我們需要的是windows.h。

第十二頁中對程式入口點做了介紹。請先不要理會那四個長長的引數。前面說過,就當他不存在就可以了。我們要關注的是MessageBox()。

首先要解釋的是TEXT()。這是一個宏定義,也就是用define定義的。這是為了相容UNICODE字符集而做的改動。以後不管是什麼時候,您最好把字串都用TEXT()括起來,有關UNICODE您可以看第二章。

第十三頁

#define MB_OK 0x00000000L
#define MB_OKCANCEL 0x00000001L
#define MB_ABORTRETRYIGNORE 0x00000002L
#define MB_YESNOCANCEL 0x00000003L
#define MB_YESNO 0x00000004L
#define MB_RETRYCANCEL 0x00000005L

上面的是MessageBox()的第四個引數選項。想了解他們的具體含義很簡單。上面的HelloMsg程式中MessageBox()的第四個引數是零,您可以把那個零換成上面六個常量中的一個,比如:

 MessageBox(NULL, TEXT("Hello Windows98!"), TEXT("HelloMsg"), MB_OKCANCEL);

重新執行後您會發現對話方塊中多了一個'取消'按鈕。如果您使用的是英文版,兩個按鈕分別是 OK & CANCEL。您可以一個一個的試。

第十四頁

#define MB_ICONHAND 0x00000010L
#define MB_ICONQUESTION 0x00000020L
#define MB_ICONEXCLAMATION 0x00000030L
#define MB_ICONASTERISK 0x00000040L

這些都是對話方塊中的圖示選項。可以用C語言中“|”運算子與前面所提到的六個選項中的一個結合起來,比如:

 MessageBox(NULL, TEXT("Hello Windows98!"), TEXT("HelloMsg"), MB_OKCANCEL | MB_ICONHAND);

執行上面的程式後您將會看到原先的對話方塊中多出了一個紅色的圖示,那是一個表示出錯時用的“叉叉”,這個圖示我不喜歡,我比較喜歡感嘆號,所以把程式改成:


 MessageBox(NULL, TEXT("Hello Windows98!"), TEXT("HelloMsg"), MB_OKCANCEL | MB_ICONASTERISK);

執行後您可以'高興'地看到對話方塊中出現了一個白底藍字的感嘆號。

這樣以來,您是不是對MessageBox()的後三個引數有所瞭解了呢?至於第一個引數,等到第三章時再議吧。What??您還是有點迷惑?-_-#我建議您給比爾-蓋茨郵寄一個C4。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-992432/,如需轉載,請註明出處,否則將追究法律責任。

相關文章