通常情况下,我们编程都是每一个按钮下面去完成一个功能,就会把完成功能的函数写在这个按钮下面,由于这么做的话对于代码的复用性就比较局限,现在我想通过定义名字的方法去完成每一个按钮的调用,大致说明情况是这样:
第一层是GUI层
↓
第二层是MSG层
↓
第三层是处理层
↓
第四层是具体的功能函数详细说明一下:首先第一次表示界面,界面上面有各种按钮,点击按钮会发送一条定义好的命令到消息处理层,消息处理层接收到这条代码某一个功能的消息之后进行处理,通过这个消息去调用要完成这个功能的函数现在我知道在C#中可以定义如下格式的文件:
//Serial Communications Defintions
#define ssCOM1 1
#define ssCOM2 2
#define ssCOM3 3
#define ssCOM4 4
#define ssCOM5 5
#define ssCOM6 6#define ssBPS9600 9600
#define ssBPS19200 19200#define ssParityNone 0
#define ssParityOdd 1
#define ssParityEven 2#define ssStopBits1 1
#define ssStopBits2 2#define ssDataBits7 7
#define ssDataBits8 8 //Definitions for AEC area selection#define ssAEC_FIELD_LEFT 0
#define ssAEC_FIELD_CENTER 1
#define ssAEC_FIELD_RIGHT 2#define ssAEC_DENSITY_M2 0
#define ssAEC_DENSITY_M1 1
#define ssAEC_DENSITY_0 2
#define ssAEC_DENSITY_1 3
#define ssAEC_DENSITY_2 4
如果是在C#中该如何来完成啊?有了这个思路但是就是不知道该如何去实时,希望可以给我点帮助!谢谢各位了!
第一层是GUI层
↓
第二层是MSG层
↓
第三层是处理层
↓
第四层是具体的功能函数详细说明一下:首先第一次表示界面,界面上面有各种按钮,点击按钮会发送一条定义好的命令到消息处理层,消息处理层接收到这条代码某一个功能的消息之后进行处理,通过这个消息去调用要完成这个功能的函数现在我知道在C#中可以定义如下格式的文件:
//Serial Communications Defintions
#define ssCOM1 1
#define ssCOM2 2
#define ssCOM3 3
#define ssCOM4 4
#define ssCOM5 5
#define ssCOM6 6#define ssBPS9600 9600
#define ssBPS19200 19200#define ssParityNone 0
#define ssParityOdd 1
#define ssParityEven 2#define ssStopBits1 1
#define ssStopBits2 2#define ssDataBits7 7
#define ssDataBits8 8 //Definitions for AEC area selection#define ssAEC_FIELD_LEFT 0
#define ssAEC_FIELD_CENTER 1
#define ssAEC_FIELD_RIGHT 2#define ssAEC_DENSITY_M2 0
#define ssAEC_DENSITY_M1 1
#define ssAEC_DENSITY_0 2
#define ssAEC_DENSITY_1 3
#define ssAEC_DENSITY_2 4
如果是在C#中该如何来完成啊?有了这个思路但是就是不知道该如何去实时,希望可以给我点帮助!谢谢各位了!
private static extern IntPtr SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
private const int WM_USER = 0x0400;
private const int WM_BUTTON1 = WM_USER + 1;
private const int WM_BUTTON2 = WM_USER + 2;
private const int WM_BUTTON3 = WM_USER + 3; private void button1_Click(object sender, EventArgs e)
{
SendMessage(this.Handle,WM_BUTTON1,0,0);
} private void button2_Click(object sender, EventArgs e)
{
SendMessage(this.Handle, WM_BUTTON2, 0, 0);
} private void button3_Click(object sender, EventArgs e)
{
SendMessage(this.Handle, WM_BUTTON3, 0, 0);
} protected override void WndProc(ref Message m)
{
switch (m.Msg)
{
case WM_BUTTON1:
MessageBox.Show("1");
break; case WM_BUTTON2:
MessageBox.Show("2");
break; case WM_BUTTON3:
MessageBox.Show("3");
break;
}
base.WndProc(ref m);
}
在发生事件时候发送一个自定义的事件把tag传过去
在自定义事件的函数中 根据tag处理调用不同的函数
{
case:
....
break;
}如果写的比较多的话是否会降低程序运行的效率?