我有一个窗口,基于用户输入我必须在同一个窗口上显示相同的位图。 假设用户给出1作为输入。所以我必须只显示一次图像,因为它覆盖整个窗口 如果用户输入2作为输入,那么我必须在同一窗口上相互显示相同的图像nxt。窗口的一半将被加载图像,下一半将再次加载相同的图像。
这是我试过的
RECT rect;
HDC hDC = GetDC(hwnd);
hMemDC = CreateCompatibleDC(hDC);
::SelectObject(hMemDC, bmp);
GetClientRect(hwnd, &rect);
SetStretchBltMode(hDC,HALFTONE);
// when input is one
StretchBlt(hDC, rect.left, rect.top, rect.right, rect.bottom, hMemDC, 0,
0,bmpdata.bmWidth, bmpdata.bmHeight,SRCCOPY);
// when input is 2 I use StretchBlt twice
StretchBlt(hDC, rect.left, rect.top, rect.right/2-1, rect.bottom/2-1, hMemDC, 0,
0,bmpdata.bmWidth, bmpdata.bmHeight,SRCCOPY);
StretchBlt(hDC, rect.right/2, rect.bottom/2, rect.right, rect.bottom, hMemDC, 0,
0,bmpdata.bmWidth, bmpdata.bmHeight,SRCCOPY);
它只显示屏幕的一半。第二个Stretchblt没有任何影响