读书人

基于对话框CDC画图被遮盖有关问题

发布时间: 2013-07-08 14:13:00 作者: rapoo

基于对话框,CDC画图被遮盖问题,求指点
在OnInitDialog里,使用CBitmapButton 关联了一个按钮ID,并设置了图片
然后在OnPaint函数里 我需要在这个按钮图片上再继续画一些我需要的东西


CDC MemDC;
MemDC.CreateCompatibleDC(pDC); //pDC
MemDC.SelectObject(&bmp); // 这个bmp是我需要画的资源

pDC->BitBlt(x,y,16,16,&MemDC, xS, yS, SRCCOPY);
//如果X,Y坐标不在按钮所在范围,可以正常画出我需要的的东西
//但是我需要在CBitmapButton 的背景图上画 被遮盖了


请问这个问题如何解决?网上有的说因为先画的会被后画的覆盖
是不是真的是这个问题?
[解决办法]
从 CBitmapButton 派生一个类 在这个类的WM_PATIN中绘制
[解决办法]
你这样就想你说的会遮盖的,你贴图不要在Onpain或者Ondraw里面,在onerasebkgnd里面进行绘制位图,并在按钮按下去的时候调用Invalidate进行重绘
[解决办法]
CBitmapButton 创建一个派生类,编写OnDraw
[解决办法]
在OnPaint中先调用CBitmapButton::OnPaint();
然后再做自己的绘制

读书人网 >VC/MFC

热点推荐