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

更改通知属性

相关推荐
SunkingYang20 小时前
程序崩溃闪退——MFC共享内存多次OpenFileMapping和MapViewOfFile而没有相应的UnmapViewOfFile和CloseHandle
c++·mfc·共享内存·崩溃·闪退·close·openfilemapping
hd51cc21 小时前
MFC控件 学习笔记二
笔记·学习·mfc
昇腾CANN2 天前
自定义算子开发系列:TilingKey模板化编程介绍
c++·mfc
oioihoii2 天前
在MFC桌面应用中嵌入现代浏览器内核:原理、选型与实践全解析
c++·mfc
兵哥工控2 天前
MFC模拟量转工程量换应用程序实例
c++·mfc·工程量·模拟量
兵哥工控3 天前
MFC高精度计时器实现方案
c++·mfc·高精度计时器
SunkingYang3 天前
MFC中如何使MessageBox弹窗置顶?
c++·mfc·窗口·messagebox·置顶·afxmessagebox
oioihoii4 天前
MFC核心架构深度解析
c++·架构·mfc
兵哥工控4 天前
MFC 对话框线程简单完整实例
c++·mfc·线程·afxbeginthread
兵哥工控5 天前
MFC PostMessage实现进度条实时更新实例
c++·mfc