DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: melqui
今日帖子: 16
在线用户: 19
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 diystar (diystar) ★☆☆☆☆ -
普通会员
2014/8/22 17:56:13
标题:
win7下如何把alpha透明窗口嵌入桌面? 浏览:3527
加入我的收藏
楼主: RT,以下代码去掉透明后是正常的:

procedure TForm1.FormCreate(Sender: TObject);
var
  ProgmanH:HWND;
begin
  Self.AlphaBlendValue:=128;
  Self.AlphaBlend:=True; //去掉这句就正常了

  ProgmanH:=FindWindow('Progman', 'Program Manager');
  ProgmanH:=GetWindow(ProgmanH,GW_CHILD);
  ProgmanH:=GetWindow(ProgmanH,GW_CHILD);
  Windows.SetParent(Self.handle,ProgmanH);
end;

嵌入桌面是指点击显示桌面或按Win+D后,窗口也不会隐藏。
----------------------------------------------
http://mcool.appinn.me/
作者:
男 diystar (diystar) ★☆☆☆☆ -
普通会员
2014/8/22 19:01:43
1楼: XP和win7不开启aero都是正常的
----------------------------------------------
http://mcool.appinn.me/
作者:
男 isxuzhu (e.Wong) ★☆☆☆☆ -
盒子活跃会员
2014/8/22 19:32:46
2楼: var
  FMHWnd: HWND;
  TmpHandle:THandle;
==========
    FMHWnd := FmxHandleToHWND(self.Handle);
    TmpHandle := Winapi.Windows.FindWindow('Progman',Nil);
    if TmpHandle <> 0 Then Begin
        TmpHandle := GetWindow(TmpHandle, GW_CHILD);
        Winapi.Windows.SetParent(FMHWnd, TmpHandle);
    end;

此代码用在FMX工程中,同样,Aero下无效了。。。。
----------------------------------------------
你我,都可以是个造梦者!欢迎加入脚本引擎PaxCompiler交流群303904495http://www.cnblogs.com/fireboxsoft有需要错别字检测软件的朋友可以在我博客上的地址下载使用,备注“2ccc”的朋友可以免费获取超级黄金VVVVVVVVVVIP授权
作者:
男 isxuzhu (e.Wong) ★☆☆☆☆ -
盒子活跃会员
2014/8/22 21:07:35
3楼: 解决了,呵呵
var DesktopHandle: HWnd;
begin
    FMHWnd := FmxHandleToHWND(self.Handle);
    //下面这么多步,可完美让程序兼容于WIN7的AERO主题
    DesktopHandle := Winapi.Windows.FindWindow('Progman', 'Program Manager');
    DesktopHandle := FindWindowEx(desktopHandle, 0, 'SHELLDLL_DefView', nil);
    DesktopHandle := FindWindowEx(desktopHandle, 0, 'SysListView32', 'FolderView');
    if (DesktopHandle= 0) then begin
      DesktopHandle := Winapi.Windows.FindWindow('Progman', 'Program Manager');
      DesktopHandle := DesktopHandle+ 2;
      DesktopHandle := FindWindowEx(DesktopHandle, 0, 'SysListView32', 'FolderView');
    end;
    Winapi.Windows.SetParent(FMHWnd, DesktopHandle);
----------------------------------------------
你我,都可以是个造梦者!欢迎加入脚本引擎PaxCompiler交流群303904495http://www.cnblogs.com/fireboxsoft有需要错别字检测软件的朋友可以在我博客上的地址下载使用,备注“2ccc”的朋友可以免费获取超级黄金VVVVVVVVVVIP授权
作者:
男 ptdelphi (Delphi) ▲▲▲▲△ -
普通会员
2014/8/23 0:48:11
4楼: 收了,呵呵,感谢
----------------------------------------------
还可以更好
作者:
男 kkkmmm (KKKMMM) ★☆☆☆☆ -
普通会员
2014/8/23 9:53:42
5楼: @isxuzhu:
 DesktopHandle+2是什么意思?
----------------------------------------------
-
作者:
男 diystar (diystar) ★☆☆☆☆ -
普通会员
2014/8/23 11:57:21
6楼: @isxuzhu
非FMX窗口实测无效哦(FMX窗口没试)
----------------------------------------------
http://mcool.appinn.me/
作者:
男 hyz_hz (随风) ★☆☆☆☆ -
普通会员
2014/8/23 15:48:47
7楼: 嵌入桌面是怎么样的效果? 楼主截张图看看呀.
----------------------------------------------
-
作者:
男 diystar (diystar) ★☆☆☆☆ -
普通会员
2014/8/23 18:20:20
8楼: @随风
类似win7桌面小工具,在所有窗口之下,在桌面之上,点击显示桌面后窗口不会最小化。一楼的代码去掉透明后你可以试下..
----------------------------------------------
http://mcool.appinn.me/
作者:
男 ptdelphi (Delphi) ▲▲▲▲△ -
普通会员
2014/8/23 19:13:53
9楼: 窗口最小化时是最小化到桌面,不是最小化到任务栏
----------------------------------------------
还可以更好
作者:
男 diystar (diystar) ★☆☆☆☆ -
普通会员
2014/8/24 14:27:55
10楼: 或者可以换个角度问:怎样用Delphi制作win7桌面小工具?
另外,win7桌面小工具是LAYERED分层窗口么?
----------------------------------------------
http://mcool.appinn.me/
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2014/8/24 14:29:26
11楼: http://my.oschina.net/ypimgt/blog/63348

http://www.xp85.com/html/article-95-357.html
----------------------------------------------
(C)(P)Flying Wang
作者:
男 diystar (diystar) ★☆☆☆☆ -
普通会员
2014/8/24 14:46:21
12楼: @Flying Wang
用delphi怎样制作一个高仿的呢?
另外,桌面小工具貌似附着在一个透明的窗口上,能找到这个窗口的句柄么?把delphi程序嵌入这个窗口不知道行不行..
----------------------------------------------
http://mcool.appinn.me/
作者:
男 diystar (diystar) ★☆☆☆☆ -
普通会员
2014/8/24 19:11:00
13楼: 试用N个桌面日历或天气秀,没有一个实现了在Aero下嵌入桌面,看来是个不可能完成的任务..
----------------------------------------------
http://mcool.appinn.me/
作者:
男 diystar (diystar) ★☆☆☆☆ -
普通会员
2014/10/13 17:56:05
14楼: 哦也,找到一个可以完美嵌入Aero桌面的软件:飞雪桌面日历 http://www.xt263.com/

Delphi大侠们还需努力哦 @isxuzhu @武稀松 @Flying Wang
----------------------------------------------
http://mcool.appinn.me/
作者:
男 diystar (diystar) ★☆☆☆☆ -
普通会员
2014/10/13 18:26:23
15楼: 又找到一个:创易桌面提醒 http://blog.sina.com.cn/s/blog_cd67d4660101jfv8.html
----------------------------------------------
http://mcool.appinn.me/
作者:
男 diystar (diystar) ★☆☆☆☆ -
普通会员
2014/10/17 19:04:58
16楼: 已解决:不要用Windows.SetParent(Self.handle,ProgmanH);
而是用SetWindowLong(Self.handle,GWL_HWNDPARENT,ProgmanH);
如此而已
----------------------------------------------
http://mcool.appinn.me/
作者:
男 nevergrief (孤独骑士) ★☆☆☆☆ -
盒子活跃会员
2014/10/17 20:15:22
17楼: 顶英雄无敌3的爱好者。有空我把我收集的各种几十个G的英雄无敌3都上传。
----------------------------------------------
只有偏执狂才能生存!
作者:
男 diystar (diystar) ★☆☆☆☆ -
普通会员
2014/10/18 10:18:42
18楼: @孤独骑士
谢谢
----------------------------------------------
http://mcool.appinn.me/
作者:
男 isxuzhu (e.Wong) ★☆☆☆☆ -
盒子活跃会员
2014/11/9 18:38:53
19楼: @diystar

procedure TForm1.FormCreate(Sender: TObject);
var
  ProgmanH:HWND;
begin
  Self.AlphaBlendValue:=128;
  Self.AlphaBlend:=True; //去掉这句就正常了

  ProgmanH:=FindWindow('Progman', 'Program Manager');
  ProgmanH:=GetWindow(ProgmanH,GW_CHILD);
  ProgmanH:=GetWindow(ProgmanH,GW_CHILD);
  SetWindowLong(Self.handle,GWL_HWNDPARENT,ProgmanH);
end;

这样吗?WIN7,64位,不论是否AERO桌面都无效。
----------------------------------------------
你我,都可以是个造梦者!欢迎加入脚本引擎PaxCompiler交流群303904495http://www.cnblogs.com/fireboxsoft有需要错别字检测软件的朋友可以在我博客上的地址下载使用,备注“2ccc”的朋友可以免费获取超级黄金VVVVVVVVVVIP授权
作者:
男 xjia (xjia) ★☆☆☆☆ -
盒子活跃会员
2014/11/9 18:48:09
20楼: 19 楼,你的程序是64位的吗?不是肯定不行~
----------------------------------------------
-
作者:
男 bujin888 (bujin888) ★☆☆☆☆ -
普通会员
2014/11/9 22:39:31
21楼: 以上效果!!
setwindowpos(FormHandle,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE+SWP_NOSIZE);

这句代码可以等同吗?
----------------------------------------------
http://www.ressss.com
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行74.21875毫秒 RSS