c# 的 Form 是如何封装 WndProc 方法的
来源:互联网 发布:hp1020网络打印机驱动 编辑:程序博客网 时间:2024/04/30 09:51
- 类继承关系
- WndProc 方法所在的类
- 结论
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
System.Windows.Forms.Control
System.Windows.Forms.ScrollableControl
System.Windows.Forms.ContainerControl
System.Windows.Forms.Form
System.ComponentModel.Design.CollectionEditor.CollectionForm
System.Messaging.Design.QueuePathDialog
System.ServiceProcess.Design.ServiceInstallerDialog
System.Web.UI.Design.WebControls.CalendarAutoFormatDialog
System.Web.UI.Design.WebControls.RegexEditorDialog
System.Windows.Forms.Design.ComponentEditorForm
System.Windows.Forms.PrintPreviewDialog
System.Windows.Forms.ThreadExceptionDialog
System.Workflow.Activities.Rules.Design.RuleConditionDialog
System.Workflow.Activities.Rules.Design.RuleSetDialog
System.Workflow.ComponentModel.Design.ThemeConfigurationDialog
System.Workflow.ComponentModel.Design.TypeBrowserDialog
System.Workflow.ComponentModel.Design.WorkflowPageSetupDialog
System.Windows.Forms.Control
WndProc Processes Windows messages.
Form 类都是由 WndProc 方法的,我们可以重载它来实现自己的功能。实例如下:
using System;using System.Drawing;using System.Windows.Forms;namespace csTempWindowsApplication1{ public class Form1 : System.Windows.Forms.Form { // Constant value was found in the "windows.h" header file. private const int WM_ACTIVATEAPP = 0x001C; private bool appActive = true; [STAThread] static void Main() { Application.Run(new Form1()); } public Form1() { this.Size = new System.Drawing.Size(300,300); this.Text = "Form1"; this.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); } protected override void OnPaint(PaintEventArgs e) { // Paint a string in different styles depending on whether the // application is active. if (appActive) { e.Graphics.FillRectangle(SystemBrushes.ActiveCaption,20,20,260,50); e.Graphics.DrawString("Application is active", this.Font, SystemBrushes.ActiveCaptionText, 20,20); } else { e.Graphics.FillRectangle(SystemBrushes.InactiveCaption,20,20,260,50); e.Graphics.DrawString("Application is Inactive", this.Font, SystemBrushes.ActiveCaptionText, 20,20); } }[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="FullTrust")] protected override void WndProc(ref Message m) { // Listen for operating system messages. switch (m.Msg) { // The WM_ACTIVATEAPP message occurs when the application // becomes the active application or becomes inactive. case WM_ACTIVATEAPP: // The WParam value identifies what is occurring. appActive = (((int)m.WParam != 0)); // Invalidate to get new text painted. this.Invalidate(); break; } base.WndProc(ref m); } }}
- c# 的 Form 是如何封装 WndProc 方法的
- c# Wndproc的使用方法
- c# Wndproc的使用方法
- c# Wndproc的使用方法
- C# WndProc的使用方法 (转)
- c# Wndproc的使用方法--转
- c# 重载WndProc,实现重写“最小化”的方法
- WinCE中使用C#时使用WndProc方法的处理
- C#方法的封装
- FireMonkey下的如何实现WndProc
- 有用的WndProc(ref Message m)方法
- ofbiz的form是如何生成的
- VB.NET WndProc、C# WndProc 与系统消息的链接地址
- WndProc的位置问题
- 自行封装Jquery的ajax的form方法
- C# Winform实现捕获窗体最小化、最大化、关闭按钮事件的方法,可通过重写WndProc来实现
- C# form 传参数的几个方法
- EJB是如何封装事务逻辑的?
- 深入运算符new 返回值
- 20个VC开发小技巧
- handler
- HTTP 通信, XML 解析, 通过 Hander 实现异步消息处理
- 各种排序算法的实现
- c# 的 Form 是如何封装 WndProc 方法的
- 获取系统内Applications的基本信息
- Linux跨平台移植经验总结(前言)
- 深入研究线程池
- 计算机类期刊投稿心得
- java开发环境搭建---如何给eclipse添加中文包(三)
- C语言中的字符串操作
- poj 1023 --The Fun Number System(分析题)
- 学习Android的一些网站收集