|
设置静态文本控件背景透明
下面通过实例来实现将静态文本控件的背景透明。 例如: 程序设计的具体操作步骤如下。 (1)创建一个基于对话框的应用程序。 (2)向对话框中添加一个静态文本控件,并将其索引修改为IDC_STATIC1,将显示的文本改为“背景透明”。 (3)在对话框初始化函数中设置静态文本的字体,代码如下: BOOL CTransparenceDlg::OnInitDialog() { ……//此处代码省略 font.CreatePointFont(400,"宋体"); //创建字体 m_Static.SetFont(&font); //设置字体 m_Static.UpdateWindow(); //刷新窗口 return TRUE; } (4)添加WM_CTLCOLOR消息的处理函数OnCtlColor,在该函数中将静态文本控件的背景设置为透明。为了更直观的显示控件的背景是透明的,将对话框的背景颜色设置为白色,代码如下: HBRUSH CTransparenceDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); CBrush m_brush (RGB(255,255,255)); //创建画刷 CRect m_rect; GetClientRect(m_rect); //获取对话框的客户区域 pDC->SelectObject(&m_brush); pDC->FillRect(m_rect,&m_brush); //填充背景 if(nCtlColor == CTLCOLOR_STATIC)//判断是否为静态文本控件 { pDC->SetBkMode(TRANSPARENT); //设置控件透明 } return m_brush; } (5)运行程序,效果如图1所示。 ![]() 注意:设置静态文本控件的背景透明时需要选择控件的Simple属性。
|