我建了一个SDI工程,在OnCreate中创建我的Static控件
int CMyViewTestView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
m_static.Create("Static",
WS_CHILD|WS_VISIBLE,//|WS_BORDER,
CRect(5,600,80,620),
this,
IDC_STATIC1
);
return 0;
}
重载
HBRUSH CMyViewTestView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
//HBRUSH hbr = CView::OnCtlColor(pDC, pWnd, nCtlColor);
HBRUSH hbr=CreateSolidBrush(RGB(0,255,0));//hbr为你要设的背景色,
switch(pWnd->GetDlgCtrlID())
{
case IDC_STATIC1:
pDC->SetBkMode(TRANSPARENT);
//pDC->SetBkColor(RGB(0,255,0));
pDC->SetTextColor(RGB(255,0,0));
//return (HBRUSH)GetStockObject(HOLLOW_BRUSH);
default:
break;
} return hbr;
}
但是运行后控件还是原来的底色,没有变成透明。但是代码试过了再Dialog下是可以的。请高手指点一下。谢谢!
int CMyViewTestView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
m_static.Create("Static",
WS_CHILD|WS_VISIBLE,//|WS_BORDER,
CRect(5,600,80,620),
this,
IDC_STATIC1
);
return 0;
}
重载
HBRUSH CMyViewTestView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
//HBRUSH hbr = CView::OnCtlColor(pDC, pWnd, nCtlColor);
HBRUSH hbr=CreateSolidBrush(RGB(0,255,0));//hbr为你要设的背景色,
switch(pWnd->GetDlgCtrlID())
{
case IDC_STATIC1:
pDC->SetBkMode(TRANSPARENT);
//pDC->SetBkColor(RGB(0,255,0));
pDC->SetTextColor(RGB(255,0,0));
//return (HBRUSH)GetStockObject(HOLLOW_BRUSH);
default:
break;
} return hbr;
}
但是运行后控件还是原来的底色,没有变成透明。但是代码试过了再Dialog下是可以的。请高手指点一下。谢谢!
解决方案 »
- 大数运算器源程序,VC++6.0实现,求打包
- VS在重写虚函数时参数都被/* */注释了,怎样取消或快速删除/**/
- 请教:VC生成Excel柱状图
- 关于OpenGL,望高手指教
- 在编辑框里如何实现从键盘中输入数字串(123426),但在编辑框里显示的是星号(******)
- 请问哪有msdn2002下载,谢谢!
- 从二进制文件中读数据的问题?
- 怎样在程序中把画刷设定为Windows当前设置的样式?
- 用ATL开发的组件,用regsvr32注册返回0x00000485错误,(找不到运行此应用程序所需的某个库文件),有哪位高手碰到过着问题?
- 字符串问题.
- 乱码问题?
- 如何获得Listview控件被选中行,某一列的坐标????
OnEraseBkgnd(CDC* pDC)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CBrush brush(你的颜色);
CRect rect;
pDC->GetClipBox(rect);
GetClientRect(rect);
pDC->FillRect(rect,&brush);
return true;
//return CView::OnEraseBkgnd(pDC);
}
如果还不行,就把hbr放到类里,OnCreate的时候HBRUSH hbr=CreateSolidBrush(RGB(0,255,0));
在Onctlcolor里返回hbr。