case ID_BACKGROUND_BITMAP1:
flag = 1;
InvalidateRect(hWnd, NULL, TRUE);
break;
case ID_BACKGROUND_BITMAP2:
flag = 2;
InvalidateRect(hWnd, NULL, TRUE);
break;
case ID_BACKGROUND_BITMAP3:
flag = 3;
InvalidateRect(hWnd, NULL, TRUE);
break;
以上是三個單擊按鈕事件,通過單擊不同的按鈕將flag置為不同的值,然後用invalidaterect觸發wm_paint重繪表單。
case WM_PAINT:
PAINTSTRUCT ps;
HDC hdc;
HBITMAP hbmp;
if (flag == 1)
{
hdc = BeginPaint(hWnd, &ps);
GetClientRect(hWnd, &rt);
{
hbmp = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_BITMAP1));
HDC dcmem = CreateCompatibleDC(hdc);
SelectObject(dcmem, hbmp);
BitBlt(hdc, 0, 0, rt.right, rt.bottom, dcmem, 0, 0, SRCCOPY);
}
EndPaint(hWnd, &ps);
}
else if (flag == 2)
{
hdc = BeginPaint(hWnd, &ps);
GetClientRect(hWnd, &rt);
{
hbmp = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_BITMAP2));
HDC dcmem = CreateCompatibleDC(hdc);
SelectObject(dcmem, hbmp);
BitBlt(hdc, 0, 0, rt.right, rt.bottom, dcmem, 0, 0, SRCCOPY);
}
EndPaint(hWnd, &ps);
}
else if (flag == 3)
{
hdc = BeginPaint(hWnd, &ps);
GetClientRect(hWnd, &rt);
{
hbmp = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_BITMAP3));
HDC dcmem = CreateCompatibleDC(hdc);
SelectObject(dcmem, hbmp);
BitBlt(hdc, 0, 0, rt.right, rt.bottom, dcmem, 0, 0, SRCCOPY);
}
EndPaint(hWnd, &ps);
}
break;
-----記錄點點滴滴