Foxtable(狐表)用户栏目专家坐堂 → 如何监听windows消息?


  共有1247人关注过本帖树形打印复制链接

主题:如何监听windows消息?

帅哥哟,离线,有人找我吗?
xjt26605275
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:93 积分:1050 威望:0 精华:0 注册:2014/9/22 22:22:00
如何监听windows消息?  发帖心情 Post By:2017/3/29 16:38:00 [只看该作者]



公司买了一台 北恩u800电话机  让我试试和现有系统集成(fxotable开发的),

目前联系了北恩的技术员,他给了一个dll,说是c++开发的,可以给别的语言调用.

然后还跟我说了调用顺序:

1.新建窗口,调用初始化函数InitDll
2.用BindWindow函数绑定窗口
3.重写窗口的WndProc方法,监听消息
4.在WndProc里做相关业务处理

重写WndProc在FoxTable可以吗?

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:usbdll.zip

[此贴子已经被作者于2017/3/29 16:48:44编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/29 16:57:00 [只看该作者]

 叫他给你一个 vb.net 或者 c#.net 的例子

 

 不然,就参考 http://www.foxtable.com/webhelp/scr/3045.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
xjt26605275
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:93 积分:1050 威望:0 精华:0 注册:2014/9/22 22:22:00
  发帖心情 Post By:2017/3/29 17:12:00 [只看该作者]

没有例子,我在vs里写过测试是可以调用成功 正常使用的,
拨打电话调用他们提供的函数 例如:StartDial(0, "13888888888")
但如果有来电的话,就需要重写WndProc

例如:
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_USER + 705)//来电时发送来电号码.
 {
  string test = Marshal.PtrToStringAnsi(m.LParam);//取得号码来电 
 }
}

我是想着干脆就不去vs那边了,在FoxTable里做就好,是不是没办法重写WndProc方法???

就是说,在窗口管理新建的窗口,可不可以重写WndProc
[此贴子已经被作者于2017/3/29 17:20:22编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/29 17:21:00 [只看该作者]

 在foxtable写一个类来用,比如代码

 

Public Class GlobalKeyDown
Inherits System.Windows.Forms.form

private shared obj As new GlobalKeyDown

private Sub New()
End Sub

Public Shared Function getInstance() As GlobalKeyDown
    Return obj
End Function

Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
Functions.Execute("处理快捷键", m)
MyBase.WndProc(m)
End Sub

End Class

 

http://www.foxtable.com/webhelp/scr/1842.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/29 17:22:00 [只看该作者]

 你也可以在vs里面开发好一个dll,然后再在foxtable里面引用,直接调用。

 回到顶部
帅哥哟,离线,有人找我吗?
xjt26605275
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:93 积分:1050 威望:0 精华:0 注册:2014/9/22 22:22:00
  发帖心情 Post By:2017/3/29 17:24:00 [只看该作者]

哦哦,那我还是到vs写好了

我是想,如果窗口管理新建的窗口,可以重写WndProc 那就好了

谢谢

 回到顶部
帅哥哟,离线,有人找我吗?
xjt26605275
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:93 积分:1050 威望:0 精华:0 注册:2014/9/22 22:22:00
  发帖心情 Post By:2017/3/29 17:24:00 [只看该作者]

是啊  现在就是这样的

 回到顶部
帅哥哟,离线,有人找我吗?
xjt26605275
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:93 积分:1050 威望:0 精华:0 注册:2014/9/22 22:22:00
  发帖心情 Post By:2017/3/29 17:35:00 [只看该作者]

希望狐爸可以添加这个功能,窗口支持继承或者有全局窗口事件,这个对窗口的统一管理起到很重要的作用

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/29 17:37:00 [只看该作者]

以下是引用xjt26605275在2017/3/29 17:24:00的发言:
哦哦,那我还是到vs写好了

我是想,如果窗口管理新建的窗口,可以重写WndProc 那就好了

谢谢

 

单独写一个窗口监听信息就好了,参考4楼的代码。获取信息以后,转到某个内部函数取处理。


 回到顶部