- /*
- 1:獲得一個私有的顯示DC
- 程序想在其窗口的客房區進行各種描繪操作需要先獲得一個私有的顯示DC。爲了獲得這
- 種類型的DC,窗口類在註冊的時候需要設置風格的成員變量設置成CS_OWNDC。註冊之後
- 程序可以通過GetDC方法獲取一個標識着私有DC的句柄。
- */
- #include <windows.h> // required for all Windows-based applications
- #include <stdio.h> // C run-time header for i/o
- #include <string.h> // C run-time header for strtok_s
- #include "dc.h" // specific to this program
- // Function prototypes.
- BOOL InitApplication(HINSTANCE);
- long FAR PASCAL MainWndProc(HWND, UINT, UINT, LONG);
- // Global variables
- HINSTANCE hinst; // handle to current instance
- HDC hdc; // display device context handle
- BOOL InitApplication(HINSTANCE hinstance)
- {
- WNDCLASS wc;
- // Fill in the window class structure with parameters
- // describing the main window.
- //指定風格爲CS_OWNDC///////////////////////////////////////////
- wc.style = CS_OWNDC; // Private-DC constant
- //////////////////////////////////////////////////////////////
- wc.lpfnWndProc = (WNDPROC) MainWndProc;
- wc.cbClsExtra = 0;
- wc.cbWndExtra = 0;
- wc.hInstance = hinstance;
- wc.hIcon = LoadIcon((HINSTANCE) NULL,
- MAKEINTRESOURCE(IDI_APPLICATION));
- wc.hCursor = LoadCursor((HINSTANCE) NULL,
- MAKEINTRESOURCE(IDC_ARROW));
- wc.hbrBackground = GetStockObject(WHITE_BRUSH);
- wc.lpszMenuName = "GenericMenu";
- wc.lpszClassName = "GenericWClass";
- // Register the window class and return the resulting code.
- return RegisterClass(&wc);
- }
- LRESULT APIENTRY MainWndProc(
- HWND hwnd, // window handle
- UINT message, // type of message
- WPARAM wParam, // additional information
- LPARAM lParam) // additional information
- {
- PAINTSTRUCT ps; // paint structure
- // Retrieve a handle identifying the private DC.
- ///////////////////////////////////////////////////////////////////////
- hdc = GetDC(hwnd);
- ///////////////////////////////////////////////////////////////////////
- switch (message)
- {
- case WM_PAINT:
- BeginPaint(hwnd, &ps);
- // Draw and paint using private DC.
獲得一個私有的顯示DC
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.