您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Delphi >> 关于windows消息处理的难题

关于windows消息处理的难题

来源:网络整理     时间:2016/7/25 4:24:59     关键词:

关于网友提出的“ 关于windows消息处理的难题”问题疑问,本网通过在网上对“ 关于windows消息处理的难题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 关于windows消息处理的难题
描述:


如何在主程序(注意:是主程序不是主窗体)获得windows发往主程序的消息,
然后将消息发往我希望接收这条消息的窗体。
例如主程序接收到WM_PAINT消息,就把这个消息转发给TForm1, 或者把自定义消息发给TForm1,
在TForm1中再处理这个消息。
一般的工程文件都是这样写的
program sample1;
uses
  Forms,
  u_main in 'u_main.pas' {Form1};
{$R *.RES}
begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
应该如何根据我的要求改写。
请大侠们写出具体代码,万分感谢!


解决方案1:

放一个ApplicationEvents控件
在OnMessage事件中处理所有发到主程序的消息

解决方案2:

给你参考
    procedure WMSysCommand(var Sysss: TWMSysCommand);message WM_SYSCOMMAND;
  public
  end;
var
  MyTest: TMyTest;
implementation
{$R *.dfm}
procedure TMyTest.WMSysCommand(var Sysss: TWMSysCommand); //拦截系统消息
begin
  with Sysss do
  begin
    if (CmdType and $FFF0 = SC_MINIMIZE) or (CmdType and $FFF0 = SC_CLOSE) then
    begin
      ShowWindow(MyTest.Handle,SW_HIDE);
      Exit;
    end;
    inherited;
  end;
end;


以上介绍了“ 关于windows消息处理的难题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2903461.html

相关图片

相关文章