![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Welcome to Vista Forums we are your forum to discuss Windows Vista x64 and x86 systems. Whether you need help or just want to post an idea you have on Vista, this is the forum for you.
br>
|
|
|||||||
![]() |
|
|
Thread Tools | Display Modes |
|
|
#1 | ||
|
Guest
Posts: n/a
|
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? |
||
|
|
|
|