关于网友提出的“ 拖动界面到屏幕外刷新的问题”问题疑问,本网通过在网上对“ 拖动界面到屏幕外刷新的问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 拖动界面到屏幕外刷新的问题
描述:本帖最后由 lvge5574 于 2013-07-09 18:24:53 编辑
static局部刷新
如题,我把mfc程序界面左右拖动到屏幕外,所有控件都刷没了,但是button什么的可点。
上下拖动到屏幕外时,会自动返回,且框体顶部贴着屏幕顶部,
但是拖动时没有到屏幕外的部分,给刷没了。
表现为,上半部分的控件能看见,但下半部分却没了。
最小化后却全刷好了。。。。
求教,怎么检测?
解决方案1: void CLaunchDlg::RefreshControl(UINT uCtllD)
{
CRect rc;
GetDlgItem(uCtllD)->GetWindowRect(&rc);
ScreenToClient(&rc); //坐标系转换
RedrawWindow(rc);
}
解决方案2: {
CClientDC dc(this); -》 CPaintDC dc(this);
CDC memDC;
memDC.CreateCompatibleDC(&dc);
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP1);
CBitmap *pOldBmp;
pOldBmp = memDC.SelectObject(&bmp);
BITMAP bm;
bmp.GetBitmap(&bm);
dc.BitBlt(0, 0, bm.bmWidth, bm.bmHeight, &memDC, 0, 0, SRCCOPY);
memDC.SelectObject(pOldBmp);
bmp.DeleteObject();
// CDialogEx::OnPaint();
}
以上介绍了“ 拖动界面到屏幕外刷新的问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2223484.html