b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

BitBlt每次运行结果很诡异(2)

电脑杂谈  发布时间:2017-01-20 00:03:33  来源:网络整理

每次运行结果很诡异,好像跟窗口位置有关,很蛋疼啊,谁能帮忙看看,BitBlt到底是怎么工作的啊?拜谢了~~

WindowsWin32APIBitBlt

我后来又观察了下,截取的小块位图好像是窗口后面的背景,难道是win7的aero效果的问题?

截取的小块位图是不确定的可以是本窗口的前后。

你用另一个窗口覆盖他看看。

具体是什么原因呢?我看书上确实是可以运行出结果的。。bitbltbitblt

改成:

BitBlt(hdcClient,x,y,16,16,hdcWindow,4,4,SRCCOPY);

可能好一点,但不解决根本问题。

问题在hdcWindow是变化的

首先要固定bmp:

caseWM_PAINT:

hdcClient=BeginPaint(hwnd,&ps);

//onlyonce

if(!Done)//staticBOOL

{

Done=TRUE;

hdcWindow=GetWindowDC(hwnd);

memDC=CreateCompatibleDC(hdcWindow);//staticHDC

bmp=CreateCompatibleBitmap(hdcWindow,16,16);//staticHBITMAP

SelectObject(memDC,bmp);

BitBlt(memDC,0,0,16,16,hdcWindow,4,4,SRCCOPY);

ReleaseDC(hwnd,hdcWindow);

}

GetClientRect(hwnd,&rc);

FillRect(hdcClient,&rc,GetStockObject(WHITE_BRUSH));


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-27470-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...