1、在windows程序中,經(jīng)常會用到這種位標(biāo)志標(biāo)識符,如:style = CS_HREDRAW | CS_VREDRAW ; CS_HREDRAW = 0x0001 ; CS_VREDRAW = 0x0002; 2、窗口過程函數(shù):是一個回調(diào)函數(shù)。回調(diào)函數(shù)不是由該函數(shù)的實現(xiàn)方直接調(diào)用,而是在特定的事件或條件發(fā)生時,由另一方調(diào)用的,用于對該事件或條件進(jìn)行響應(yīng)。 3、回調(diào)函數(shù)的使用方法: 1)定義一個回調(diào)函數(shù)。 2)定義方,在初始化時,將回調(diào)函數(shù)的指針傳注冊給調(diào)用者。 3) 當(dāng)事件或條件發(fā)生時,調(diào)用者使用指針回調(diào)該函數(shù)。 4、_cdecl 和 _stdcall __cdecl 是C DECLaration的縮寫(declaration,聲明),表示C語言默認(rèn)的函數(shù)調(diào)用方法:所有參數(shù)從右到左依次入棧,這些參數(shù)由調(diào)用者清除,稱為手動清棧。被調(diào)用函數(shù)不會要求調(diào)用者傳遞多少參數(shù),調(diào)用者傳遞過多或者過少的參數(shù),甚至完全不同的參數(shù)都不會產(chǎn)生編譯階段的錯誤。 _stdcall 是StandardCall的縮寫,是C++的標(biāo)準(zhǔn)調(diào)用方式:所有參數(shù)從右到左依次入棧,如果是調(diào)用類成員的話,最后一個入棧的是this指針。這些堆棧中的參數(shù)由被調(diào)用的函數(shù)在返回后清除,使用的指令是 retnX,X表示參數(shù)占用的字節(jié)數(shù),CPU在ret之后自動彈出X個字節(jié)的堆??臻g。稱為自動清棧。函數(shù)在編譯的時候就必須確定參數(shù)個數(shù),并且調(diào)用者必須嚴(yán)格的控制參數(shù)的生成,不能多,不能少,否則返回后會出錯。 int WINAPI WinMain( 【說明】 #define WINAPI __stdcall typedef CHAR *LPSTR, *PSTR; |
|