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

更改通知属性

相关推荐
sanqima1 天前
依赖TLS和模块状态的MFC类
c++·mfc·tls·module state
sanqima1 天前
MFC里的线程本地存储(TLS)与模块状态(Module State)
c++·mfc·tls·module state
Leo.yuan2 天前
Kafka+Flink拼凑,还是FineDataLink 5.0一体化?实时数据处理的两种思路
c++·mfc
bkspiderx2 天前
在 MFC 中添加自定义消息:从定义到使用的完整指南
c++·mfc·postmessage·sendmessage·mfc 中添加自定义消息·wm_app·on_message
C++ 老炮儿的技术栈6 天前
sizeof操作符
c语言·c++·人工智能·mfc·c
C++ 老炮儿的技术栈9 天前
main函数之后的调用
c语言·c++·人工智能·qt·mfc·c
学逆向的13 天前
win32消息类型
windows·网络安全·mfc·api·win32
C++ 老炮儿的技术栈24 天前
我们在设计tcp协议时,要传一个字符串过去,报文:头十长度十内容,是否要把‘\0‘也填入,长度是否包含‘\0‘
开发语言·数据结构·c++·mfc·c
莫生灬灬1 个月前
灵码 LingBuilder:用中文写代码,确定性生成真实 C++ 工程(开源)
c++·开源·mfc
nLif1 个月前
基于GTK的简易MFC对话框兼容层 -- MfcToGTK
linux·c++·mfc·gtk