一般我們是通過定義乙個類的物件來訪問類的成員變數及函式的。這比較簡單,比如:
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...