我在一个Form中用SendMessage向主Form发送消息
用的Handle是主Form的Handle
如果不用GetMessage函数,主Form如何获得这个消息呢
获得消息后,在什么函数里做我想做的操作呢?
用的Handle是主Form的Handle
如果不用GetMessage函数,主Form如何获得这个消息呢
获得消息后,在什么函数里做我想做的操作呢?
解决方案 »
- 有无办法得到鼠标移动到的位置是不是菜单项。
- 晕死!用stringgrid显示数据2W多条的数据竟然死机!
- 有做零售POS系统销售的吗?希望大家都来侃侃,关注一下这个市场,期盼各位说说您的成长故事!
- 错误提示
- 怎麼樣判斷double形態的數組是否有賦值?
- 请教
- 在DRAWGRID中,若它已有焦点,滚动鼠标滚轮时,它会不断触发ONCLICK事件,如何避免这种情况发生?
- 今天报高级程序员了,考过的朋友进来介绍一下经验,顺便散分,下班结帐
- 寻求一个从dbgrid生成Execl文档(新建)的例子
- 这个问题困了我很久(在线等待回音)
- 有关TREEVIEW的操作出了一点问题,帮我看看。
- 如何截获指定控件的消息
用消息处理函数啊:
procedure WM_UserMsg(var Msg: TMessage); message WM_USER+1;
类似这种的
procedure OnDownDeviceComAlarm(var Msg:TMessage);message MsgDownDeviceComAlarm;向主Form发送消息:
SendMessage(MainHWnd,MsgDownDeviceComAlarm,0,0);自动执行消息函数OnDownDeviceComAlarm。
MsgDownDeviceComAlarm = WM_USER+501;
你啊能告诉我
在第一个form里做什么
在主Form里做些什么啊
我以前是学C的 就知道一边SendMessage 另一边要GetMessage才好控制消息啊
现在好象不需要GetMessage也可以做的,我想知道怎么做,和为什么可以这么做啊
具体到你这个问题,你可以在主窗体的private部分声明一个消息处理函数:
procedure WM_UserMsg(var Msg: TMessage); message WM_USER+1;
然后在这个函数中写你的消息处理代码。
在第一个form中发消息给主form:
SendMessage(MainForm.Handle, WM_USER+1, 0, 0);
或者使用MainForm.Perform(WM_USER+1, 0, 0);
其中lparam和wparam是不是0,要看你的需要了。主form不用去调用什么GetMessage,这些Delphi都会帮你搞掂,SendMessage后就会执行到你在主form中定义的消息处理函数。