標籤:span back def 疊加 rect 地方 day 對象 ati
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){ HDC hdc; PAINTSTRUCT ps; RECT rect; static HPEN hPen, hOldPen; switch (message) { case WM_PAINT: hdc = BeginPaint(hwnd, &ps); GetClientRect(hwnd, &rect); //測試得到:虛線的間隔使用的是白色填充,而不是使用透明(畫筆的預設填充顏色是白色,可以進行修改setbkcolor) hPen = CreatePen(PS_DOT, 0.1, RGB(255, 0,0)); hOldPen = SelectObject(hdc, hPen); //設定字元,陰影畫刷,非實線畫筆背景顏色 SetBkColor(hdc, RGB(0, 255, 0)); //設定字元,陰影畫刷,非實線畫筆背景模式(透明或者不透明) //SetBkMode(hdc, OPAQUE);使用當前背景顏色,預設白色,這可以使用setbkcolor設定,用處不大 SetBkMode(hdc, TRANSPARENT);//透明,用處較大//繪圖模式(混合模式)顏色進行或運算(字型和視窗客戶區顏色疊加),也稱二元光柵操作ROP2 SetROP2(hdc, R2_NOT);//用處不大,更多查看手冊還有getrop2 MoveToEx(hdc, rect.left, rect.bottom / 2, NULL); LineTo(hdc, rect.right, rect.bottom / 2); SelectObject(hdc, hOldPen); //第一個地方進行銷毀 //DeleteObject(hOldPen); EndPaint(hwnd, &ps); break; case WM_DESTROY: //第二個地方進行銷毀對象 DeleteObject(hOldPen); PostQuitMessage(0); return 0; } return DefWindowProc(hwnd, message, wParam, lParam);}
學習windows編程 day3 之 設定當前的背景顏色