| Subject: BitBlt bug with Aero |
| Group: microsoft.public.windows.developer.winfx.aero |
| Date: 8/5/2006 10:53:13 PM |
| From: danny.yeshurun@gmail.com |
Seems that Bitblt is not working well when Vista theme (aero) is enabled. When I try to copy a portion of the screen, the result is distorted. Note that the same result happened with Alt+Print screen in earlier Vista builds but is now solved. Are there any new bitblt flags to be used now? Following code demonstrates the problem: #include "stdafx.h" int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // TODO: Place code here. HWND wnd = ::GetDesktopWindow(); HDC hdc = ::GetDC(wnd); HDC memDC = ::CreateCompatibleDC(hdc); HBITMAP bm = ::CreateCompatibleBitmap(hdc, 1000,1000); HBITMAP oldBM = (HBITMAP)::SelectObject(memDC, bm); ::BitBlt(memDC,0,0,1000,1000, hdc,0,0, SRCCOPY); ::OpenClipboard(wnd); ::EmptyClipboard(); ::SetClipboardData(CF_BITMAP, bm); ::CloseClipboard(); ::SelectObject(memDC,oldBM); ::ReleaseDC(wnd,hdc); return 0; } After running this code, you can paste the result into mspaint for example and see the problem. Any idea? |
| Back |