国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

c# 中如何定義和接收消息?(轉)

2024-07-21 02:20:13
字體:
來源:轉載
供稿:網(wǎng)友
在c#中目前我還沒有找到發(fā)送消息的類成員函數(shù),所以只能采用通過調用win 32 api 的 sendmessage() 函數(shù)實現(xiàn)。由于 sendmessage的參數(shù)中需要得到窗體的句柄(handler) ,所以又要調用另一個api findwindow(), 兩者配合使用,達到在不同窗體之間的消息發(fā)送和接收功能。

另外一個要點是,需要通過重寫(override) 窗體的 defwndproc() 過程來接收自定義的消息。defwndproc 的重寫:

protected override void defwndproc(ref system.windows.forms.message m)
{
switch(m.msg)
{
case ...:
break;
default:
base.defwndproc(ref m);
break;
}
}


下面是我的c#實踐例程。
------------------------------------
/////////////////////////////////////////
///file name: note.cs
///
public class note
{
//聲明 api 函數(shù)

[dllimport("user32.dll",entrypoint="sendmessage")]
private static extern int sendmessage(
int hwnd, // handle to destination window
int msg, // message
int wparam, // first message parameter
int lparam // second message parameter
);
[dllimport("user32.dll",entrypoint="findwindow")]
private static extern int findwindow(string lpclassname,string
lpwindowname);
//定義消息常數(shù)
public const int user = 0x500;
public const int test = user + 1;


//向窗體發(fā)送消息的函數(shù)

private void sendmsgtomainform(int msg)
{
int window_handler = findwindow(null,@"note pad");
if(window_handler == 0)
{
throw new exception("could not find main window!");
}
sendmessage(window_handler,msg,100,200);
}
}


/////////////////////////////////////////
/// file name : form1.cs
/// 接收消息的窗體
///

public class form1 : system.windows.forms.form
{
public form1()
{
//
// required for windows form designer support
//
initializecomponent();
//
// todo: add any constructor code after initializecomponent call
//
}
/// 重寫窗體的消息處理函數(shù)
protected override void defwndproc(ref system.windows.forms.message m)
{
switch(m.msg)
{
//接收自定義消息 user,并顯示其參數(shù)
case note.user:
string message = string.format ("received message!
parameters are :{0},{1}",m.wparam ,m.lparam);
messagebox.show (message);
break;
default:
base.defwndproc(ref m);
break;
}
//console.writeline(m.lparam);
}
 

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 无极县| 四子王旗| 天全县| 庆阳市| 德化县| 南城县| 连城县| 崇州市| 准格尔旗| 西和县| 八宿县| 白水县| 合阳县| 泸州市| 深圳市| 茂名市| 陕西省| 大余县| 逊克县| 富蕴县| 公安县| 柳江县| 安塞县| 嘉兴市| 疏附县| 日照市| 扶绥县| 固原市| 翼城县| 乐平市| 内江市| 洛宁县| 衢州市| 莱芜市| 高雄市| 南召县| 灵山县| 贵德县| 静安区| 尚志市| 明光市|