資源簡介
一個例子演示如何在VC++中用函數(shù)指針實(shí)現(xiàn)回調(diào)。
完整文章見我的blog:
http://blog.csdn.net/lincyang/article/details/29175413

代碼片段和文件信息
//?CallBack.cpp?:?Defines?the?class?behaviors?for?the?application.
//
#include?“stdafx.h“
#include?“CallBack.h“
#include?“CallBackDlg.h“
#ifdef?_DEBUG
#define?new?DEBUG_NEW
#endif
//?CCallBackApp
BEGIN_MESSAGE_MAP(CCallBackApp?CWinApp)
ON_COMMAND(ID_HELP?&CWinApp::onhelp)
END_MESSAGE_MAP()
//?CCallBackApp?construction
CCallBackApp::CCallBackApp()
{
//?support?Restart?Manager
m_dwRestartManagerSupportFlags?=?AFX_RESTART_MANAGER_SUPPORT_RESTART;
//?TODO:?add?construction?code?here
//?Place?all?significant?initialization?in?InitInstance
}
//?The?one?and?only?CCallBackApp?object
CCallBackApp?theApp;
//?CCallBackApp?initialization
BOOL?CCallBackApp::InitInstance()
{
//?InitCommonControlsEx()?is?required?on?Windows?XP?if?an?application
//?manifest?specifies?use?of?ComCtl32.dll?version?6?or?later?to?enable
//?visual?styles.??Otherwise?any?window?creation?will?fail.
INITCOMMONCONTROLSEX?InitCtrls;
InitCtrls.dwSize?=?sizeof(InitCtrls);
//?Set?this?to?include?all?the?common?control?classes?you?want?to?use
//?in?your?application.
InitCtrls.dwICC?=?ICC_WIN95_CLASSES;
InitCommonControlsEx(&InitCtrls);
CWinApp::InitInstance();
AfxEnableControlContainer();
//?Create?the?shell?manager?in?case?the?dialog?contains
//?any?shell?tree?view?or?shell?list?view?controls.
CShellManager?*pShellManager?=?new?CShellManager;
//?Activate?“Windows?Native“?visual?manager?for?enabling?themes?in?MFC?controls
CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows));
//?Standard?initialization
//?If?you?are?not?using?these?features?and?wish?to?reduce?the?size
//?of?your?final?executable?you?should?remove?from?the?following
//?the?specific?initialization?routines?you?do?not?need
//?Change?the?registry?key?under?which?our?settings?are?stored
//?TODO:?You?should?modify?this?string?to?be?something?appropriate
//?such?as?the?name?of?your?company?or?organization
SetRegistryKey(_T(“Local?AppWizard-Generated?Applications“));
CCallBackDlg?dlg;
m_pMainWnd?=?&dlg;
INT_PTR?nResponse?=?dlg.DoModal();
if?(nResponse?==?IDOK)
{
//?TODO:?Place?code?here?to?handle?when?the?dialog?is
//??dismissed?with?OK
}
else?if?(nResponse?==?IDCANCEL)
{
//?TODO:?Place?code?here?to?handle?when?the?dialog?is
//??dismissed?with?Cancel
}
else?if?(nResponse?==?-1)
{
TRACE(traceAppMsg?0?“Warning:?dialog?creation?failed?so?application?is?terminating?unexpectedly.\n“);
TRACE(traceAppMsg?0?“Warning:?if?you?are?using?MFC?controls?on?the?dialog?you?cannot?#define?_AFX_NO_MFC_CONTROLS_IN_DIALOGS.\n“);
}
//?Delete?the?shell?manager?created?above.
if?(pShellManager?!=?NULL)
{
delete?pShellManager;
}
//?Since?the?dialog?has?been?closed?return?FALSE?so?that?we?exit?the
//??application?rather?than?start?the?application‘s?message?pump.
return?FALSE;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2014-06-06?17:30??CallBack\
?????目錄???????????0??2014-06-06?17:30??CallBack\CallBack\
?????文件?????????891??2014-06-05?15:45??CallBack\CallBack.sln
?????文件???????31232??2014-06-06?17:30??CallBack\CallBack.v11.suo
?????文件??????107736??2014-06-05?17:23??CallBack\CallBack\CallBack.aps
?????文件????????2941??2014-06-05?15:44??CallBack\CallBack\CallBack.cpp
?????文件?????????517??2014-06-05?15:44??CallBack\CallBack\CallBack.h
?????文件????????9310??2014-06-05?17:23??CallBack\CallBack\CallBack.rc
?????文件????????6223??2014-06-05?17:23??CallBack\CallBack\CallBack.vcxproj
?????文件????????2279??2014-06-05?17:23??CallBack\CallBack\CallBack.vcxproj.filters
?????文件????????2657??2014-06-06?17:29??CallBack\CallBack\CallBackDlg.cpp
?????文件?????????823??2014-06-06?17:27??CallBack\CallBack\CallBackDlg.h
?????文件????????2596??2014-06-06?08:48??CallBack\CallBack\CallBack_vs110_Debug_Win32.lnt
?????文件?????????163??2014-06-06?16:39??CallBack\CallBack\Color.cpp
?????文件?????????465??2014-06-06?16:37??CallBack\CallBack\Color.h
?????文件????????4453??2014-06-05?15:44??CallBack\CallBack\ReadMe.txt
?????目錄???????????0??2014-06-05?15:45??CallBack\CallBack\res\
?????文件?????????994??2014-06-05?17:01??CallBack\CallBack\resource.h
?????文件???????67777??2012-01-11?16:22??CallBack\CallBack\res\CallBack.ico
?????文件?????????800??2014-06-05?15:45??CallBack\CallBack\res\CallBack.rc2
?????文件?????????210??2014-06-05?15:45??CallBack\CallBack\stdafx.cpp
?????文件????????1751??2014-06-06?17:02??CallBack\CallBack\stdafx.h
?????文件?????????314??2014-06-05?15:45??CallBack\CallBack\targetver.h
評論
共有 條評論