关于网友提出的“ 关于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