请问我设定了CStatic的区域(SetWindowRgn),然后在CStatic的OnEraseBkgnd里面画背景,为什么背景会画到CStatic外面 ? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 实际上就是自定义一个CStatic,然后画背景的问题为什么限制了CStatic的区域,还能画到外面去呢 不是很明白,既然在cstatic中画背景,即使不用设SetWindowRgn只要是在你自定义的CStatic类用OnEraseBkgnd来画背景,就不会到外面去阿关外面的对话框什么事阿, 我是在自定义的CStatic类中画背景,但是就是会画到Dialog当中 代码如下BOOL CMyStatic::OnEraseBkgnd(CDC* pDC) { CDC memDC; memDC.CreateCompatibleDC(pDC); memDC.SelectClipRgn(&m_rgn,RGN_COPY); CBitmap *pOldbmp=memDC.SelectObject(&m_bmp); BITMAP bm; m_bmp.GetBitmap(&bm); pDC->BitBlt(0,0,bm.bmWidth,bm.bmHeight,&memDC,0,0,SRCCOPY); memDC.SelectObject(pOldbmp); memDC.DeleteDC(); return 0;} 没试过。加一句:pDC->SelectClipRgn(&m_rgn,RGN_COPY);可以吗? pDC->BitBlt(0,0,bm.bmWidth,bm.bmHeight,&memDC,0,0,SRCCOPY);bm??好像应该是m_rgn 嗯,嗯,楼上的说法提醒了我啊,对啊,如果这个图片的大小超过了你这个static的大小,那是不是会出去呢??你试试用m_rgn作为大小呢 --嗯,嗯,楼上的说法提醒了我啊,对啊,--如果这个图片的大小超过了你这个static的大小,那是不是会出去呢??--你试试用m_rgn作为大小呢但是我的m_rgn肯定是不规则的,传进来的宽和高,也肯定不对呀。我看过自定义button的代码,它可以设置自画,这样无论是写字还是贴图都不会画到外面 回复人: anothervip(anothervip) ( ) 没试过。加一句:pDC->SelectClipRgn(&m_rgn,RGN_COPY);可以吗?===========================同意这个 那就把m_rgn 换成 rect 再试试吧。CRect rect;CStatic.GetClientRect(rect); 请教关于windows滚动条最大长度的问题? 求助一个MFC多线程的问题 求助,VC9,程序关不掉了 初学ActiveX,怎么实现替换掉当前HTML文件里面的一段数据,给点思路 请教 有关 float格式化为CString 小数部分 截取的问题 切分窗口文字 如何在SDI界面上去掉滚动条? ★★★www.csdn.com.cn★★★已经开通~目前正在测试阶段~!! feof(FILE *)是什么意思? 有关输入法的高手请进! 请问如何在MFC中用Serialize读取一个其他程序生成的文本格式的文件? Shell_NotifyIcon NOTIFYICONDATA的问题
为什么限制了CStatic的区域,还能画到外面去呢
关外面的对话框什么事阿,
{
CDC memDC;
memDC.CreateCompatibleDC(pDC);
memDC.SelectClipRgn(&m_rgn,RGN_COPY);
CBitmap *pOldbmp=memDC.SelectObject(&m_bmp);
BITMAP bm;
m_bmp.GetBitmap(&bm);
pDC->BitBlt(0,0,bm.bmWidth,bm.bmHeight,&memDC,0,0,SRCCOPY);
memDC.SelectObject(pOldbmp);
memDC.DeleteDC();
return 0;
}
pDC->SelectClipRgn(&m_rgn,RGN_COPY);可以吗?
bm??
好像应该是
m_rgn
如果这个图片的大小超过了你这个static的大小,那是不是会出去呢??
你试试用m_rgn作为大小呢
--如果这个图片的大小超过了你这个static的大小,那是不是会出去呢??
--你试试用m_rgn作为大小呢但是我的m_rgn肯定是不规则的,传进来的宽和高,也肯定不对呀。
我看过自定义button的代码,
它可以设置自画,这样无论是写字还是贴图都不会画到外面
pDC->SelectClipRgn(&m_rgn,RGN_COPY);可以吗?
===========================
同意这个
CRect rect;
CStatic.GetClientRect(rect);