1.初始化中
//设置窗体为透明,要先把窗体边框属性改为无
LONG para = GetWindowLong(this->GetSafeHwnd(), GWL_EXSTYLE);
para |= WS_EX_LAYERED;
SetWindowLong(this->GetSafeHwnd(), GWL_EXSTYLE, para);
//设置窗体透明色为RGB(255,0,0)
SetLayeredWindowAttributes(RGB(255, 0, 0), 255, LWA_COLORKEY);
2.
在OnPaint事件中绘制窗体背景,背景色为透明色
CPaintDC dc(this);
RECT rect;
GetClientRect(&rect);
dc.FillSolidRect(&rect, RGB(255, 0, 0));
3.在OnCtlColor事件中设置控件
if (nCtlColor == CTLCOLOR_STATIC)背景
{
pDC->SetBkColor(RGB(255, 0, 0));//背景色为绿色
//pDC->SetBkMode(TRANSPARENT);//设置背景透明
pDC->SetTextColor(RGB(255, 0, 255));//文字为红色
pDC->SelectObject(&m_font);//文字为15号字体,华文行楷
return m_brush;
}
4.MFC 中static 控件不能相应点击事件的解决办法
更改通知属性