c# 消息机制篡改
2024-08-27 21:34:58
1.背景介绍:
c#程序想要针对某个的消息进行别的行为。例如:窗体不可拖动。
2.应用函数WinProc
以窗口不可拖动举例:
const int WM_NCLBUTTONDOWN = 0x00A1;//当光标在一个窗口的非客户区同时按下鼠标左键时提交此消息
const int HTCAPTION = 2;//表示鼠标在窗口标题栏时的系统信息
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_NCLBUTTONDOWN && m.WParam.ToInt32() == HTCAPTION)
return;
base.WndProc(ref m);
}
3.原理:
拦截并处理系统消息和自定义消息:windows程序会产生很多消息,比如你单击鼠标,移动窗口都会产生消息。这个函数就是默认的消息处理函数。你可以重载这个函数来制定自己的消息处理流程.在Winform程序中,可以重写WndProc函数,来捕捉所有发生的窗口消息。这样,我们就可以"篡改"传入的消息,而人为的让窗口改变行为。
最新文章
- linux vi 命令大全
- adb install INSTALL_FAILED_ALREADY_EXISTS
- 为什么可以用while(cin)?
- 成都PC网站建设需要考虑哪些费用呢
- poi中getPhysicalNumberOfRows()和getLastRowNum()区别
- Delphi版浏览器(持续更新)
- new 的用法
- [转] Git 分支 - 分支的新建与合并
- linux下实现ls()函数遍历目录
- 万事开头难,用HTML写的第一个界面,收获颇多
- RDLC报表系列(一) 简单的动态数据绑定和配置
- Mybatis框架分析
- QT之UDP通信
- Python中的threadlocal
- Soot生成代码控制流图
- 利用世界杯,读懂 Python 装饰器
- js 对象与数组相互转化的快捷方法 Object.keys()、Object.values()、Object.entries()
- [WC2018]即时战略——动态点分治(替罪羊式点分树)
- tmux 简单介绍
- SQL Server 函数之日期格式化函数