通過全域性控制代碼 extern HWND 訪問其他類

2021-06-16 02:18:25 字數 610 閱讀 4127

一般我們是通過定義乙個類的物件來訪問類的成員變數及函式的。這比較簡單,比如:

cpage1 m_page1;

然後就可以通過m_page1訪問cpage1類中的定義的函式 比如:m_page1.add(2,3);

但是如果需要再cpage1類中訪問主視窗類中的函式該怎麼辦?

我們可以通過控制代碼來訪問。

1.首先在test.h(主程式標頭檔案) 或stdafx.h中定義也行

extern hwnd g_hwnd;

2.在testdlg.cpp中確保test.h標頭檔案被引用,並定義

hwnd g_hwnd;

3.在ctestdlg::oninitdialog()中

g_hwnd=m_hwnd;

好了 在任何地方如cpage1中引用如:

((ctestdlg*)fromhandle(g_hwnd))->m_page1.showwindow(sw_hide);

當然因為g_hwnd也是程式主視窗的控制代碼 所以g_hwnd也可以寫成afxgetmainwnd()->m_hwnd

這種方法在相同類中中比較常見。比如定義了cpage1、cpage2、cpage3等等類。他們相互之間引用通過控制代碼是一種比較方便的辦法。

控制代碼表及全域性控制代碼表

控制代碼表結構 1.這一塊共計兩個位元組,低位元組保留為0,高位位元組是給sethandleinformation這個函式用的,比如寫成sethandleinformation handle,handle flag protect from close,handle flag protect fro...

WPF獲得全域性窗體控制代碼,並響應全域性鍵盤事件

wpf窗體執行後,只能捕獲當前active窗體的按鍵事件,如果要監聽windows全域性事件,並對當前視窗事件響應.第一步 匯入winows api public class win32 熱鍵的對應的訊息id public const int wmhotkey 0x312 view code 第二步...

Qt通過控制代碼操作外部視窗

1 之前很長時間內用的都是mfc,後來vc的多執行緒與記憶體洩露讓我焦頭爛額,牽扯東西太多,於是乎,轉戰qt了。程式設計過程中,不可避免要操作外部視窗,mfc中操作視窗用的都是cwnd fromhandle qt中操作外部視窗與cwnd對應的是qwindow類。hwnd hwndlogin find...