BeginPaint 函式 (winuser.h)
BeginPaint 函式會準備用於繪製的指定視窗,並填入 PAINTSTRUCT 結構,其中包含繪製的相關信息。
語法
HDC BeginPaint(
[in] HWND hWnd,
[out] LPPAINTSTRUCT lpPaint
);
參數
[in] hWnd
要重繪之視窗的句柄。
[out] lpPaint
將接收繪製資訊的 PAINTSTRUCT 結構的指標。
傳回值
如果函式成功,則傳回值是指定視窗顯示裝置內容的句柄。
如果函式失敗,傳回值為 NULL,表示沒有可用的顯示裝置內容。
備註
BeginPaint 函式會自動設定裝置內容的裁剪區域,以排除更新區域以外的任何區域。 更新區域是由 InvalidateRect 或 InvalidateRgn 函式所設定,以及在重設大小、移動、建立、捲動或任何其他會影響工作區的作業之後由系統設定。 如果更新區域標示為清除, BeginPaint 會將 WM_ERASEBKGND 訊息傳送至視窗。
應用程式不應該呼叫 BeginPaint ,但回應 WM_PAINT 訊息除外。 對 BeginPaint 的每個呼叫都必須有 EndPaint 函式的對應呼叫。
如果插入號位於要繪製的區域, BeginPaint 會自動隱藏插入號以防止清除。
如果窗口的類別具有背景筆刷, BeginPaint 會使用該筆刷在傳回之前清除更新區域的背景。
DPI 虛擬化
此 API 不會參與 DPI 虛擬化。 傳回的輸出一律以實體圖元為根據。範例
如需範例,請參閱 工作區中的繪圖。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | winuser.h (包括 Windows.h) |
程式庫 | User32.lib |
Dll | User32.dll |
API 集合 | ext-ms-win-ntuser-draw-l1-1-0 (於 Windows 8) |