当我尝试使用以下代码将应用程序图标复制到客户区左上角时,我使用了如下代码:
然而,我总是得到这样的结果: 看起来hdcWindow获取的是它下方窗口的hdc。我无法理解我的BitBlt()调用有什么问题。
case WM_PAINT:
hdcClient = BeginPaint (hwnd, &ps) ;
hdcWindow = GetWindowDC (hwnd) ;
cxSource = GetSystemMetrics (SM_CXSIZEFRAME) + GetSystemMetrics (SM_CXSIZE) ;
cySource = GetSystemMetrics (SM_CYSIZEFRAME) + GetSystemMetrics (SM_CYCAPTION) ;
BitBlt (hdcClient, 0, 0, cxSource, cySource, hdcWindow, 0, 0, SRCCOPY) ;
ReleaseDC (hwnd, hdcWindow) ;
EndPaint (hwnd, &ps) ;
return 0 ;
......
然而,我总是得到这样的结果: 看起来hdcWindow获取的是它下方窗口的hdc。我无法理解我的BitBlt()调用有什么问题。
- 我是在Windows 7上完成的。
hwnd
。它是否是可用的客户区域? - Abhinav0, 0, SRCCOPY);
是非法的,请改用GetSystemMetrics(SM_XVIRTUALSCREEN), GetSystemMetrics(SM_YVIRTUALSCREEN), SRCCOPY);
! - Grim