24,854
社区成员
发帖
与我相关
我的任务
分享
HDC mem_dc;
SIZE screen_size;
void
screen_caption(){
HDC desk_dc = CreateDC(L"DISPLAY", 0, 0, 0);
mem_dc = CreateCompatibleDC(desk_dc);
screen_size.cx = GetDeviceCaps(desk_dc, HORZRES);
screen_size.cy = GetDeviceCaps(desk_dc, VERTRES);
HBITMAP hBmp = CreateCompatibleBitmap(desk_dc, screen_size.cx, screen_size.cy);
SelectObject(mem_dc, hBmp);
BitBlt(mem_dc, 0, 0, screen_size.cx, screen_size.cy, desk_dc, 0, 0, SRCCOPY);
}
LRESULT CALLBACK
ScreenProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) {
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
switch (message) {
case WM_CREATE:
screen_caption(hwnd);
return 0;
case WM_PAINT:
hdc = BeginPaint(hwnd, &ps);
GetClientRect(hwnd, &rect);
BitBlt(hdc, 0, 0, screen_size.cx, screen_size.cy, mem_dc, 0, 0, SRCCOPY);
EndPaint(hwnd, &ps);
return 0;
case WM_KEYDOWN:
switch (wparam) {
case VK_ESCAPE:
SendMessage(hwnd, WM_DESTROY, 0, 0);
break;
}
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd, message, wparam, lparam);
}