// 建立一個與目前視窗相容的 HDC hdcBmp
HDC hdc = GetDC(hwndApp);
HDC hdcBmp = CreateCompatibleDC(hdc); // our new HDC
// 建立一個新的 bitmap 大小剛好與顯示的影像高寬一樣
HBITMAP hbm;
hbm = CreateCompatibleBitmap(hdc, cx, cy);
ReleaseDC(hwndApp, hdc); // hdc 已經不需要, 先 Released 以免忘記!
// 設定目前 [背景DC] 的圖形, 為 [新的 Bitmap],
// 等一下我們要利用 [背景DC] 在 Bitmap 上畫圖
BITMAP bm; // our new bitmap
HBITMAP hbmOld; // old
GetObject(hbm, sizeof(bm), &bm); // 取得 bitmap hbm 資料 -> bm
// 設定背景顏色: 如 虛線或刷子的背景顏色
SetBkColor(hdcBmp, RGB(255,255,255));
// 建立繪圖輔助物件
HPEN hpen, hpenOld;
HBRUSH hbrush, hbrushOld;
hpen = CreatePen(PS_SOLID, 10, RGB(0, 255, 0)); // 建立綠色的筆
hbrush = CreateSolidBrush(RGB(255, 255, 255));// 建立筆刷物件
// 設定 [背景 DC] 新的圖,新的筆和刷子
hbmOld = (HBITMAP)SelectObject(hdcBmp, hbm);
hpenOld = (HPEN)SelectObject(hdcBmp, hpen);
hbrushOld = (HBRUSH)SelectObject(hdcBmp, hbrush);
// 畫出測試幾何圖形
Rectangle(hdcBmp, 0,0, cx,cy); // 方形
MoveToEx(hdcBmp,StartX,StartY,NULL); // 直線
LineTo(hdcBmp, EndX, EndY);
// 用完繪圖輔助物件, 先刪除以免忘記
DeleteObject(SelectObject(hdcBmp, hpenOld));
DeleteObject(SelectObject(hdcBmp, hbrushOld));
DeleteObject(SelectObject(hdcBmp, hbmOld));
沒有留言:
張貼留言