给一个按钮  A  发送BM_CLICK,弹出一个模态窗口:这个我已经实现.  
关键是该窗口是模态的,只有该窗口关闭后才能进行其他消息发送操作,比如给该窗口上的关闭按钮发送单击消息.  
SendMessage(hBtnHandle,BM_CLICK,0,0);//点击按钮,弹出模态窗口这时,只有该模态窗口关闭了,才能发送
SendMessage(hBtnCloseHandle,BM_CLICK,0,0); //执行关闭按钮事件怎样,在该模态窗口弹出后,被关闭前,给其上的关闭按钮发消息?

解决方案 »

  1.   

    在模态窗口的OnSHow等事件中处理
      

  2.   

    1.向第一个按钮发消息要用PostMessage,要不会阻塞后面语句的执行。
    2.第二个消息直接向窗口发WM_CLOSE,或者WM_SYSCOMMAND,但是不要发给按钮。
      

  3.   

    一个列子:program Project2;{$APPTYPE CONSOLE}uses
      Windows, Messages;function MAKEWORD(a,  b: Byte): Word;
    begin
      result:=Word(a or Word(b) shl 8);
    end;var
      hWnd: Cardinal;
      hBtn: Cardinal;
    begin
      hWnd:=findwindow(nil, 'Form1');
      hBtn:=findwindowex(hWnd, 0, nil, 'Button1');
      PostMessage(hBtn, BM_CLICK, 0, 0);
      hBtn:=findwindowex(hWnd, 0, nil, 'Button2');
      SendMessage(hWnd, WM_COMMAND, MAKEWORD(BN_CLICKED, GetWindowLong(hBtn, GWL_ID)), hBtn);
    end.
      

  4.   

    Delphi IDE 可以卖掉,但希望Delphi高手依然存在!。