我自己继承了CStatic类,主要想改变文字讲颜色 字体大小====
想让背景透明 ,于是把重载了CStaticEx::OnEraseBkgnd(CDC* pDC)
{
CClientDC clDC(GetParent());
CRect rect;
CRect rect1;
GetClientRect(rect);
GetWindowRect(rect1);
GetParent()->ScreenToClient(rect1);
if (m_dcBk.m_hDC == NULL)
{
m_dcBk.CreateCompatibleDC(&clDC);
m_bmpBk.CreateCompatibleBitmap(&clDC, rect.Width(), rect.Height());
m_pbmpOldBk = m_dcBk.SelectObject(&m_bmpBk);
m_dcBk.BitBlt(0, 0, rect.Width(), rect.Height(), &clDC, rect1.left, rect1.top, SRCCOPY);
} // if pDC->BitBlt(0, 0, rect.Width(), rect.Height(), &m_dcBk, 0, 0, SRCCOPY);
return TRUE; //CStatic::OnEraseBkgnd(pDC);
}
这代码是从Cbuttonst上copy来的 显示效果也很正常
但是,,如果程序打开的时候已经覆盖了个任务管理器窗口在上面的时候CStaticEx窗口背景都变成任务管理器窗口内容了(残留影响) 请问这是怎么回事?
想让背景透明 ,于是把重载了CStaticEx::OnEraseBkgnd(CDC* pDC)
{
CClientDC clDC(GetParent());
CRect rect;
CRect rect1;
GetClientRect(rect);
GetWindowRect(rect1);
GetParent()->ScreenToClient(rect1);
if (m_dcBk.m_hDC == NULL)
{
m_dcBk.CreateCompatibleDC(&clDC);
m_bmpBk.CreateCompatibleBitmap(&clDC, rect.Width(), rect.Height());
m_pbmpOldBk = m_dcBk.SelectObject(&m_bmpBk);
m_dcBk.BitBlt(0, 0, rect.Width(), rect.Height(), &clDC, rect1.left, rect1.top, SRCCOPY);
} // if pDC->BitBlt(0, 0, rect.Width(), rect.Height(), &m_dcBk, 0, 0, SRCCOPY);
return TRUE; //CStatic::OnEraseBkgnd(pDC);
}
这代码是从Cbuttonst上copy来的 显示效果也很正常
但是,,如果程序打开的时候已经覆盖了个任务管理器窗口在上面的时候CStaticEx窗口背景都变成任务管理器窗口内容了(残留影响) 请问这是怎么回事?
解决方案 »
- 有关一个基于对话框的类似表格数据录入及显示的小程序的若干问题
- NT操作系统的问题!
- 请教高手,opengl 使用gluPerspective产生变形问题
- 怎样实现消息的传递?
- ##请问如何Hook某一个函数##
- 大家请看连接oracle的语句有何错误?
- 问一个小问题,IE临时文件夹中文件的访问,关注有分
- 怎样在formview中禁止垂直的滚动条啊
- 请问:DWORD_PTR在vc中是怎样定义的?在那个头文件定义的?
- 关于CRichEditCtrl问题,请大家帮帮忙啊!!
- 大虾指点,急!!!!!!!
- 在树型控件中: 请问 TVN_SELCHANGEING 与 TVN_SELCHANGED 有什么区别?
{
pDC->SetTextColor (m_clrText);
if (m_clrTextBkgnd == (COLORREF) -1)
pDC->SetBkColor (m_clrBkgnd);
else
pDC->SetBkColor (m_clrTextBkgnd);
return (m_brBkgnd); CDC* dc = GetDC();
CRect rect;
GetClientRect(rect);//获取客户区的大小
rect.InflateRect(1,1,1,1);//将客户区域增大一个像素
CBrush brush (RGB(200,0,0)); //创建画刷
dc->FrameRect(rect,&brush);//绘制边框
// return NULL;
}
OnCtlColor和OnDrawItem只能画部分控件