社区
界面
帖子详情
UpdateLayeredWindow 与 Button,透明窗体 和 透明 button
DoubleGhost
2007-01-31 09:12:49
现在要实现的效果是,把dialog 上 的button 设置成不同透明程度的状态,用png贴图,已经在dialog上实现此功能, 但把相关代码移用到button上, UpdateLayeredWindow 返回值一直为FALSE , 请高手指点一二。在代码中只修改了相关句柄。感谢!
...全文
638
8
打赏
收藏
UpdateLayeredWindow 与 Button,透明窗体 和 透明 button
现在要实现的效果是,把dialog 上 的button 设置成不同透明程度的状态,用png贴图,已经在dialog上实现此功能, 但把相关代码移用到button上, UpdateLayeredWindow 返回值一直为FALSE , 请高手指点一二。在代码中只修改了相关句柄。感谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
DoubleGhost
2007-02-01
打赏
举报
回复
怎么给分?
DoubleGhost
2007-02-01
打赏
举报
回复
非常感谢!图片能够半透明显示, 但是按下button的响应消息没有了。还请指点!
DoubleGhost
2007-02-01
打赏
举报
回复
可以是可以了, 但是拖动窗体的时候,图片还在原地,没有随窗体一起移动。
DoubleGhost
2007-02-01
打赏
举报
回复
CButton * m_pButton1;
m_pButton1 = (CButton *)GetDlgItem(IDC_BUTTON3);//GetWindowRect(&rect);
long wsex = ::GetWindowLongPtr(m_pButton1->GetSafeHwnd(),GWL_EXSTYLE);
wsex|=WS_EX_TOOLWINDOW;
wsex &=~WS_EX_APPWINDOW;
::SetWindowLongPtr(m_pButton1->GetSafeHwnd(),GWL_EXSTYLE,wsex);
::SetParent(m_pButton1->GetSafeHwnd(),GetDesktopWindow()->GetSafeHwnd());
SetWindowLong(m_pButton1->GetSafeHwnd(),GWL_EXSTYLE,GetWindowLong(AfxGetMainWnd()->GetSafeHwnd(),GWL_EXSTYLE)^WS_EX_LAYERED);
::SetLayeredWindowAttributes(m_pButton1->GetSafeHwnd(),RGB(0,0,0),255,LWA_ALPHA);
::SetParent(m_pButton1->GetSafeHwnd(),AfxGetMainWnd()->GetSafeHwnd());
这样还是一样的问题
Y___Y
2007-02-01
打赏
举报
回复
原来的句子替换为
SetWindowLong(Button1->Handle, GWL_EXSTYLE, GetWindowLong(Button1->Handle, GWL_EXSTYLE ) ^ WS_EX_LAYERED);
即可
DoubleGhost
2007-02-01
打赏
举报
回复
非常感谢!图片能够半透明显示, 但是按下button的响应消息没有了。还请指点!
Y___Y
2007-02-01
打赏
举报
回复
回复 | 收藏此页 | 专题 | 公告 | 管理 | 保存 | 关闭窗口
点 管理 给分后,输密码,点 给分 按钮
Y___Y
2007-01-31
打赏
举报
回复
Panel控件半透明,关键是控件父窗体要设置为桌面
void __fastcall TForm1::FormActivate(TObject *Sender)
{
long wsex = ::GetWindowLongPtr(Handle, GWL_EXSTYLE );
wsex |= WS_EX_TOOLWINDOW ;
wsex &= ~WS_EX_APPWINDOW;
::SetWindowLongPtr(Panel1->Handle, GWL_EXSTYLE, wsex );
::SetParent(Panel1->Handle ,GetDesktopWindow());
SetWindowLong(Panel1->Handle, GWL_EXSTYLE, GetWindowLong(Panel1->Handle, GWL_EXSTYLE ) ^ WS_EX_LAYERED ^ WS_EX_TRANSPARENT );
::SetLayeredWindowAttributes(Panel1->Handle, RGB( 0, 0, 0 ), 255 - 100, LWA_ALPHA );
Panel1->Refresh() ; // 一定要呼叫,否则失败
::SetParent(Panel1->Handle,Form1->Handle);
Panel1->Repaint() ; // 一定要呼叫,否则失败
}
C# WINFORM 制作真正的
透明
窗体
桌面画图 的完美解决方案
我的解决方案为两层
透明
窗体
重叠,一层
透明
窗体
showForm显示图像(TransparencyKey因为鼠标穿透,但字迹显示清楚正常),用另一层
窗体
drawForm做绘图轨迹(Opacity鼠标不穿透,可以不必显示图像),两个都为
透明
窗体
,...
Delphi半
透明
窗体
类
Delphi半
透明
窗体
类 {*****************************************************************...支持颜色和图片半
透明
2.暂时只能手动指定背景图片 3.可调
透明
度(0..255) 4.可控制是否可移动
窗体
联系方式: Ema...
一个用
Update
Layer
ed
Window
实现
窗体
半
透明
的delphi的代码-The realization of a form with translucent
Update
Layer
ed
Wind...
一个用
Update
Layer
ed
Window
实现
窗体
半
透明
的delphi的代码-The realization of a form with translucent
Update
Layer
ed
Window
code delphi ...
VC编程之VC实现顶层窗口的
透明
与实现子窗口的
透明
本人在vc开发过程中,多次因窗口
透明
而煞费苦心,在本人的前一文章《
Update
Layer
ed
Window
与Set
Layer
ed
Window
Attributes》中已经指明实现窗口的
透明
方法,在过往实际的开发过程中我也一直沿袭这一做法,但也并不是...
揭开半
透明
窗体
的秘密(转)
当年Vista系统刚出来的时候,最吸引人的莫过于半
透明
磨砂的
窗体
界面了,迷倒了多少人。这个界面技术随即引发了编程界的一阵骚动,很多人都在 问:如何实现这一界面效果?当然,在Vista下倒是很简单,系统本身支持,...
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章