在初始化中使用下面两行代码

ModifyStyleEx(0, WS_EX_LAYERED);

::SetLayeredWindowAttributes(m_hWnd, RGB(1, 255, 0), 100, LWA_COLORKEY);       //set color transparent,指定透明的颜色

 

然后在OnEraseBkgnd或者OnPaint中

CRect rect;
this->GetClientRect(&rect);
dc.FillSolidRect(rect, RGB(1, 255, 0));             //填充指定透明的颜色

可以达到窗口透明,当然你可以填充指定矩形区达到局部透明。

 

那么问题来了,当这样透明后,鼠标无法穿透透明区域,怎么才能做到鼠标穿透呢? 很简单,将填充颜色改为RGB(0, 255, 0),也就是说设置纯色透明可以达到鼠标穿透,混合色不穿透。 很奇怪,我也没仔细研究是什么原因,就记录下吧。

转:http://blog.csdn.net/sundan308/article/details/41980427

相关文章:

  • 2021-05-20
  • 2022-12-23
  • 2021-06-08
  • 2022-01-11
  • 2021-09-19
  • 2022-02-01
  • 2021-05-19
  • 2022-01-22
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-05
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案