国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
AfxGetApp用法
AfxGetApp( )是全局的。
AfxGetApp( )這個函數(shù)可以得到當(dāng)前應(yīng)用進程的指針,是CWinApp*類型的,通過這個指針可以訪問到這個進程中的對象。
比如在全局函數(shù)中要向?qū)υ捒蛑械牧斜韺憯?shù)據(jù)。
void writeString(char* pString)
CWnd* pWnd = AfxGetApp()->GetMainWnd();
CMyDlg * pDlg;
pDlg=(CMyDlg *) pWnd;
pDlg->ShowMsg(pString);
AfxGetApp()得到進程指針CWinApp*,通過這個指針可以得到pWnd。要不在全局函數(shù)里你怎么對已存在的對話框操作呢。
AfxGetApp( )這個函數(shù)可以得到當(dāng)前引用的指針CWinApp*,通過這個指針可以訪問到這個進程中的對象。
==============================================================================
我們在任何一個VC工程中都會看到一個類似于:
//Test.cpp文件中
CTestApp theApp;(工程名為Test)
的語句。它是指向工程對象的一個指針,你可以用它方向Test工程的成員函數(shù)和變量。
如果工程中添加了一個CConfig類,在CConfig中想調(diào)用Test工程中的成員函數(shù)和變量,則可以這樣調(diào)用之:
CTestApp *pApp=(CTestApp *)AfxGetApp( );
如果在CTest類中我們聲明如下一些變量:
//Test.cpp文件
class CTestApp : public CWinApp
{
public:
CTestApp( );
CString str; //添加的對話框變量
...
}
//Test.cpp文件
CTestApp::CTestApp()
{
str="abc";
}
好了,現(xiàn)在我們就在CConfig類中調(diào)用str吧!
//Config.cpp文件
CTestApp *pApp=(CTestApp *)AfxGetApp( );
AfxMessageBox(pApp->str);
這樣,就實現(xiàn)了對CTestApp類中變量的調(diào)用。
================================================================
afxgetapp    --    取應(yīng)用程序?qū)嵗羔?div style="height:15px;">
getmainwnd   --    取主窗口對象指針
這兩個函數(shù)可以合成一個:  afxgetmainwnd();
我通常把一些重要的工程一開始就需要初始化的并且在其它地方類中都要用到的變量或
函數(shù)定義在C***App類中,然通過此函數(shù)獲得這些變量或函數(shù)。
AfxGetApp
The pointer returned by this function can be used to access application
information such as the main message-dispatch code or the topmost window.
CWinApp* AfxGetApp();
Return Value
A pointer to the single CWinApp object for the application.
Example
// Print the application's executable filename.
TRACE("Executable filename = %s\n", AfxGetApp()->m_pszExeName);
Requirements
Windows CE versions: 2.0 and later
Header file: Declared in Afxwin.h
Platform: H/PC Pro, Palms-size PC, Pocket PC
----
如果你定義為取全局變量,只需在需要的地方用extern聲名即可
如果把變量在你的C*App類中定義,就可以通過通過AfxGetApp()獲取C*App的指針,這樣就可以調(diào)用它的變量了.如果是
全局變量,這不需要用這個函數(shù)調(diào)用它
AfxGetApp()的返回值是指向theApp的指針,與全局變量無關(guān)。
AfxGetApp()這個函數(shù)在VC當(dāng)中很常見,主要是用來獲得CWinAPP生成的全局對象的。一般情況下將其強制類型轉(zhuǎn)換成你自己寫的App類就可以調(diào)用里面的方法了。但是如果編寫的是DLL程序的話,情況會稍有不同。你會發(fā)現(xiàn)在DLL中調(diào)用AfxGetApp這個函數(shù)會得到DLL的應(yīng)用對象。原因出現(xiàn)在DLL的模塊狀態(tài)上。應(yīng)用程序在調(diào)用DLL時為了保證資源不出問題,往往會調(diào)用一句:
AFX_MANAGE_STATE(AfxGetStaticModuleState())
注意這是一個宏。他的作用是切換模塊的全局變量范圍,即把應(yīng)用程序的那些全局變量拷貝切換到這個DLL的全局變量拷貝,自然用AfxGetApp得到就是DLL里面的這個APP了。如果向訪問應(yīng)用程序的App對象,那么只要把模塊狀態(tài)切換回去就可以了,記著執(zhí)行完后一定要把狀態(tài)再切換回來啊,否則就要出問題了。
例如:
// switch thread state back to application
_AFX_THREAD_STATE* pState = AfxGetThreadState();
AfxSetModuleState(pState->m_pPrevModuleState);
// do something with the application
AfxGetApp()->...
// switch thread state back to dll
AFX_MANAGE_STATE(AfxGetStaticModuleState())
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
[VC]在MFC下如何定義全局變量和全局函數(shù)[A.C.閩字號]
談?wù)劵惻c子類的this指針(C++)
MFC中五個初始類的作用
afxgetapp()中有什么成員,是不是一成員變量都可以通過它來獲得?
MFC 中獲得各個類的指針/句柄 ID的總結(jié)(轉(zhuǎn))
MFC多文檔和單文檔視結(jié)構(gòu)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服