社区
C#
帖子详情
winform DefWndProc 阻塞问题
tr3301103
2016-06-01 04:02:12
最近使用别人的DLL时需要用到DefWndProc,但是常常会发生阻塞,就是DefWndProc收到不消息。
第一次使用这个函数,不是很明白。请大神赐教!!
DefWndProc函数中做两件事:(1)打印消息到主窗口 (2)使用线程池,启动一个子线程,业务逻辑处理都在子线程中执行
...全文
408
3
打赏
收藏
winform DefWndProc 阻塞问题
最近使用别人的DLL时需要用到DefWndProc,但是常常会发生阻塞,就是DefWndProc收到不消息。 第一次使用这个函数,不是很明白。请大神赐教!! DefWndProc函数中做两件事:(1)打印消息到主窗口 (2)使用线程池,启动一个子线程,业务逻辑处理都在子线程中执行
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tr3301103
2016-06-02
打赏
举报
回复
引用 1 楼 shingoscar 的回复:
这个方法的本体是WndProc
谢谢回复,我用WndProc也试过,还是一样。 程序不是每次都没有回复,刚启动以后一切操作都正常。但是让程序开着,不做任何操作,十几二十秒之后,自定义的消息事件就收不到了。在WndProc中设置断点,其他系统消息事件还是可以收到。 而且,在WndProc中的switch中设置断点,然后启动程序,让代码在断点处停留一段时间,去掉断点后,自定义的消息事件也会收不到。 搞一天了,还是没弄明白。
希望懂得大神帮帮忙!
tr3301103
2016-06-02
打赏
举报
回复
终于解决了,在使用自定义的消息事件前,需要把主窗口句柄传递给我调用的DLL,而我是在子线程中把句柄传递给DLL的,就导致DLL无法将事件传递给我的WndProc函数。 所以解决办法就是在主线程中将窗口句柄传递给DLL就可以了!
Poopaye
2016-06-01
打赏
举报
回复
这个方法的本体是WndProc
Def
Window
Proc
阻塞
问题
的解法
Windows平台窗口消息
阻塞
问题
的研究
WinForm
:API
一、
Wnd
Proc
: 主要用在拦截并处理系统消息和自定义消息 ...在
Winform
程序中,可以重写
Wnd
Proc
函数,来捕捉所有发生的窗口消息。 这样,我们就可以"篡改"传入的消息,而人为的让窗口改变行为。 using System...
C#中使用sendMessage
而 SendMessage 等待消息被处理完了之后才返回,如果消息不被处理,发送消息的线程将一直被
阻塞
。 3、如果在同一个线程内,SendMessage发送消息时,由USER32.DLL 模块调用目标窗口的消息处理程序,并将结果...
C# 重写
Wnd
Proc
拦截 发送 系统消息 + windows消息常量值
/// 截获消息 处理XP不能关机
问题
protected override void
Wnd
Proc
(ref Message message) { switch (message.Msg) { case WM_QUERYENDSESSION: isClosed = true; break; } base.
Wnd
Proc
(ref ...
c# 面试 基础题
经典.net面试题目 1. 简述 private、 protected、 public、 internal 修饰符的访问权限。 答 .... protected : 保护成员,该类内部和继承类中可以访问。... public : 公共成员,完全公开,没有访问限制。...
C#
111,094
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章