MFC设置透明但不穿透窗体

打印 上一主题 下一主题

主题 1025|帖子 1025|积分 3075

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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 控件不能相应点击事件的解决办法
更改通知属性


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

南飓风

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表