WndProc函数在什么时候被调用?

lkf181 2010-04-08 08:18:49
我参考网上一些资料写了个: 剪切板监视程序,里边有如下代码:

protected override void WndProc(ref System.Windows.Forms.Message m)
{.....................................}

本来就不太明白的我,本想用单步调试来看个究竟,可是程序已启动就来到此函数上,所以想问问此函数运行的条件和时机

(本人初学,请尽量详细地讲一讲,谢谢了!)
...全文
546 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
protected virtual void WndProc(
ref Message m
);
参数 m
与当前 Windows 消息相关联的 Message。

备注
当窗口消息发送到窗口的句柄时(http://baike.baidu.com/view/1452762.htm),将调用此方法。对继承者的说明: 重写此方法以实现特定消息处理。对未处理的消息调用 base.WndProc。
shashengduguzhe 2010-04-09
  • 打赏
  • 举报
回复
消息处理函数。
用以处理系统发布的各种消息以及自定义消息。并根据不同的消息,进行相关的处理。
风之银翼 2010-04-09
  • 打赏
  • 举报
回复
windows程序是事件驱动程序,windows发消息后,系统调用窗口函数(消息处理程序)
兔子-顾问 2010-04-09
  • 打赏
  • 举报
回复
这样描述看能否让楼主明白

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
//创建关于Form1实例的消息循环
Application.Run(new Form1());//->这里就会进入一个循环,你想了解最好看看c++ sdk编程
/*
// 这里是c++中自己处理消息而建立的消息循环,这个循环一般也就是整个软件的“发动机”
// 什么是消息,请参考google,baidu 搜索 windows message
// Main message loop:
while (GetMessage(&msg, NULL, 0, 0))//GetMessage每次从系统的消息队列取一个消息
{
if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))//vc中处理快捷键的方法
{
TranslateMessage(&msg);//解析消息
DispatchMessage(&msg);//分发处理消息,这里会调用WndProc
}
}
*/
}
}
}
lpingz 2010-04-09
  • 打赏
  • 举报
回复
你鼠标被风稍微吹动,windows就给你的应用程序发消息了

鼠标很轻,风很大!
  • 打赏
  • 举报
回复
应用程序不过是windows系统上的一个小的可插拔组件。当windows发消息时(例如你鼠标被风稍微吹动,windows就给你的应用程序发消息了),就回调你的应用程序了。
benxiong_tb 2010-04-09
  • 打赏
  • 举报
回复
当某一个事件发生时,由系统调用的

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧