社区
C#
帖子详情
<请教大虾> 关于Windows消息值拦截...
shinaterry
2007-05-29 01:00:11
请问系统绘制Winforms窗体按钮的消息值是什么???
绘制非客户区的消息是 -> WM_NCPAINT: 0x0085
那么绘制窗体的最小/大化/还原、关闭、帮助按钮的系统消息分别又是什么呢???
它们是保存在Message对象的那个参数上???是LParam/RParam还是Msg呢???
希望知道的过客们分别把它们列出来...
以这种方式: [Message的参数名]->[英文名]->[值]
谢谢...
...全文
668
25
打赏
收藏
<请教大虾> 关于Windows消息值拦截...
请问系统绘制Winforms窗体按钮的消息值是什么??? 绘制非客户区的消息是 -> WM_NCPAINT: 0x0085 那么绘制窗体的最小/大化/还原、关闭、帮助按钮的系统消息分别又是什么呢??? 它们是保存在Message对象的那个参数上???是LParam/RParam还是Msg呢??? 希望知道的过客们分别把它们列出来... 以这种方式: [Message的参数名]->[英文名]->[值] 谢谢...
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
25 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
shinaterry
2007-06-09
打赏
举报
回复
这几总是已经持续了好几天...
可是还是没能解决...
最后两天了.希望大家支持...明天结贴...
SFDStudio
2007-06-07
打赏
举报
回复
路过...
shinaterry
2007-05-30
打赏
举报
回复
我只是想知道系统须要绘制[窗体按钮]时发送的消息值是什么....
真的没有人知道吗???
shinaterry
2007-05-30
打赏
举报
回复
TO: shrinerain ...
之前听您提前后,就一直在用...
可是它监控到的消息有很多,过滤后也不知道那些是自己想要的...
郁闷!
你能监控到吗?
shrinerain
2007-05-30
打赏
举报
回复
寒...你没听说过spy++?
安装Visual Studio就有的东西...
shinaterry
2007-05-30
打赏
举报
回复
我知道Winuser.h里有消息值的定义...
可以那么多,我不知道那些是我想要的...
MaybeHelios
2007-05-30
打赏
举报
回复
Winuser.h
shinaterry
2007-05-29
打赏
举报
回复
找过了,可是找不到自己想要的...
(WinDef.h) <- 这个文件在哪里呢???
winxieddd
2007-05-29
打赏
举报
回复
网上找呀,《windows消息大全》
shrinerain
2007-05-29
打赏
举报
回复
这些你用spy++看以下就知道了,不用记.
如果想找列表的话WinDef.h
shinaterry
2007-05-29
打赏
举报
回复
UP
SFDStudio
2007-05-29
打赏
举报
回复
关注一下...
shinaterry
2007-05-29
打赏
举报
回复
运行代码:
switch (m.Msg)
{
case WM_NCPAINT:
Console.WriteLine(m);
break;
default:
base.WndProc(ref m);
break;
}
得到结果:
msg=0x85 (WM_NCPAINT) hwnd=0x80880 wparam=0x1 lparam=0x0 result=0x0
msg=0x85 (WM_NCPAINT) hwnd=0x80880 wparam=0x20041846 lparam=0x0 result=0x0
msg=0x85 (WM_NCPAINT) hwnd=0x80880 wparam=0x45041901 lparam=0x0 result=0x0
结论:
标题栏与系统按钮还是会出来...
我想绘制系统按钮不是由消息WM_NCPAINT驱动的...
晕....
shinaterry
2007-05-29
打赏
举报
回复
用了下面代码:
switch(m){
case WM_NCPAINT:
Console.WriteLine(m);
break;
}
base.WndProc(m);
打印了很多信息...
不知道那些是自己想要的...
大家还有没有更好的方案呢???
shinaterry
2007-05-29
打赏
举报
回复
TO: hbxtlhx ...
谢谢! 刚才我用了一下SPY++, 监控消息有很多,不容易找啊...
不知道为什么它的消息过滤选项总是禁用的...
我用Console.WriteLine(m);试试看...
----------------------------------------------------------------
TO: wzuomin ...
我不是想重绘标题栏...
而是现在的任务中有其它特别的要求,所以要这样做...
至于重绘标题栏,我之前已经做出来了,不过还有一点点不足...
wzuomin
2007-05-29
打赏
举报
回复
又一个想重绘窗体标题栏的吧?
这个我也想知道。up一下啊,呵呵
北京的雾霾天
2007-05-29
打赏
举报
回复
如果你想得到一个窗口中的Window的消息都有哪些被处理了,或是在某个操作下会发生什么样的消息,你可以在代码中添加如下的代码:
protected override void WndProc(ref Message m)
{
Console.WriteLine(m);//这里会输出消息Message的详细信息.
base.WndProc(ref m);
}
使用Spy可以,但是这个难以控件.
北京的雾霾天
2007-05-29
打赏
举报
回复
还有,按MSDN所说,lParam参数既然不用,那什么还要保留呢?不明白...
-------------------------
在Windows的系统中所有的事件都是由系统的消息来驱动的,归纳了所有的消息的特点后就总结出了一个Message的最简洁最合适的结构:
IntPtr hWnd
int msg
IntPtr wparam
IntPtr lparam
这个结构中的成员可能会在某些消息中用不到,但是这是包含消息内容最全的了.
shinaterry
2007-05-29
打赏
举报
回复
TO: wodegege10 ...
请问用SPY++如何才能实现我想要的呢???
这个我没有用过,希望您能提点...
shinaterry
2007-05-29
打赏
举报
回复
TO: LeoMaya ...
非常感谢您把知道的都列出来! 不过这些值好像是按下系统按钮的时候发送的...
例如: 把下最小化时通过SendMessage把WM_MINIMIZE发出去...
再由DefWndProc来侦听.然后完成其相应的工作...
而我要的是在系统绘制窗体按钮时的消息值...
^o^
加载更多回复(5)
asp.net知识库
在ASP.NET中使用
WINDOWS
验证方式连接SQL SERVER数据库 改进ADO.Net数据库访问方式 ASP.NET 2.0 绑定高级技巧 简单实用的DataSet更新数据库的类+总结 [ADO.NET]由数据库触发器引发的问题 为ASP.NET封装的SQL数据库...
怎么
拦截
系统函数
) 在Dos下,我们可以
拦截
中断,用自己的处理替换系统中断,然后调用原来的中断,在
Windows
中,没有了中断,只有函数,那么我们如何来
拦截
系统的函数,然后我们的函数又调用原来的系统函数呢?比如说系统有一个...
C# For Unity系列之入门篇
有一定自主学习能力,跟着刘老师从“编程小白”修炼为游戏研发“
大虾
”吧!!!学习好Unity,其先决条件是一定要有稳固、扎实的编程基础!课程 《C# For Unity系列之入门篇》配套学习资料链接:...
使用winform自己做一个
消息
框, 以取代系统提供的MessageBox
是什么导致我们需要提供一个自定义的
消息
框?2.说说我的大致思路3.你的亮点在哪里?4.难道就是这些吗?下载本文讲述的项目源码包是什么导致我们需要提供一个自定义的
消息
框?最初产生这样一个需求是源于项目经理的...
【原创】使用winform自己做一个
消息
框, 以取代系统提供的MessageBox
是什么导致我们需要提供一个自定义的
消息
框?2.说说我的大致思路3.你的亮点在哪里?4.难道就是这些吗?下载本文讲述的项目源码包是什么导致我们需要提供一个自定义的
消息
框?最初产生这样一个需求是源于项目经理的...
C#
110,535
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章