首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

Windows API 入門教學 (一):基礎概念與程式架構

     編輯:關於C++

從 DOS 到 Windows 程式設計

傳統 DOS 程式:文字介面、16 色、順序執行。
Windows 程式:圖形介面、事件驅動、多工作業、豐富 API。

核心概念:事件驅動與訊息機制

  • 使用者動作 (點擊、按鍵、移動滑鼠) → 系統產生訊息
  • 訊息放入應用程式 訊息佇列
  • 應用程式 訊息迴圈 取出訊息 → 分派至對應視窗程序處理

基本資料類型與控制代碼

Windows 大量使用 控制代碼:32 位元無符號整數,唯一識別系統物件。

型別代表物件備註
HWND視窗最常用
HINSTANCE應用程式實例載入資源、註冊類別需用
HDC裝置內容GDI 繪圖核心
HMENU選單
HBRUSH / HPEN / HFONT刷子/畫筆/字型GDI 物件
HICON / HCURSOR圖示/游標
HBITMAP位圖
HFILE檔案較舊 API 使用

訊息結構


typedef struct tagMSG {
    HWND   hwnd;      // 接收訊息的視窗
    UINT   message;   // 訊息識別碼
    WPARAM wParam;    // 32 位元附加參數
    LPARAM lParam;    // 32 位元附加參數
    DWORD  time;      // 訊息產生時間
    POINT  pt;        // 滑鼠座標
} MSG;

訊息分類前綴

前綴類別範例
WM_視窗訊息WM_PAINT, WM_DESTROY, WM_MOUSEMOVE
BM_按鈕控制項BM_CLICK, BM_SETCHECK
CB_下拉方塊CB_ADDSTRING, CB_GETCURSEL
EM_編輯控制項EM_SETSEL, EM_REPLACESEL
LB_清單方塊LB_ADDSTRING, LB_GETSEL
SBM_捲軸控制項SBM_SETPOS, SBM_GETRANGE

常用視窗訊息

訊息觸發條件
WM_CREATECreateWindow 成功,視窗建立完成
WM_DESTROY視窗銷毀
WM_PAINT用戶區需重繪
WM_CLOSE使用者點擊關閉鈕
WM_QUITPostQuitMessage 呼叫,結束訊息迴圈
WM_LBUTTONDOWN滑鼠左鍵按下
WM_LBUTTONUP滑鼠左鍵釋放
WM_KEYDOWN按下非系統鍵
WM_CHAR字元輸入 (經 TranslateMessage)
WM_MOUSEMOVE滑鼠移動
WM_SIZE視窗大小改變
WM_COMMAND選單/控制項/快速鍵命令

WinMain 三大組成

  1. 函數宣告:標準原型
  2. 初始化:視窗類別定義→註冊→建立視窗→顯示視窗
  3. 訊息迴圈:GetMessage → TranslateMessage → DispatchMessage

基本訊息迴圈


MSG msg;
while (GetMessage(&msg, NULL, 0, 0)) {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
}
return msg.wParam;

下一章預告

詳細講解 視窗程序 (WndProc) 撰寫與第一個完整 Windows API 程式實作。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved