子類(子窗體)向主窗體傳送訊息

2021-10-04 07:44:20 字數 933 閱讀 6497

這裡演示的是,在主窗體**塊中,重寫攔截資訊方法。

首先新建乙個類:

這個類名定義為msg

[dllimport("user32.dll",entrypoint = "sendmessage")]

private static extern intptr sendmessage(int hwnd,int msg,intptr wparam,intptr iparam);

[dllimport("user32.dll",entrypoint = "findwindow")]

//ipclassname表示主窗體的例項名 ipwindowname是主窗體的名字(也就是主窗體的text屬性值)

private static extern int findwindow(string ipclassname,string ipwindowname);

//定義訊息變數 這個變數代表這個子類向主窗體傳送的「控制代碼」,通過這個控制代碼,可以在攔截訊息方法中識別是該//類傳送給過來的

public const int custom_message = 0x400+2;

//向窗體傳送訊息的方法

public void sendmsgtomainform(int msg)

long result = sendmessage(window_handler,custom_message,new

intptr(msg),intptr.zero).toint64();

}

在主窗體中重寫攔截方法:

//攔截訊息方法

protected override void wndproc(ref message msg)

}catch(exception ex)

}

之後把這個攔截方法放在主窗體類的建構函式裡即可。

c 向MFC窗體傳送訊息

using system using system.collections.generic using system.linq using system.text using system.threading.tasks using system.runtime.interopservices na...

C winform ,主窗體呼叫子窗體

問題1,第二次呼叫子窗體時存在出現無法訪問已釋放物件的異常,原因,子窗體並沒有關閉,而是隱藏掛起了,在窗體closing事件 不是closed 中新增 private void registry formclosing object sender,formclosingeventargs e 問題2...

DelphiXe2主窗體呼叫子窗體

第一次用delphixe2在建立form1的時候想呼叫form2窗體,但是發現直接form2.show 沒有效果糾結,原來沒有引用 if edt1.text admin and edt2.text admin then begin form1.hide form2.show endelse begi...