孫鑫VC++講座筆記

字號:

孫鑫VC++講座筆記
    -(1)Windows程序內(nèi)部運行機制
    1,windows程序設(shè)計是種事件驅(qū)動方式的程序設(shè)計,主要基于消息的。當用戶需要完成某種功能時,需要調(diào)用OS某種支持,然后OS將用戶的需要
    包裝成消息,并投入到消息隊列中,最后應用程序從消息隊列中取走消息并進行響應。
    2,消息結(jié)構(gòu):
    typedef struct tagMSG { // msg
    HWND hwnd; //接收消息的窗口句柄。和哪個窗口相關(guān)聯(lián)。
    UINT message; //消息標識。消息本身是什么。
    WPARAM wParam; //消息的附加信息。具體取決于消息本身。
    LPARAM lParam;
    DWORD time; //消息投遞時間。
    POINT pt; //消息投遞時,光標在屏幕上的位置。
    } MSG;
    3,消息隊列:
    每個應用程序OS都為它建立一個消息隊列,消息隊列是個先進先出的緩沖區(qū),其中每個元素都是一個消息,OS將生成的每個消息按先后順序放
    進消息隊列中,應用程序總是取走當前消息隊列中的第一條消息,應用程序取走消息后便知道用戶的操作和程序的狀態(tài),然后對其處理即消息
    響應,消息響應通過編碼實現(xiàn)。
    4,使用VC編程除了良好的C基礎(chǔ)外還需要掌握兩方面:
    一,消息本身。不同消息所代表的用戶操作和應用程序的狀態(tài)。
    二,對于某個特定的消息來說,要讓OS執(zhí)行某個特定的功能去響應消息。
    5,Window程序入口:
    int WINAPI WinMain(
    HINSTANCE hInstance, // 當前事例句柄。
    HINSTANCE hPrevInstance, // 先前事例句柄。
    LPSTR lpCmdLine, // 命令行指針
    int nCmdShow // (窗口)顯示的狀態(tài)
    );
    說明:WinMain函數(shù)是Windows程序入口點函數(shù),由OS調(diào)用,當OS啟動應用程序的時候,winmain函數(shù)的參數(shù)由OS傳遞的。
    6,創(chuàng)建一個完整的窗口需要經(jīng)過下面四個操作步驟:
    一,設(shè)計一個窗口類;如:WNDCLASS wndcls;
    二,注冊窗口類; 如:RegisterClass(&wndcls);
    三,創(chuàng)建窗口; 如:CreateWindow(),CreateWindowEX();
    四,顯示及更新窗口。如:ShowWindow(),UpdateWindow();
    說明:創(chuàng)建窗口的時候一定要基于已經(jīng)注冊的窗口類.