-銆婃繁鍏ユ祬鍑篗FC銆嬪涔犵瑪璁頒箣浜?nbsp;
浣滆咃細XGM 2001-8-14
銆
MFC紼嬪簭涔熸槸Windows紼嬪簭錛屾墍浠ュ畠涔熸湁涓涓猈inMain錛屼絾鏄垜浠湪紼嬪簭涓湅涓嶅埌瀹冪殑韙獎銆傚疄闄呬笂錛屽湪紼嬪簭榪涘叆鐐逛箣鍓嶏紝鏈変竴涓紙鑰屼笖鍙湁涓涓級鍏ㄥ眬瀵硅薄錛堝湪Hello紼嬪簭涓悕涓簍heApp錛夛紝榪欐槸鎵璋撶殑application
object錛屽綋鎿嶄綔緋葷粺灝嗙▼搴忓姞杞藉茍嬋媧繪椂錛岃繖涓叏灞瀵硅薄鑾峰緱閰嶇疆錛屽叾鏋勯犲嚱鏁頒細鍏堟墽琛岋紝姣擶inMain鏇存棭銆?
涔︿腑鎵涓綡ello紼嬪簭錛屾槸涓涓畝鍗曠殑MFC紼嬪簭錛屽叾涓諱綋鍦ㄤ簬WinMain鍜學ndProc錛岃岃繖涓や釜閮ㄥ垎鍏跺疄閮芥湁鐩稿綋紼嬪害鐨勪笉鍙樻с侻FC灝辨槸鎶婃湁鐫鐩稿綋鍥哄畾琛屼負鐨刉inMain鍐呴儴鎿嶄綔灝佽鍦–WinApp涓紱鎶婃湁鐫鐩稿綋鍥哄畾琛屼負鐨刉ndProc鍐呴儴鎿嶄綔灝佽鍦–FrameWnd涓備篃灝辨槸璇達紝CWinApp浠h〃紼嬪簭鏈綋錛孋FrameWnd浠h〃涓涓富妗嗙獥鍙?
铏界劧WinMain鍜學ndProc鍐呴儴鎿嶄綔鏈夌浉褰撶▼搴︾殑涓嶅彉鎬э紝浣嗛潰瀵逛笉鍚屽簲鐢ㄧ▼搴忎篃闇鏈夊彉鍖栵紝鎵浠ュ繀欏諱互榪欎袱涓被涓哄熀紜錛屾淳鐢熻嚜宸辯殑綾伙紝騫舵敼鍐欏叾涓竴閮ㄥ垎鎴愬憳鍑芥暟銆?
CWinApp----鍙栦唬WinMain鐨勫湴浣?
浼犵粺涓奡DK紼嬪簭鐨刉inMain鎵瀹屾垚鐨勫伐浣滅幇鐢盋WinApp鐨勪笁涓嚱鏁板畬鎴愶細
virtual BOOL InitApplication( );
virtual BOOL InitInstance( );
virtual BOOL Run( );
CFrameWnd-----鍙栦唬WndProc鐨勫湴浣?
CFrameWnd涓昏鐢ㄦ潵鎺屾彙涓涓獥鍙?BR> 寮曠垎鍣?-----Application object
褰撴墽琛孒ello紼嬪簭鏃訛紝榪欎釜鍏ㄥ眬瀵硅薄浜х敓錛屼簬鏄瀯閫犲嚱鏁幫紙瑙丄PPCORE.CPP錛夋墽琛岃搗鏉ワ紝CWinApp涔嬩腑鐨勬垚鍛樺彉閲忓皢鍥犱負榪欎釜鍏ㄥ眬瀵硅薄鐨勮癁鐢熻岃幏寰楅厤緗笌鍒濆鹼紝閰嶇疆瀹屾垚鍚庯紝WinMain錛圡FC鏃╁凡鍑嗗濂斤紝騫剁敱閾炬帴鍣ㄧ洿鎺ュ姞鍒板簲鐢ㄧ▼搴忎腑鍘葷殑錛夌櫥鍦恒?
AfxWinInit錛氭槸緇WinApp鏋勯犲嚱鏁頒箣鍚庣殑絎竴涓搷浣滐紱
姝ゅ悗鐨勬搷浣滄槸pApp->InitApplication(鍏朵腑鐨刾App鎸囧悜CMyWinApp瀵硅薄錛屽嵆鏈緥涓殑theApp)錛屽洜涓篊MyWinApp緇ф壙鑷狢WinApp錛岃孖nitApplication鍙堟槸CWinApp鐨勪竴涓櫄鎷熷嚱鏁幫紝鎴戜滑娌℃湁鏀瑰啓瀹冿紙澶ч儴鍒嗘儏鍐典笅涔熶笉闇瑕佹敼瀹冿級錛屾墍浠ヤ笂榪版搷浣滅浉褰撲簬璋冪敤CWinApp錛氾細InitApplication銆傛紼嬪簭鐨勪唬鐮佸嚭鐜板湪APPCORE.CPP涓紱
緇nitApplication涔嬪悗錛孉fxWinMain璋冪敤pApp->InitInstance錛孖nitInstance鏄疌WinApp鐨勪竴涓櫄鎷熷嚱鏁幫紙搴旂敤紼嬪簭涓瀹氳鏀瑰啓榪欎釜鍑芥暟錛屽洜涓哄畠鍦–WinApp涓槸涓┖鍑芥暟錛屾病鏈変換浣曢粯浠繪搷浣滐級錛屾垜浠敼鍐欎簡瀹冿紝鎵浠ヤ笂榪版搷浣滃氨鏄皟鏈夋垜浠嚜宸辯殑榪欎釜InitInstance鍑芥暟錛屾垜浠皢鍦ㄨ澶勫睍寮鎴戜滑鐨勪富紿楀彛鐢熷懡銆?
CMyWinApp錛氾細InitInstance涓寮濮媙ew浜嗕竴涓狢MyFrameWnd瀵硅薄錛宯ew浼氬紩鍙戞瀯閫犲嚱鏁癈myFrameWnd錛氾細CMyFrameWnd錛屽叾涓皟鐢ㄤ簡CFrameWnd鐨勬垚鍛樺嚱鏁癈reate錛屽畠?yōu)畣漶旂敓涓涓獥鍙c?
Create鍑芥暟鍏卞叓涓弬鏁幫紝絎竴涓紝鎸囧畾WNDCLASS紿楀彛綾伙紝濡傛灉鏀劇疆NULL錛岃〃紺鴻浠FC鍐呭緩鐨勭獥鍙g被浜х敓涓涓爣鍑嗙殑澶栨紿楀彛錛圕reate鍑芥暟鍦ㄤ駭鐢熺獥鍙d箣鍓嶄細寮曞彂紿楀彛綾葷殑娉ㄥ唽鎿嶄綔錛屼笅涓孌佃榪拌繖涓鍐呭錛夛紱絎簩涓紝鎸囧畾紿楀彛鏍囬錛涚涓変釜錛屾寚瀹氱獥鍙i鏍鹼紝榛樿鏄疻S-OVERLAPPEDWINDOW錛屽鏋滀綘涓嶆兂瑕佺獥鍙e彸涓婅鐨勬瀬澶ф瀬灝忛挳錛屽彲浠ユ敼鎴怶S-OVERLAPPED|WS-CAPTION|WS-SYSMENU|WS-THICKFRAME|WS-MINIMIZEBOX|WS-MAXIMIZEBOX錛屽鏋滃笇鏈涙湁鍨傜洿婊氬姩鏉★紝鍐嶅姞涓奧S-VSCROLL錛涚鍥涗釜鍙傛暟錛屾寚瀹氱獥鍙g殑浣嶇疆涓庡ぇ灝忥紝榛樿鍊紃ectDefault
錛涚浜斾釜錛屾寚瀹氱埗紿楀彛錛岀鍏釜鎸囧畾鑿滃崟錛涚涓冧釜錛屼負鎵╁厖椋庢牸錛屽敮鏈変互錛欳reateWindowEx(鑰岄潪錛欳reateWindow)鍑芥暟鎵嶈兘瀹屾垚錛屼簨瀹炰笂錛孋FrameWnd錛欳reate鏈緇堣皟鐢ㄧ殑姝f槸錛欳reateWindowEx錛涚鍏釜錛屾槸涓涓寚鍚慍CreateContext緇撴瀯鐨勬寚閽堬紝framework鍒╃敤瀹冿紝鍦ㄥ叿澶嘍ocument/View緇撴瀯鐨勭▼搴忎腑鍒濆鍖栧妗嗙獥鍙o紝榛樿鍊糔ULL
CFrameWnd錛欳reate鍦ㄥ嚱鏁頒腑璋冪敤CreateEx錛圕Wnd鏈夎繖涓垚鍛樺嚱鏁幫紝浣嗗叾媧劇敓綾籆FrameWnd騫舵病鏈夛紝鎵浠ヨ繖閲岃皟鐢ㄧ殑瀹為檯涓婃槸CWnd錛欳reateEx錛夛紱鍚庤呭張璋冪敤PreCreateWindow铏氭嫙鍑芥暟錛堝畠鍦–Wnd鍙婂叾媧劇敓綾籆FrameWnd閮芥湁瀹氫箟錛屾墍浠ュ疄闄呬笂璋冪敤鐨勬槸CFrameWnd錛氾細PreCreateWindow錛夛紝榪欎釜鍑芥暟璋冪敤浜咥fxDeferRegisterClass瀹忥紝瀹冭〃紺哄鏋滃彉閲廰fxRegisteredClass鐨勫兼樉紺虹郴緇熷凡緇忔敞鍐屼簡fClass
榪欑紿楀彛綾伙紝MFC鍟ヤ篃涓嶅仛錛屽惁鍒欏氨璋冪敤AfxEndDeferRegisterClass(fClass){瀹冭皟鐢ㄤ袱涓嚱鏁板畬鎴愬疄闄呯殑紿楀彛綾繪敞鍐屾搷浣滐紝涓涓槸RegisterWithIcon錛屼竴涓槸AfxRegisterClass}錛屽噯澶囨敞鍐屼箣銆?
紿楀彛鏄劇ず涓庢洿鏂?BR> CMyFrameWnd錛氾細CMyFrameWnd緇撴潫鍚庯紝紿楀彛宸茬粡璇炵敓鍑烘潵錛涚▼搴忓張鍥炲埌CMyWinApp錛氾細InitInstance錛屼簬鏄皟鐢⊿howWindow鍑芥暟浠ょ獥鍙f樉紺哄嚭鏉ワ紝騫惰皟鐢║pdateWindow鍑芥暟浠ello紼嬪簭閫佸嚭WM-PAINT
CWinApp錛氾細Run----紼嬪簭鐢熷懡鐨勬椿姘存簮澶?
Run鍙堟槸CWinApp鐨勪竴涓櫄鎷熷嚱鏁幫紝鎴戜滑娌℃湁鏀瑰啓瀹冿紙澶ч儴鍒嗘儏鍐典笅涔熶笉闇瑕佹敼瀹冿級錛屾墍浠ヤ笂榪版搷浣滅浉褰撲簬璋冪敤CWinApp錛氾細Run
WinMain宸茬敱MFC鎻愪緵錛岀獥鍙g被宸茬敱MFC娉ㄥ唽瀹屾垚錛岃繛紿楀彛鍑芥暟涔熼兘鐢盡FC鎻愪緵
鎶婃秷鎭笌澶勭悊鍑芥暟榪炴帴鍦ㄤ竴璧鳳細Message Map鏈哄埗
MFC鎻愪緵緇欏簲鐢ㄧ▼搴忎嬌鐢ㄧ殑鈥滃緢鏂逛究鐨勬帴鍙b濇槸涓ょ粍瀹忥紝浠ello涓轟緥錛岀涓涓搷浣滄槸鍦℉ello.h鐨凜MyFrameWnd鍔犱笂DECLARE-MESSAGE-MAP錛涚浜屼釜鎿嶄綔鏄湪Hello.cpp鐨勪換浣曚綅緗紙褰撶劧涓嶈兘鍦ㄥ嚱鏁板唴錛変嬌鐢ㄥ畯
BEGIN_MESSAGE_MAP(CMyFrameWnd, CFrameWnd)
ON_COMMAND(IDM_ABOUT, OnAbout)
ON_WM_PAINT()
END_MESSAGE_MAP()
鏉ラ緳鍘昏剦鎬繪暣鐞?
紼嬪簭鐨勮癁鐢?
Application object 浜х敓錛?鍐呭瓨浜庢槸鑾峰緱閰嶇疆錛屽垵鍊間害璁劇珛浜嗐?
AfxWinMain鎵цAfxWinInit錛屽悗鑰呭張璋冩湁AfxInitThread錛屾妸娑堟伅闃熷垪灝介噺鍔?
澶у埌96
AfxWinMain鎵цInitApplication銆傝繖鏄疌WinApp鐨勮櫄鎷熷嚱鏁幫紝鎴戜滑閫氬父涓嶆敼鍐欏畠
AfxWinMain鎵цInitInstance銆傝繖鏄疌WinApp鐨勮櫄鎷熷嚱鏁幫紝鎴戜滑蹇呴』鏀瑰啓瀹?
CMyWinApp錛氾細InitInstance 鈥渘ew鈥濅簡涓涓狢MyFrameWnd瀵硅薄
CmyFrameWnd鏋勯犲嚱鏁拌皟鐢–reate錛屼駭鐢熶富紿楀彛銆傛垜浠湪Create鍙傛暟涓寚瀹氱殑紿楀彛綾繪槸NULL錛屼簬鏄疢FC鏍規(guī)嵁紿楀彛縐嶇被錛岃嚜琛屼負鎴戜滑娉ㄥ唽涓涓悕涓衡淎fxFrameOrView42d鈥濈殑紿楀彛綾匯?
鍥炲埌InitInstance涓戶緇墽琛孲howWindow錛屾樉紺虹獥鍙?
鎵цUpdateWindow錛屼簬鏄彂鍑篧M-PAINT
鍥炲埌AfxWinMain錛屾墽琛孯un錛岃繘鍏ユ秷鎭驚鐜?
紼嬪簭寮濮嬭繍琛岋細
紼嬪簭鑾峰緱WM-PAINT娑堟伅錛堢敱CWinApp錛氾細Run涓殑錛氾細GetMessage寰幆錛?
WM-PAINT緇忕敱錛氾細DispatchMessage閫佸埌紿楀彛鍑芥暟CWnd::DefWindowProc涓?
CWnd::DefWindowProc灝嗘秷鎭紶閫掑埌娑堟伅鏄犲皠琛ㄦ牸
浼犻掕繃紼嬩腑鍙戠幇鏈夌浉絎﹂」鐩紝浜庢槸璋冪敤欏圭洰涓搴旂殑鍑芥暟銆傛鍑芥暟鏄埄鐢˙EGIN_MESSAGE_MAP鍜孍ND_MESSAGE_MAP涔嬮棿鐨勫畯璁劇珛璧鋒潵鐨勩?
鏍囧噯娑堟伅鐨勫鐞嗙▼搴忎害鏈夋爣鍑嗗懡鍚嶏紝渚嬪WM-PAINT蹇呯敱O(jiān)nPaint澶勭悊
紼嬪簭鐨勬浜★細
浣跨敤鑰呭崟鍑籉ile/Close錛屼簬鏄彂鍑篧M-CLOSE
CMyFrameWnd騫舵病鏈夎緗甒M-CLOSE澶勭悊紼嬪簭錛屼簬鏄氦緇欓粯璁ょ殑澶勭悊紼嬪簭
榛樿鍑芥暟瀵逛簬WM-CLOSE鐨勫鐞嗘柟寮忔槸璋冪敤錛氾細DestroyWindow錛屽茍鍥犺屽彂鍑篧M-DESTROY
榛樿鐨刉M-DESTROY澶勭悊鏂瑰紡鏄皟鐢細錛歅ostQuitMessage錛屽洜姝ゅ彂鍑篧M-QUIT
CWinApp::Run鏀跺埌WM-QUIT鍚庝細緇撴潫鍐呴儴涔嬫秷鎭驚鐜紝鐒跺悗璋冪敤ExitInstance錛岃繖鏄疌WinApp鐨勪竴涓櫄鎷熷嚱鏁幫紱濡傛灉CMyWinApp鏀瑰啓浜咵xitInstance錛岄偅涔圕WinApp::Run鎵璋冪敤鐨勫氨鏄疌MyWinApp錛氾細ExitInstance錛屽惁鍒欏氨鏄疌WinApp錛氾細ExitInstance
鏈鍚庡洖鍒癆fxWinMain錛屾墽琛孉fxWinTerm錛岀粨鏉熺▼搴?
闄凥ello紼嬪簭閮ㄥ垎浠g爜錛?
Hello.cpp
#include "Stdafx.h"
#include "Hello.h"
#include "Resource.h"
CMyWinApp theApp; // application object
//--------------------------------------------------------------------
// CMyWinApp's member
//--------------------------------------------------------------------
BOOL CMyWinApp::InitInstance()
{
m_pMainWnd = new CMyFrameWnd();
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return TRUE;
}
//--------------------------------------------------------------------
// CMyWinApp's member
//--------------------------------------------------------------------
BOOL CMyWinApp::OnIdle(LONG lCount)
{
CMyFrameWnd* pWnd = (CMyFrameWnd*)m_pMainWnd;
pWnd->IdleTimeHandler(lCount);
return TRUE;
}
//--------------------------------------------------------------------
// CMyFrameWnd's member
//--------------------------------------------------------------------
CMyFrameWnd::CMyFrameWnd()
{
Create(NULL, "Hello MFC", WS_OVERLAPPEDWINDOW, rectDefault,
NULL, "MainMenu"); }
//--------------------------------------------------------------------
BEGIN_MESSAGE_MAP(CMyFrameWnd, CFrameWnd)
ON_COMMAND(IDM_ABOUT, OnAbout)
ON_WM_PAINT()
END_MESSAGE_MAP()
//--------------------------------------------------------------------
void CMyFrameWnd::OnPaint()
{
CPaintDC dc(this);
CRect rect;
GetClientRect(rect);
dc.SetTextAlign(TA_BOTTOM | TA_CENTER);
::LineDDA(rect.right/2, 0, rect.right/2, rect.bottom/2,
(LINEDDAPROC) LineDDACallback, (LPARAM) (LPVOID) &dc);
}
//--------------------------------------------------------------------
VOID CALLBACK CMyFrameWnd::LineDDACallback(int x, int y, LPARAM
lpdc)
{
static char szText[] = "Hello, MFC";
((CDC*)lpdc)->TextOut(x, y, szText, sizeof(szText)-1);
for(int i=1; i<50000; i++);
}
//--------------------------------------------------------------------
void CMyFrameWnd::OnAbout()
{
CDialog about("AboutBox", this); // "AboutBox"
about.DoModal();
}
//--------------------------------------------------------------------
void CMyFrameWnd::IdleTimeHandler(LONG lCount)
{
CString str;
CRect rect(10,10,200,30);
CDC* pDC = new CClientDC(this);
str.Format("%010d", lCount);
pDC->DrawText(str, &rect, DT_LEFT | DT_TOP);
}
Hello.h
class CMyWinApp : public CWinApp
{
public:
virtual BOOL InitInstance(); //
virtual BOOL OnIdle(LONG lCount); // OnIdle e?^
};
//--------------------------------------------------------------------
class CMyFrameWnd : public CFrameWnd
{
public:
CMyFrameWnd(); // constructor
afx_msg void OnPaint(); // for WM_PAINT
afx_msg void OnAbout(); // for WM_COMMAND (IDM_ABOUT)
void IdleTimeHandler(LONG lCount); // we want it call by
CMyWinApp::OnIdle
private:
DECLARE_MESSAGE_MAP() // Declare Message Map
static VOID CALLBACK LineDDACallback(int,int,LPARAM);
//?C
};
銆婃繁鍏ユ祬鍑篗FC銆嬪涔犵瑪璁頒箣涓
浣滆咃細XGM RRC.BIT 璁頒簬2001-8-10
銆
銆
榫氬緩浼熻瘎錛氳繖綃囧涔犵瑪璁拌櫧鐒朵笉鏄郴緇熺殑闃愯堪鏌愪釜闂錛屼絾璇繪潵璁╀漢鎰熷埌鏀惰幏涓嶅皬錛屾棤璁轟綘鏄侀笩榪樻槸鑿滈笩錛岄兘浼氳鍚岀殑銆傛垜甯屾湜XGM鑳藉緇х畫鍐欎笅鍘伙紝鐪嬩簡銆婃繁鍏ユ祬鍑篗FC銆嬪啀鏉ョ湅榪欎簺絎旇錛屼篃鏈夋俯鏁呯煡鏂頒箣鎰?BR> 淇熸澃鍏堢敓鐨勩婃繁鍏ユ祬鍑篗FC銆嬫槸涓鏈ソ涔︼紝鏈漢鏄綔涓烘湁涓瀹欳++鍩虹鐭ヨ瘑騫跺VC鏈変竴鐐規(guī)劅鎬ц璇嗙殑VC鍒濆鑰呮潵鎺ヨЕ榪欐湰涔︾殑銆傚簲璇ヨ榪欐湰涔﹀茍涓嶇湡姝i傚悎鍍忔垜榪欐牱鐨勫垵瀛﹁咃紝浣嗛氳瀹岃涔︼紝榪樻槸鏈変竴浜涙敹鑾風殑錛岀幇鍙暣鐞嗗叾涓殑涓閮ㄥ垎錛屼綔涓烘垜鐨勪竴涓涔犵瑪璁板惂銆?BR> 1. 瀹夎VC++錛屼負浠涔堣鍏堝畨瑁匢nternet
Explorer錛燂紙鏄笉鏄緢澶氳侀笩涔熶笉鐭ラ亾鍟婏紝渚繆鏉板厛鐢熺殑瀹楁棬灝辨槸鐭ュ叾鐒訛紝榪樿鐭ュ叾鎵浠ョ劧錛?555555555 鈥︹︹︹︼級
鍥犱負寰蔣鐨勬墍鏈塚isual Tools(鍖呮嫭Visual C++銆乂isual Basic銆乂isual FoxPro銆乂isual
J++銆乂isual InterDev絳?閮介泦涓敱鎵璋撶殑Visual Studio
綆$悊錛岃岃繖浜涘伐鍏鋒湁涓涓瀬澶х殑鐩爣錛屽氨鏄鍗忓姪寮鍙慖nternet搴旂敤杞歡錛屾墍浠ュ畠浠笇鏈涜兘澶熷拰IE鏈夋墍鎼厤銆?BR> 2. SDK錛歋oftware Development Kit 鍘熸寚杞歡寮鍙戝伐鍏鳳紝浣嗙幇鍦ㄥ凡緇忓彉鎴愪簡涓涓笓鏈夊悕璇嶏紝鍑′互Windows
raw API鎾板啓鐨勭▼搴忛氬父涔熺О涓篠DK紼嬪簭銆備篃鏈変漢鎶奧indows API縐頒負SDK API銆?BR> 3.
涓嶅悓縐嶇被涔嬪璞$殑鏋勯犲嚱鏁幫紙瀵硅薄璇炵敓鍚庣涓涓墽琛屽茍涓旀槸鑷姩鎵ц鐨勫嚱鏁幫級鍙婃瀽鏋勫嚱鏁幫紙瀵硅薄琛屽皢姣佺伃錛屼絾鏈瘉鐏箣鍓嶄竴鍒伙紝鏈鍚庢墽琛屽茍涓旇嚜鍔ㄦ墽琛岀殑鍑芥暟錛夋墽琛屾椂鏈哄姣斿涓嬶細
鍏ㄥ眬瀵硅薄灞閮ㄥ璞¢潤鎬佸璞′互new浜х敓鐨勫璞?BR> 鏋勯犲嚱鏁扮▼搴忎竴寮濮嬪氨鎵ц錛堟瘮紼嬪簭榪涘叆鐐規(guī)洿鏃╋級瀵硅薄璇炵敓鏃舵墽琛?BR> 鏋愭瀯鍑芥暟紼嬪簭鍗沖皢緇撴潫鏃舵墽琛岀▼搴忔祦紼嬬寮璇ュ璞$殑瀛樻椿鑼冨洿鏃舵墽琛岀▼搴忓皢緇撴潫鏃舵墽琛岋紝浣嗘瘮鍏ㄥ眬瀵硅薄鐨勬瀽鏋勫嚱鏁版棭涓姝ヨ繘琛屻傚璞¤delete鏃舵墽琛?/P>
4. C++騫朵笉鏄函縐嶇殑闈㈠悜瀵硅薄璇█錛圫mallTalk 鍜?
Java鎵嶆槸錛夈傛墍浠ワ紝MFC涔嬩腑寰椾互瀛樺湪鏈変笉灞炰簬浠諱綍綾葷殑鍏ㄥ眬鍑芥暟錛屽畠浠粺緇熷湪鍑芥暟鍚嶇О寮澶村啝浠fx錛坸騫舵病鏈変粈涔堟剰鎬濓紝鍙槸涓轟簡鍑戞垚涓涓搷浜殑鍚嶅瓧錛孉f鍗矨pplication
Framework錛?BR> 涓嬮潰鏄父瑙佺殑Afx鍏ㄥ眬鍑芥暟錛?BR> AfxBeginThread錛氬紑濮嬩竴涓柊鐨勭嚎紼?BR> AfxEndThread錛氱粨鏉熶竴涓棫鐨勭嚎紼?BR> AfxFormatString1錛氱被浼紁rintf涓鑸湴灝嗗瓧絎︿覆鏍煎紡鍖?BR> AfxFormatString2錛氱被浼紁rintf涓鑸湴灝嗗瓧絎︿覆鏍煎紡鍖?BR> AfxMessageBox錛氱被浼糤indows API 鍑芥暟 MessageBox
AfxOuputDebugString錛氬皢瀛楃涓茶緭寰闄ら敊瑁呯疆
AfxGetApp錛氳幏寰梐pplication object (CwinApp媧劇敓瀵硅薄)鐨勬寚閽?BR> AfxGetMainWnd錛氳幏寰楃▼搴忎富紿楀彛鐨勬寚閽?BR> AfxGetInstance錛氳幏寰楃▼搴忕殑instance handle
5. MFC鏁版嵁綾誨瀷
涓嬮潰榪欎簺鏄拰Win32紼嬪簭鍏卞悓浣跨敤鐨勬暟鎹被鍨?BR> BOOL錛氬竷?yōu)當鍊鹼紝鍙栧間負TRUE or FALSE
BSTR錛?2-bit 瀛楃鎸囬拡
BYTE錛?-bit鏁存暟錛屾湭甯︽璐熷彿
COLORREF錛?2-bit鏁板鹼紝浠h〃涓涓鑹插?BR> DWORD錛?2-bit鏁存暟錛屾湭甯︽璐熷彿
LONG錛?2-bit鏁存暟錛屽甫姝h礋鍙?BR> LPARAM錛?2-bit鏁存暟錛屼綔涓虹獥鍙e嚱鏁版垨callback鍑芥暟鐨勪竴涓弬鏁?BR> LPCSTR錛?2-bit鎸囬拡錛屾寚鍚戜竴涓父鏁板瓧絎︿覆
LPSTR錛?2-bit鎸囬拡錛屾寚鍚戜竴涓瓧絎︿覆
LPCTSTR錛?2-bit鎸囬拡錛屾寚鍚戜竴涓父鏁板瓧絎︿覆錛屾瀛楃涓插彲浠ョЩ妞嶅埌Unicode鍜孌BCS
LPTSTR錛?2-bit鎸囬拡錛屾寚鍚戜竴涓瓧絎︿覆錛屾瀛楃涓插彲浠ョЩ妞嶅埌Unicode鍜孌BCS
LPVOID錛?2-bit鎸囬拡錛屾寚鍚戜竴涓湭鎸囧畾綾誨瀷鐨勬暟鎹?BR> LPRESULT錛?2-bit鏁板鹼紝浣滀負紿楀彛鍑芥暟鎴朿allback鍑芥暟鐨勮繑鍥炲?BR> UINT錛氬湪Win16涓槸涓涓?6-bit 鏈甫姝h礋鍙鋒暣鏁幫紝鍦╓in32涓槸涓涓?2-bit 鏈甫 姝h礋鍙鋒暣鏁幫紝
WNDPROC錛?2-bit鎸囬拡錛屾寚鍚戜竴涓獥鍙e嚱鏁?BR> WORD錛?6-bit 鏁存暟 錛屾湭甯︽璐熷彿
WPARAM錛氱獥鍙e嚱鏁版垨callback鍑芥暟鐨勪竴涓弬鏁幫紝鍦╓in16涓槸16-bit錛屽湪Win32涓槸32-bit
涓嬮潰榪欎簺鏄疢FC鐙壒鐨勬暟鎹被鍨?BR> POSITION錛氫竴涓暟鍊鹼紝浠h〃collection瀵硅薄錛堜緥濡傛暟緇勬垨閾捐〃錛変腑鐨勫厓绱犱綅緗紝甯?鐢ㄤ簬MFC collection
classes錛堝嵆鏁版嵁澶勭悊綾伙紝濡侰Array錛?BR> LPCRECT錛?2-bit鎸囬拡錛屾寚鍚戜竴涓笉鍙樼殑RECT緇撴瀯
6. 濂囨殑紿楀彛綾誨悕縐癆fx:b:14ae:6:3e8f
鐢⊿py++錛圴C++鎵闄勭殑涓涓伐鍏鳳級瑙傚療紿楀彛綾葷殑鍚嶇О鏃訛紝浼氬彂鐜扮獥鍙g被鍚嶇О鍙樻垚鍍廇fx:b:14ae:6:3e8f榪欏壇濂囨殑妯℃牱錛?BR> 鍘熸潵鏄疉pplication Framework 鎶婄獥鍙g被鐨勫悕縐拌漿鎹負Afx:錛?x 錛歽 錛歾 錛歸鐨勭被鍨嬶紝鎴愪負鐙竴鏃犱簩鐨勭獥鍙g被鍨嬪悕縐幫細
x錛氱獥鍙i鏍肩殑hex鍊?BR> y錛氱獥鍙i紶鏍囧厜鏍囩殑hex鍊?BR> z錛氱獥鍙e悗鍙伴鑹茬殑hex鍊?BR> w錛氱獥鍙e浘鏍囩殑hex鍊?BR> 7. Serializable 鐨勫繀瑕佹潯浠?BR> 璁╀竴涓璞℃湁Serializable鑳藉姏錛屽畠蹇呴』媧劇敓鑷竴涓猄erializable綾伙紝涓涓被瑕佹垚涓篠erializable錛屽繀欏繪湁涓嬪垪浜斿ぇ鏉′歡錛?BR> 錛?錛変粠Cobject媧劇敓涓嬫潵錛屽姝や竴鏉ワ紝鍙繚鏈塕TTI銆佸姩鎬佺敓鎴愮瓑鏈鴻兘
錛?錛夌被鐨勫0鏄庨儴鍒嗗繀欏繪湁DECLARE_SERIAL瀹忥紝姝ゅ畯闇瑕佷竴涓弬鏁幫細綾誨悕縐?BR> 錛?錛夌被鐨勫疄浣滈儴鍒嗗繀欏繪湁IMPLEMENT_SERIAL瀹忥紝姝ゅ畯闇瑕佷笁涓弬鏁幫細涓鏄被鍚嶇О錛屼簩鏄熀綾誨悕縐幫紝涓夋槸 schema no.
錛?錛夋敼鍐橲erialize铏氭嫙鍑芥暟錛屼嬌瀹冭兘澶熼傚綋鍦版妸綾葷殑鎴愬憳鍙橀噺鍐欏叆妗f涓?BR> 錛?錛変負姝ょ被鍔犱笂涓涓猟efault鏋勯犲嚱鏁幫紙涔熷氨鏄棤鍙傛暟涔嬫瀯閫犲嚱鏁幫級錛岃繖涓潯浠跺父涓轟漢鎵蹇界暐錛屼絾瀹冩槸蹇呰鐨勶紝鍥犱負鑻ヤ竴涓璞℃潵鑷。妗堬紝MFC蹇呴』鍏堝姩鎬佺敓鎴愬畠錛岃屼笖鍦ㄦ病鏈変換浣曞弬鏁扮殑鎯呭喌涓嬭皟鐢ㄥ叾鏋勯犲嚱鏁幫紝鐒跺悗鎵嶄粠妗f涓鍑哄璞℃暟鎹?BR>
鍞夛紝濂戒笢涓滃疄鍦ㄥお澶氫簡錛屾瘮濡傚MFC鍏ぇ鍏抽敭鎶鏈箣浠跨湡錛屼笁澶у畯鐨勫唴閮ㄦ彮瀵嗙瓑絳夛紙鍜︼紝鎴戜笉鏄湪鎺ㄩ攢榪欐湰涔﹀惂錛屽懙鍛碉級鎰熷叴瓚g殑璇濊鐪嬬湅榪欐湰涔﹀惂錛屽彲浠ユ壘鎴戝熷摝錛屾墍璋撯滀功闈炲熶笉鑳借涔熲濄傚懙鍛碘︹︹?/P>