快捷搜索:

在C#应用程序与DLL交互中使用音讯

  在C#是一品种 似 Java 的完全面向对象的高级编程言语 ,其处理过程选用 工作 驱动方式,但在实践 的使用过程中,有时分 通过调用体系 原有的音讯 处理起来会更简略 ,特别是在处理与DLL文件的交互时,实践证明确实 是十分 便利 的。

  在C#中使用自定义 音讯


  在C#中使用自定义 音讯 十分 简略 ,只需要下面几个简略 的步骤就能够 了:


  1、定义 音讯

  定义 音讯 的方法与在VC中定义 音讯 有一点点不同,比如在VC中声明 一个自定义 音讯 是这样的:


#define WM_TEST WM_USER + 101  

  而在C#中音讯 需要定义 成 Windows 体系 中的原始的16进制数字,比如自定义 音讯

public const int USER = 0x0400;  

  那么我们在VC中声明 的自定义 音讯 ,在C#中就能够 做对应的声明:

public const int WM_TEST = USER+101;  

  2、发送音讯

  音讯 发送是通过 Windows 提供的 API 函数 SendMessage 来完成 的,它的原型定义 :

[DllImport("User32.dll",EntryPoint="SendMessage")]
private static extern int SendMessage(
IntPtr hWnd, // handle to destination window
uint Msg, // message
uint wParam, // first message parameter
uint lParam // second message parameter
);
 

  3、音讯 接收

  音讯 发出之后,在Form中怎么 接收呢?我们可以重载DefWinproc函数来接收音讯 。

protected override void DefWndProc ( ref System.Windows.Forms.Message m )
{
 switch(m.Msg)
 {
  case Message.WM_TEST: //处理音讯
   break;
  default:
   base.DefWndProc(ref m);//调用基类函数处理非自定义 音讯 。
   break;
 } 
}
 

  在C#中使用体系 音讯

  我们以WM_PAINT音讯 的处理为例,在C#中处理音讯 与MFC的音讯 处理是类似的,但更为简略 。MFC中需要使用DECLARE_MESSAGE_MAP来定义 音讯 映射,在C#就不需要了。比如WM_PAINT音讯 ,我们只需 重载父类中的OnPaint虚拟方法即可,方法如下:

  在菜单View->Other Windows->Object Browser打开对象阅读 窗口(或用CTRL+ALT+J打开),在我们的工程名下找到Form并选中,这时候 在右边的窗口列出所有Form类的成员函数。

  我们选中OnPaint(System.WinForms.PaintEventArgs)此时在下面会显示完好 的OnPaint函数protected void OnPaint ( System.WinForms.PaintEventArgs e )我们将这一行字符串Copy下来。打开Form1.cs进行代码修正 ,我们把方才 拷贝下来的函数定义 复制到Form1类里边 ,并加上override要害 字,此时我们便可以在里边 添加我们的音讯 处理代码了,请参考如下代码段:

protected override void OnPaint (System.Windows.Forms.PaintEventArgs e )
{
 Font font = new Font("黑体",28);///定义 字体:黑体,大小 :28
 SolidBrush bluepen = new SolidBrush(Color.Blue);///创建蓝色画笔
 SolidBrush blackpen = new SolidBrush(Color.FromARGB(0xa0,0xa0,0xb0));///创建黑色画笔
 e.Graphics.DrawString("VC常识 库",font,blackpen,65,25);///写字符串

 ///偏移4个象素用不同的色彩 再写一次,达到立体效果
 e.Graphics.DrawString("VC常识 库",font,bluepen,61,21);
}
 

1

作者:sundy26职责 修正 :方舟)

天极新媒体 最酷科技资讯

扫码赢大奖

评论

* 网友说话 均非本站情绪 ,本站不在评论栏引荐 任何网店、经销商,谨防上当上当 !

您可能还会对下面的文章感兴趣: