窗体中间部份是透明的,可以看到下层窗体的视频,怎么样才能让鼠标不穿透中间的透明区域? 窗体中间部份是透明的,可以看到下层窗体的视频,怎么样才能让鼠标不穿透中间的透明区域?因为我想做的效果是要在视频上绘画win7下面中间透明部份鼠标无法穿透,效果实现了,可是换到xp系统下面鼠标点击中间透明部份的时候居然穿到下一层的视频上去了,导致无法绘画成功。求救!!!对了,小弟木有分。不好意思了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 完全透明应该是通过SetWindowRgn实现的吧那透明的位置就是空的所以一定会穿透啊你说win7不会? 是。win7的不会我试了一下是可以的。xp下,只要在透明部分画画就是点到下一层的视频上透明我用的是指定窗体颜色的那种透明方式 COLORREF maskColor = RGB(2,255,255); SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE,GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE)^0x80000); HINSTANCE hInst=LoadLibrary(_T("User32.DLL")); if(hInst) { typedef BOOL (WINAPI * MYFUNC)(HWND , COLORREF,BYTE,DWORD); MYFUNC fun=NULL; fun=(MYFUNC)GetProcAddress(hInst,"SetLayeredWindowAttributes"); if(fun)fun(this->GetSafeHwnd(),maskColor,0,1); ::RedrawWindow(this->GetSafeHwnd(), NULL, NULL, RDW_ERASE | RDW_INVALIDATE | RDW_FRAME | RDW_ALLCHILDREN); FreeLibrary(hInst); }dc.FillSolidRect(rectTracker->m_rect,RGB(2,255,255));//视频的地方透明这是窗体中间透明的代码。。 还有一个问题是窗体加载的PNG图片,透明区域为什么变成线绿色的了就是无法透明了。 xp和win7绘图机制不一样或许win7下这种透明没有做穿透xp是穿透的这个是正常的你可以试试调整透明度为1而不是0看看效果要想通过透明png做窗口要用UpdateLayeredWindow否则就是你说的这个效果有的时候是粉色 基于windows的木马查杀工具 如何隐藏MFC位图?请高手指教一下。。。 IF语句条件满足却进不去 如何能实现两个工程之间的通信 问个RTTI相关的问题 用AfxBeginThread启动新线程后如何强行终止该线程? 全角,半角转换问题 写了个小程序关于手绘图形识别的 模态对话框与非模态的OnOk区别有什么? 得到系统自由资源 BasicExcel类可以设置单元格的颜色吗? 在MainFrame中怎么调用Onclose();
那透明的位置就是空的
所以一定会穿透啊
你说win7不会?
透明我用的是指定窗体颜色的那种透明方式
SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE,GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE)^0x80000);
HINSTANCE hInst=LoadLibrary(_T("User32.DLL"));
if(hInst)
{
typedef BOOL (WINAPI * MYFUNC)(HWND , COLORREF,BYTE,DWORD);
MYFUNC fun=NULL;
fun=(MYFUNC)GetProcAddress(hInst,"SetLayeredWindowAttributes");
if(fun)fun(this->GetSafeHwnd(),maskColor,0,1);
::RedrawWindow(this->GetSafeHwnd(), NULL, NULL, RDW_ERASE | RDW_INVALIDATE | RDW_FRAME | RDW_ALLCHILDREN);
FreeLibrary(hInst);
}dc.FillSolidRect(rectTracker->m_rect,RGB(2,255,255));//视频的地方透明
这是窗体中间透明的代码。。
或许win7下这种透明没有做穿透
xp是穿透的
这个是正常的
你可以试试调整透明度为1而不是0看看效果
要想通过透明png做窗口要用UpdateLayeredWindow
否则就是你说的这个效果
有的时候是粉色