例子(c++項(xiàng)目中的MessageBox): #include <Windows.h> int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { MessageBox(NULL,"兩種屬性的消息框","標(biāo)題", MB_ICONEXCLAMATION|MB_OKCANCEL ); /*MessageBox(NULL, "hello world!","信息提示",NULL); MessageBox(NULL, "hello world!","信息提示",MB_OK); MessageBox(NULL, "hello world!","信息提示",MB_OKCANCEL); MessageBox(NULL, "hello world!","信息提示",MB_RETRYCANCEL); MessageBox(NULL, "hello world!","信息提示",MB_YESNO); MessageBox(NULL, "hello world!","信息提示",MB_YESNOCANCEL); MessageBox(NULL, "hello world!","信息提示",MB_ICONEXCLAMATION); MessageBox(NULL, "hello world!","信息提示",MB_ICONWARNING); MessageBox(NULL, "hello world!","信息提示",MB_ICONASTERISK); MessageBox(NULL, "hello world!","信息提示",MB_ICONQUESTION);*/ } 每個(gè)創(chuàng)建的c++中Win32項(xiàng)目中都有一個(gè)WinMain函數(shù),WinMain是控制臺(tái)C++程序中main函數(shù)的Windows等同體,并且是Windows程序的初始進(jìn)入點(diǎn)。 WinMain函數(shù)的調(diào)用: int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) 我們來(lái)了解一下這些參數(shù): HINSTANCE hInstance。第一個(gè)參數(shù)標(biāo)識(shí)被調(diào)用的程序的實(shí)例,因?yàn)橐粋€(gè)程序可運(yùn)行許多次。Windows架構(gòu)是這樣的:為了保護(hù)內(nèi)存,程序代碼實(shí)際運(yùn)行于一個(gè)單一的內(nèi)存空間中,而程序數(shù)據(jù)和變量?jī)?chǔ)存于各自的內(nèi)存空間中。hInstance參數(shù)告訴程序要運(yùn)行的是哪個(gè)實(shí)例。我們會(huì)在第一個(gè)實(shí)例中初始化程序(后面會(huì)介紹)。但如果程序要在Windows中運(yùn)行多次,則通常的做法是簡(jiǎn)單地停止新實(shí)例的運(yùn)行(也在后面介紹)。 HINSTANCE hPrevInstance。第二個(gè)參數(shù)標(biāo)識(shí)程序的前一個(gè)實(shí)例,而且與第一個(gè)參數(shù)有關(guān)。如果hPrevInstance為NULL,那么這就是程序的第一個(gè)實(shí)例。在初始化當(dāng)前實(shí)例之前,可檢查hPrevInstance的值。這對(duì)游戲編程至關(guān)重要!我們絕不會(huì)希望我們的游戲在同一時(shí)間有兩個(gè)實(shí)例在運(yùn)行。 LPTSTR lpCmdLine。第三個(gè)參數(shù)是包含傳遞給程序的命令行參數(shù)的字符串,用于告訴程序使用某些選項(xiàng),例如可使用debug標(biāo)識(shí)將程序的執(zhí)行轉(zhuǎn)儲(chǔ)到文本文件中。通常Windows程序使用設(shè)置(INI)文件保存運(yùn)行時(shí)的程序參數(shù)。不過(guò)在許多時(shí)候我們將使用程序參數(shù),例如一個(gè)圖像查看程序經(jīng)常傳遞將要顯示的圖片文件名。 int nCmdShow。最后一個(gè)參數(shù)指定程序窗口的顯示方式。 |
|
來(lái)自: 每天學(xué)一點(diǎn)7 > 《c 》