onPaint()
{ CRect rc;
GetUpdateRect(&rc);
TRACE("%d %d ",rc.Width(),rc.Height());
CPaintDC dc(this);
}
OnEraseBkgnd()
{
CBrush brush(RGB(red,100,200));
CRect rcClient(0,0,0,0);
GetClientRect(&rcClient);
pDC->FillRect(rcClient, &brush);
return 1;
}OnBnClickedButton1()
{
red = 0;
InvalidateRect(CRect(0,0,100,100));
InvalidateRect(CRect(120,120,200,200));
InvalidateRect(CRect(220,220,260,260));
}本来我的认知里面,多个invalidaterect后,应该会有个合并无效区域的地方,cpaintdc里面只有一个m_ps->rcPaint
那么合并也应该都合到这里来,看getupdaterect也是这个理论,但是为什么实际画出来的时候,界面上出现了3个框,不应该
重绘的就是这个rcpaint区域么,那应该就一个框才对?求懂的人指教
{ CRect rc;
GetUpdateRect(&rc);
TRACE("%d %d ",rc.Width(),rc.Height());
CPaintDC dc(this);
}
OnEraseBkgnd()
{
CBrush brush(RGB(red,100,200));
CRect rcClient(0,0,0,0);
GetClientRect(&rcClient);
pDC->FillRect(rcClient, &brush);
return 1;
}OnBnClickedButton1()
{
red = 0;
InvalidateRect(CRect(0,0,100,100));
InvalidateRect(CRect(120,120,200,200));
InvalidateRect(CRect(220,220,260,260));
}本来我的认知里面,多个invalidaterect后,应该会有个合并无效区域的地方,cpaintdc里面只有一个m_ps->rcPaint
那么合并也应该都合到这里来,看getupdaterect也是这个理论,但是为什么实际画出来的时候,界面上出现了3个框,不应该
重绘的就是这个rcpaint区域么,那应该就一个框才对?求懂的人指教
解决方案 »
- 好久没回来看看了,散分
- “普通显卡技术是建立在WINDOWS技术平台上的,所以是8bit输出信号”这句话正确吗
- 图片勾画的问题
- 请高手帮忙,error LNK2001到底哪里出问题
- 禁用所有DirectDraw和Direct3D加速程序后,在播放视频和音频的时候会带来什么问题???
- TCP VS SOCKET
- 500分求一程序!!用全局勾子得到某程序中控件的句柄。
- 消息的问题(有分)
- 讨论.net平台上的软件开发,请教高手
- 请问如何将CString转化为int型?简单的问题
- cmd.exe进程加入Job后,后续子进程conime.exe无法创建,GetLastError() = 5
- VC树控件如何得到选中节点的名称
看看实现他发送一个包含无效区域参数的请求更新消息你调用3次 无非就是发送3次消息 在队列里能否合并我也不太清楚了 不过我觉得不太可能
TRACE("%d %d ",rc.Width(),rc.Height());
onpaint里这个打出来的是260 260,而且只有一次invalidaterect看不了实现代码
也看不到相关代码实现,看google的那套代码,合并就是简单的获取到一个最大的矩形
用mfc的难道就这么悲剧么,想看啥都没代码
看来高手是不屑与回答了,悲剧