控件关联自定义控制变量后所带来的有关问题
控件关联自定义控制变量后所带来的问题
在模态对话框上添加了几个静态文本, 为了使静态文本的背景透明, 从CStatic派生了一个类,在该类里重写了OnPaint()函数,代码如下
现在的问题是, 只要我为静态文本控件添加MyStatic类型控制变量,当我移动该模态对话框时,这些控件就不见了,同时模态对话框原来的位置不会刷新,还留着模态对话框的“影子”,请看下图:
希望大神们给予指教,不胜感激。
------解决方案--------------------
你 不用 //CPaintDC dc(this);
用 CDC *pDC = GetDC(); 是 错误的。
重绘窗口 必须 用 CPaintDC dc(this) ,他会保证 窗口 从 无效 变为 有效。否则 Paint 信息 将 不断 产生。
CDC *pDC = GetDC() 这个DC 是 窗口 有效 后 使用的。
在模态对话框上添加了几个静态文本, 为了使静态文本的背景透明, 从CStatic派生了一个类,在该类里重写了OnPaint()函数,代码如下
void MyStatic::OnPaint()
{
//CPaintDC dc(this); // device context for painting
CDC *pDC = GetDC();
int oldMode=pDC->SetBkMode(TRANSPARENT);
CString strTitle;
GetWindowText(strTitle);
CFont ft;
ft.CreatePointFont(100,"宋体",NULL);
pDC->SelectObject(&ft);
pDC->TextOut(0,0,strTitle);
pDC->SetBkMode(oldMode);
ReleaseDC(pDC);
// TODO: Add your message handler code here
// Do not call CStatic::OnPaint() for painting messages
}
现在的问题是, 只要我为静态文本控件添加MyStatic类型控制变量,当我移动该模态对话框时,这些控件就不见了,同时模态对话框原来的位置不会刷新,还留着模态对话框的“影子”,请看下图:
希望大神们给予指教,不胜感激。
------解决方案--------------------
你 不用 //CPaintDC dc(this);
用 CDC *pDC = GetDC(); 是 错误的。
重绘窗口 必须 用 CPaintDC dc(this) ,他会保证 窗口 从 无效 变为 有效。否则 Paint 信息 将 不断 产生。
CDC *pDC = GetDC() 这个DC 是 窗口 有效 后 使用的。