DELPHI 心得 (2008-05)

作者: 陆岛工作室



以下两个代码心得是在编写 陆岛桌面工具时自己的一些心得。
 
1.    (2008-5-1) 有几种方法可以禁止主窗口在不任务栏显示 .

1 ) 通过SetWindowLong设置主窗口的属性:
SetWindowLong(Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);

2 ) 设置 窗口的 ParentWindow 为桌面窗口的句柄
var
  AHandle: THandle;
begin
  SetWindowLong(Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
  AHandle :
=  FindWindow( ' ProgMan ' nil );
  
if  AHandle <> 0   then  Self.ParentWindow : =  AHandle;
end ;

3 ) 在 Delphi  2007  时,可以如下设置
Application.MainFormOnTaskbar :
=  True;
Application.ShowMainForm :
=  False;

 

2.    (2008-5-1) 模式窗口焦点的解决。当窗口弹出一个模式窗口时,切换到其他窗口后,再切换回来,模式窗口就不能显示到最顶端了。这个问题可以根据判断 Application.Enabled 属性来解决。因为当 Application 有一个模式窗口时. Applicaton.Enabled 值就会为 False。因此,就可以在窗口的 WM_NCActivate 消息里。加入以下代码。

procedure  TMyForm.WMNCActivate( var  Message: TWMNCActivate);
begin
  inherited;
  
if  Message.Active  and   not  (fsModal  in  FormState)  and  
     
not  IsWindowEnabled(Application.Handle)  then
    Windows.SetForegroundWindow(Application.Handle);
end ;


转载于:https://www.cnblogs.com/iinsnian/archive/2008/06/07/1215503.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值