锘??xml version="1.0" encoding="utf-8" standalone="yes"?> AppFace For VC 鏀寔Win9X/NT/2K/XP,UNICODE/ANSI,鑳藉瀵圭洰鏍囪繘紼嬮噷鐨勬墍鏈?span>Widows鏍囧噯鎺т歡,緋葷粺鑿滃崟,閫氱敤瀵硅瘽妗嗙瓑瀹炵幇鎹㈣偆錛屽闈炲晢涓氱敤閫旇岃█錛屽畠鏄畬鍏ㄥ厤璐圭殑銆傚叧閿殑鏄?span>AppFace鐨勪嬌鐢ㄩ潪甯哥畝鍗?span>,寰堝鏄撴坊鍔犲埌宸叉湁鐨勫伐紼嬩腑銆傚彲浠ュ埌瀹冪殑緗戠珯 http://www.appface.com 鍘諱笅杞芥渶鏂扮増鏈?銆? 棣栧厛錛岃紜繚浣犱笅杞戒簡AppFace for VC 寮鍙戝寘錛屾垜浠鐢ㄥ埌鍏朵腑鐨勪笁涓枃浠?span>: "appface.h", "appface.dll" ,"gtclassic.urf" 銆?/p>
鎺ョ潃錛屽垱寤轟竴涓?span> VC 鍙墽琛屾枃浠跺伐紼?span>, MDI/SDI/DIALOG/WIN32 綾誨瀷鐨勯兘鍙互,鎴戜互鍒涘緩涓涓?span>DIALOG 宸ョ▼ ResSkin 榪涜璇存槑 銆傚皢"appface.h" 鎷瘋礉鍒拌宸ョ▼鐩綍涓?span>,灝?span>"Appface.dll"鎷瘋礉鍒拌宸ョ▼鐨勮緭鍑虹洰褰曚笅,渚嬪:"debug\",灝?span>"gtclassic.urf"鎷瘋礉鍒拌祫婧愭墍鍦ㄧ洰褰曚笅銆傚湪VC 鐨勯」鐩鐞嗗櫒涓繘鍏ヨ祫婧愮鐞嗛」,鍦ㄥ彸閿彍鍗曚腑閫夋嫨"Import",灝?span>"gtclassic.urf"娣誨姞榪涘伐紼?span>,璧勬簮綾誨瀷璁懼畾涓?span>: "MYRESTYPE",璧勬簮ID璁懼畾涓?span>"IDR_MY_URF"銆傛敞鎰?span>:璧勬簮ID 鍓嶉潰涓瀹氳鍔犲弻寮曞彿 銆? CResSkinApp::InitInstance() CResSkinDlg dlg; ... } 緙栬瘧... 涓鍒囨悶瀹?span> ! 3. 涓婇潰鏄畼鏂圭殑鍋氭硶,鐢變簬appface 涔熸敮鎸佷粠鍐呭瓨涓姞杞?span>urf,鎵浠ユ偍涔熷彲浠ヨ繖鏍峰仛: CResSkinApp::InitInstance() //Load CResSkinDlg dlg; ... } { x++; //鍏ㄥ眬鍙橀噺錛?/span>static int x=3; int x1; x1=x%3; if(x1==1) { CAppFace af ; af.Start(_T("IDR_MY_URF1"),GTP_LOAD_RESOURCE,NULL,_T("MYTYPE"),NULL) ; this->MoveWindow(81,75,870,602); } if(x1==2) { CAppFace af ; af.Start(_T("IDR_MY_URF2"),GTP_LOAD_RESOURCE,NULL,_T("MYTYPE"),NULL) ; this->MoveWindow(81,75,854,595); } if(x1==0) { CAppFace af ; af.Start(_T("IDR_MY_URF"),GTP_LOAD_RESOURCE,NULL,_T("MYTYPE"),NULL) ; this->MoveWindow(81,75,865,602); } }
闃呰鍏ㄦ枃
AppFace 鏀寔涓夌鐨偆鍔犺澆鏂瑰紡,浠庣鐩樻枃浠跺姞杞斤紝浠庤祫婧愬姞杞斤紝浠庡唴瀛樺姞杞姐備笅闈㈡垜灝辮璇村浣曚粠璧勬簮鍔犺澆URF鐨偆鏂囦歡:
鍑嗗宸ヤ綔鍏ㄩ儴瀹屾垚浜?span>,鐜板湪榪涘叆姝i:
1.鍦?span>ResSkin.cpp 涓姞鍏?span>: #include "appface.h"
2.鍦?span>CResSkinApp::InitInstance() 鎴愬憳鍑芥暟涓坊鍔犲涓嬩唬鐮?
{
...
CAppFace af ; //line 1
af.Start(_T("IDR_MY_URF"),GTP_LOAD_RESOURCE,NULL,_T("MYTYPE"),NULL) ; //line 2
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
af.Remove() ; //line 3
{
...
CAppFace af ; //Init
if(HRSRC hr = ::FindResource(NULL,"IDR_MY_URF","MYTYPE"))
{
ULONG nResSize = ::SizeofResource(NULL,hr) ;
if(HGLOBAL hz = ::LoadResource(NULL,hr))
{
char* p = (char*)LockResource(hz);
if(p)
af.Start(p,GTP_LOAD_MEMORY,nResSize,NULL,NULL) ;
}
}
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
af.Remove() ; //Release
浣犲彲浠ヤ嬌鐢ㄨ繖縐嶆柟娉曚粠璧勬簮涓姞杞藉叾瀹冩暟鎹?/p>
闇瑕佹敞鎰忕殑鏄?span>: 濡傛灉灝?span>URF娣誨姞榪涜祫婧愭椂,璧勬簮ID娌℃湁鐢ㄥ弻寮曞彿鎷搗鏉?span>, 鍔犺澆鏃跺繀欏昏繖鏍峰啓:
af.Start(_T("IDR_MY_URF"),GTP_LOAD_RESOURCE,NULL,MAKEINTRESOURCE(_T("MYTYPE")),NULL)) ; //line 2
娣誨姞“鎹㈢毊鑲?span>“鎸夐挳
娣誨姞涓涓?span>Button錛屾秷鎭搷搴斿嚱鏁板涓?span>
void CChatDlg::OnButton2()
BOOL涓篿nt鍨?
bool涓哄竷灝斿瀷
2銆侀暱搴︿笉鍚?
bool鍙湁涓涓瓧鑺?
BOOL闀垮害瑙嗗疄闄呯幆澧冩潵瀹氾紝涓鑸彲璁や負鏄?涓瓧鑺?
3銆佸彇鍊間笉鍚?
bool鍙栧糵alse鍜宼rue錛屾槸0鍜?鐨勫尯鍒?
BOOL鍙栧糉ALSE鍜孴RUE錛屾槸0鍜岄潪0鐨勫尯鍒?
浜岋細
bool鏄爣鍑咰++鏁版嵁綾誨瀷錛屽彲鍙栧紅rue鍜宖alse銆傚崟鐙崰涓涓瓧鑺傦紝
濡傛灉鏁頒釜bool瀵硅薄鍒楀湪涓璧鳳紝鍙兘浼氬悇鍗犱竴涓猙it錛岃繖鍙栧喅浜庣紪璇戝櫒銆?
BOOL鏄井杞畾涔夌殑typedef int BOOL銆備笌bool涓嶅悓錛屽畠鏄竴涓笁鍊奸昏緫錛?
TRUE/FALSE/ERROR錛岃繑鍥炲間負>0鐨勬暣鏁頒負TRUE錛?涓篎ALSE錛?1涓篍RROR銆?
Win32 API涓緢澶氳繑鍥炲間負BOOL鐨勫嚱鏁伴兘鏄笁鍊奸昏緫銆傛瘮濡侴etMessage().
涓夛細
澶OOL鍜屽皬bool涔嬮棿鐨勫尯鍒細
1銆佺被鍨嬩笉鍚?
BOOL涓篿nt鍨?
bool涓哄竷灝斿瀷
2銆侀暱搴︿笉鍚?
bool鍙湁涓涓瓧鑺?
BOOL闀垮害瑙嗗疄闄呯幆澧冩潵瀹氾紝涓鑸彲璁や負鏄?涓瓧鑺?
3銆佸彇鍊間笉鍚?
bool鍙栧糵alse鍜宼rue錛屾槸0鍜?鐨勫尯鍒?
BOOL鍙栧糉ALSE鍜孴RUE錛屾槸0鍜岄潪0鐨勫尯鍒?
4銆佷緥瀛?
bool x=3; //鍛婅
bool x=1; //姝g‘
BOOL x=3; //姝g‘
BOOL x=3.3; //鍛婅
娉細windows涓轟簡鍏煎闂瀹氫箟鐨勫熀紜鍙橀噺銆?
typedef unsigned long DWORD;
typedef int BOOL;
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef float FLOAT;
typedef FLOAT *PFLOAT;
typedef BOOL near *PBOOL;
typedef BOOL far *LPBOOL;
typedef BYTE near *PBYTE;
typedef BYTE far *LPBYTE;
typedef int near *PINT;
typedef int far *LPINT;