MFC VC 獲取其他類指標

2021-07-10 05:06:56 字數 2229 閱讀 9997



在mainframe類中得到view的指標:

首先要在mainframe的標頭檔案中包涵doc類和view類的標頭檔案,doc類要比view類先包含,因為可能view類中例項了doc的物件和呼叫了doc的函式。

然後**為:

cfamewnd*   pactiveframe=getactiveframe();  

cview*   pview=pactiveframe->getactiveview();

也可為:

cview*   pview=pactiveframe->getactiveview();

的獲取工具條的指標

在預設狀態下,有乙個預設的工具條afx_idw_*******,我們可以根據相應的id去獲取工具條指標,方法如下:

c******** p*******=(c********)afxgetmainwnd()->getdescendantwindow(afx_idw_*******);

是不是很簡單?

獲取狀態條的指標

在預設狀態下,有乙個預設的狀態條afx_idw_status_bar,我們自然也可以根據相應的id去獲取狀態條指標,方法如下:

cstatusbar* p*******=(cstatusbar*)afxgetmainwnd()->getdescendantwindow(afx_idw_status_bar);

是不是同樣很簡單?

獲取控制項的指標

這裡有兩種方法。

一、呼叫cwnd: : getdlgitem,獲取乙個cwnd*指標呼叫成員函式。例如,我們想獲取cbutton指標,方法如下:

cbutton* pbutton=(cbutton*) getdlgitem (idc_mybutton);

二、可以使用classwizard將控制項和成員變數聯絡起來。在classwizard中簡單地選擇member variables標籤,然後選擇add variable …按鈕。如果在對話資源編輯器中,按下ctrl鍵並雙擊控制項即可轉到add member variable對話。

在文件類中呼叫檢視類指標

我們可以利用文件類的成員函式getfirstview()和getnextview()遍歷檢視。

在檢視類中呼叫文件類

其實,在檢視類中有乙個現成的成員函式供我們使用,那就是:getdocument();利用它我們可以很容易的得到文件類指標,我們先看一下getdocument()函式的實現:

ccolorbuttondoc* ccolorbuttonview::getdocument()

這裡實際上是將m_pdocument強制轉換成ccolorbuttondoc*,也就是我們想要的。

在框架類中呼叫文件類、檢視類

這裡我們可以利用getactive***xx()去掉用當前啟用的文件和檢視:

cmydoc*   pdoc=(cmydoc*)getactivedocument();

cmyview* pview=(cmyview*)getactiveview();

獲得應用程式指標

這個很簡單,一句話搞定:

獲得主框架指標

在類cwinthread裡面有乙個公有的成員變數:cwnd* m_pmainwnd; 它存在的主要目的就是提供我們獲得cwnd指標,我們可以利用它來達到我們的目的:

通過滑鼠獲得子視窗指標

這裡我們要用到乙個不太常用的函式:childwindowfrompoint。他的原型如下:

cwnd* childwindowfrompoint(point point) const;

cwnd* childwindowfrompoint(point point,uint nflags) const;

這個函式用於確定包含指定點的子視窗,如果指定點在客戶區之外,函式返回null;如果指定點在客戶區內,但是不屬於任何乙個子視窗,函式返回該cwnd的指標;如果有多個子視窗包含指定點,則返回第乙個子視窗的指標。不過,這裡還要注意的是:該函式返回的是乙個偽視窗指標,不能將它儲存起來供以後使用。

對於第二個引數nflags有幾個含義:

cwp_all             

file://不

忽略任何子視窗

cwp_skipnivsible    

file://忽

略不可見子視窗

cwp_skipdisabled    

file://忽

略禁止的子視窗

cwp_skipransparent  file://忽

略透明子視窗

android獲取其他應用資訊

adb shell dumpsys activity activities 先啟動需要的查詢的apk,再敲入以上命令,在stack 1下查詢cmp 其後的內容為包名 mainactivity 注 dumpsys activity可以檢視系統的所有的活動,包括服務 廣播等,加上activities則只...

VC獲取其他程序ListCtrl內容

vc讀寫其他程序listctrl資料到本程序的例項,下面用windows任務管理器來做測試 1 捕獲視窗控制代碼 用spy 可以看到如下父子視窗關係 新增listctrl,設定style report 關聯控制項變數m listctrl,再新增乙個按鈕,如下圖 4 程式不足 a 在獲取任務管理器 程...

VC獲取其他程序ListCtrl內容

vc讀寫其他程序listctrl資料到本程序的例項,下面用windows任務管理器來做測試 1 捕獲視窗控制代碼 用spy 可以看到如下父子視窗關係 新增listctrl,設定style report 關聯控制項變數m listctrl,再新增乙個按鈕,如下圖 2 相關 view plain cop...