MFC设置透明但不穿透窗体

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);

在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 控件不能相应点击事件的解决办法

更改通知属性

相关推荐
阿昭L2 天前
MFC仿真
c++·mfc
怎么没有名字注册了啊2 天前
MFC_Install_Create
c++·mfc
Humbunklung2 天前
unordered_map使用MFC的CString作为键值遇到C2056和C2064错误
c++·stl·mfc
夜猫逐梦3 天前
【VC】 error MSB8041: 此项目需要 MFC 库
c++·mfc
一拳一个呆瓜5 天前
【MFC】对话框属性:Absolute Align(绝对对齐)
c++·mfc
深耕AI5 天前
MFC 图形设备接口详解:小白从入门到掌握
c++·mfc
ChindongX5 天前
CMap常用函数
mfc
一拳一个呆瓜6 天前
【MFC】对话框属性:X Pos(X位置),Y Pos(Y位置)
c++·mfc
一拳一个呆瓜6 天前
【MFC】对话框属性:Center(居中)
c++·mfc
一拳一个呆瓜7 天前
【MFC】对话框:位置属性(居中、绝对对齐、X位置Y位置)应用示例
c++·mfc