问题2:
一个窗体: stayontop
在窗体不是当前活动窗口时(如:点击其它窗体,当然此时本窗体仍然是最前面),会产生什么事件?回答此问题,至少给20分,请高手不吝赐教!!多谢了

解决方案 »

  1.   

    应该是其他窗体的show create等事件,而不是stayontop的窗体的事件
    如果想改变,或许需要修改windows的消息机制!
      

  2.   


    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
       unregisterhotkey(handle,keyid);
       DeleteAtom(KeyID);
    end;//注册热键
    keyid:=GlobalAddAtom('test') - $C000;     //keyid 为全局变量
    RegisterHotKey(Handle,keyid,MOD_WIN,VK_F10);在另一个过程中:
     keyid:=GlobalAddAtom(pchar('UserDefineHotKey'))-$C000;
     RegisterHotKey(Handle,keyid,MOD_WIN,VK_F11);
      

  3.   

    在另一个过程中: 改为
     keyid:=GlobalAddAtom(pchar('text'))-$C000;
     RegisterHotKey(Handle,keyid,MOD_WIN,VK_F11);
      

  4.   

    还是写错了。把TEXT改成TEST了,你自己看着办吧
      

  5.   

    添加了 DeleteAtom(KeyID) 这句也没有用
    GlobalDeleteAtom(keyid) 也没用到底该怎么办?请高手指教还有问题2:
    一个窗体: stayontop
    在窗体不是当前活动窗口时(如:点击其它窗体,当然此时本窗体仍然是最前面),会产生什么事件?
      

  6.   

    添加了 DeleteAtom(KeyID) 这句也没有用
    GlobalDeleteAtom(keyid) 也没用到底该怎么办?请高手指教还有问题2:
    一个窗体: stayontop
    在窗体不是当前活动窗口时(如:点击其它窗体,当然此时本窗体仍然是最前面),会产生什么事件?
      

  7.   

    1、
    在另一个过程中:
    UnRegisterHotKey(handle,keyid);//添加语句,否则下一行语句执行肯定失败而导致RegisterHotKey失败
    GlobalDeleteAtom(keyid);keyid:=GlobalAddAtom('test') - $C000;
    RegisterHotKey(Handle,keyid,MOD_WIN,VK_F11);2、发生WM_NCACTIVATE消息