1. 程式人生 > >學習windows編程 day3 之 設置當前的背景顏色

學習windows編程 day3 之 設置當前的背景顏色

gpo cal ack window ren switch def etc lpar

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 之 設置當前的背景顏色