win32 消息-界面

windows時刻捕獲用戶的輸入,將其轉化爲消息,消息是個結構體:

Typedef struct tagMSG{

   HWND    hWnd;

   UINT    message;

   WPARAM    wParam;

   lPARAM    lParam;

   DWORD    time;

   POINT    pt;

   }MSG;

   此消息記錄windows系統的消息信息,包括:句柄、消息ID標識、消息附加信息、放入隊列的時間、當時鼠標的位置。

   消息類型包括:WM_CREATE(生成窗口)、WM_INITDIALOG(初始化和修改)、WM_COMMAND(具體消息、通知)、WM_QUIT(應用程序結束)、WM_LBUTTONDOWN(按下鼠標左鍵)等等。。。

   WinMain() 程序入口函數用來創建該窗口並進入消息循環,獲取消息後將它們傳遞給DlgProc()函數處理。處理過程中,提取MSG數據結構中的參數,判斷是哪種消息,做何處理,併發送消息給窗口。(SendMessage()、PostMessage())。

   代碼:

   //窗口過程函數聲明

   LRESULT CALLBACK WndPrco(HWND hDlg , UINT uMSG ,

       WPARAM wParam , LPARAM lParam);

   //程序入口函數

   int WINAPI WinMain(HINSTANCE hinsCurrent , HINSTANCE hinstPrevious ,

       LPSTR lpszCmdLine , int nCmdShow)

   {

       DialogBox(hinsCurrent , MAKEINTRESOURCE(IDD_DIALOG) , NULL ,

           (DLGPROC)DlgProc);  //根據對話框資源創建一個主窗口

       return 0;

   }

   LRESULT CALLBACK DlgProc(HWND hDlgMain , UINT uMSG , WPARAM wParam ,

       LPARAM lParam)

   {

    switch(uMSG)

{

case WM_COMMAND:

    {

switch(LOWORD(wParam))

{

case IDCANCEL:

{

               EndDialog(hDlg , wParam);

}

       

        case IDOK:

            {

MessageBoxA(NULL , "hello" , "fuck" ,

0);

}

break;

        }

     }

case WM_KEYDOWN:

    {

SetDlgItemTextA(hDlg , IDC_EDIT1 , "helloworld");

}

}

    return 0;

 }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章