锘??xml version="1.0" encoding="utf-8" standalone="yes"?> -------------
1銆佹樉紺虹殑鍥懼艦涓轟粈涔堜細(xì)闂儊錛?br />聽聽聽鎴戜滑鐨勭粯鍥捐繃紼嬪ぇ澶氭斁鍦∣nDraw鎴栬匫nPaint鍑芥暟涓紝OnDraw鍦ㄨ繘琛屽睆騫曟樉紺烘椂鏄敱O(jiān)nPaint榪涜璋冪敤鐨勩傚綋紿楀彛鐢變簬浠諱綍鍘熷洜闇瑕侀噸緇樻椂錛屾繪槸鍏堢敤鑳屾櫙鑹插皢鏄劇ず鍖烘竻闄わ紝鐒跺悗鎵嶈皟鐢∣nPaint錛岃岃儗鏅壊寰寰涓庣粯鍥懼唴瀹瑰弽宸緢澶э紝榪欐牱鍦ㄧ煭鏃墮棿鍐呰儗鏅壊涓庢樉紺哄浘褰㈢殑浜ゆ浛鍑虹幇錛屼嬌寰楁樉紺虹獥鍙g湅璧鋒潵鍦ㄩ棯銆傚鏋滃皢鑳屾櫙鍒瘋緗垚NULL錛岃繖鏍鋒棤璁烘庢牱閲嶇粯鍥懼艦閮戒笉浼?xì)闂簡銆傚綋鐒訛紝榪欐牱鍋氫細(xì)浣垮緱紿楀彛鐨勬樉紺轟貢鎴愪竴鍥紝鍥犱負(fù)閲嶇粯鏃舵病鏈夎儗鏅壊瀵瑰師鏉ョ粯鍒剁殑鍥懼艦榪涜娓呴櫎錛岃屽張鍙犲姞涓婁簡鏂扮殑鍥懼艦銆傛湁鐨勪漢浼?xì)璇村Q岄棯鐑佹槸鍥犱負(fù)緇樺浘鐨勯熷害澶參鎴栬呮樉紺虹殑鍥懼艦澶鏉傞犳垚鐨勶紝鍏跺疄榪欐牱璇村茍涓嶅錛岀粯鍥劇殑鏄劇ず閫熷害瀵歸棯鐑佺殑褰卞搷涓嶆槸鏍規(guī)湰鎬х殑銆備緥濡傚湪OnDraw(CDC *pDC)涓繖鏍峰啓錛?br />pDC->MoveTo(0,0);
pDC->LineTo(100,100);
榪欎釜緇樺浘榪囩▼搴旇鏄潪甯哥畝鍗曘侀潪甯稿揩浜嗗惂錛屼絾鏄媺鍔ㄧ獥鍙e彉鍖栨椂榪樻槸浼?xì)鐪嬭闂儊銆傚叾瀹炰粠閬撶悊涓婅錛岀敾鍥劇殑榪囩▼瓚婂鏉傝秺鎱㈤棯鐑佸簲璇ヨ秺灝戯紝鍥犱負(fù)緇樺浘鐢ㄧ殑鏃墮棿涓庣敤鑳屾櫙娓呴櫎灞忓箷鎵鑺辯殑鏃墮棿鐨勬瘮渚嬭秺澶т漢瀵歸棯鐑佺殑鎰熻浼?xì)瓒婁笉鏄庢樉銆傛瘮濡傦細(xì)娓呮灞忓箷鏃墮棿涓?s緇樺浘鏃墮棿涔熸槸涓?s錛岃繖鏍峰湪10s鍐呯殑榪炵畫閲嶇敾涓氨瑕侀棯鐑?嬈★紱濡傛灉娓呮灞忓箷鏃墮棿涓?s涓嶅彉錛岃岀粯鍥炬椂闂翠負(fù)9s錛岃繖鏍?0s鍐呯殑榪炵畫閲嶇敾鍙細(xì)闂儊涓嬈°傝繖涓篃鍙互璇曢獙錛屽湪OnDraw(CDC *pDC)涓繖鏍峰啓錛?br />for(int i=0;i<100000;i++)
{
pDC->MoveTo(0,i);
pDC->LineTo(1000,i);
}
鍛靛懙錛岀▼搴忔湁鐐瑰彉鎬侊紝浣嗘槸鑳借鏄庨棶棰樸?br />聽聽聽璇村埌榪欓噷鍙兘鍙堟湁浜鴻璇翠簡錛屼負(fù)浠涔堜竴涓畝鍗曞浘褰㈢湅璧鋒潵娌℃湁澶嶆潅鍥懼艦閭d箞闂憿錛熻繖鏄洜涓哄鏉傚浘褰㈠崰鐨勯潰縐ぇ錛岄噸鐢繪椂閫犳垚鐨勫弽宸瘮杈冨ぇ錛屾墍浠ユ劅瑙変笂瑕侀棯寰楀帀瀹充竴浜涳紝浣嗘槸闂儊棰戠巼瑕佷綆銆傞偅涓轟粈涔堝姩鐢葷殑閲嶇敾棰戠巼楂橈紝鑰岀湅璧鋒潵鍗翠笉闂紵榪欓噷錛屾垜灝辮鍐嶆寮鴻皟浜嗭紝闂儊鏄粈涔堬紵闂儊灝辨槸鍙嶅樊錛屽弽宸秺澶э紝闂儊瓚婂帀瀹熾傚洜涓哄姩鐢葷殑榪炵畫涓や釜甯т箣闂寸殑宸紓寰堝皬鎵浠ョ湅璧鋒潵涓嶉棯銆傚鏋滀笉淇★紝鍙互鍦ㄥ姩鐢葷殑姣忎竴甯т腑闂村姞涓寮犵函鐧界殑甯э紝涓嶉棯鎵嶆憿銆?br />
2銆佸浣曢伩鍏嶉棯鐑?br />聽聽聽鍦ㄧ煡閬撳浘褰㈡樉紺洪棯鐑佺殑鍘熷洜涔嬪悗錛屽鐥囦笅鑽氨濂藉姙浜嗐傞鍏堝綋鐒舵槸鍘繪帀MFC鎻愪緵鐨勮儗鏅粯鍒惰繃紼嬩簡銆傚疄鐜扮殑鏂規(guī)硶寰堝錛?br />* 鍙互鍦ㄧ獥鍙e艦鎴愭椂緇欑獥鍙g殑娉ㄥ唽綾葷殑鑳屾櫙鍒蜂粯NULL
* 涔熷彲浠ュ湪褰㈡垚浠ュ悗淇敼鑳屾櫙
聽聽聽static CBrush brush(RGB(255,0,0));
聽聽聽SetClassLong(this->m_hWnd,GCL_HBRBACKGROUND,(LONG)(HBRUSH)brush);
* 瑕佺畝鍗曚篃鍙互閲嶈澆OnEraseBkgnd(CDC* pDC)鐩存帴榪斿洖TRUE
聽聽聽榪欐牱鑳屾櫙娌℃湁浜嗭紝緇撴灉鍥懼艦鏄劇ず鐨勭‘涓嶉棯浜嗭紝浣嗘槸鏄劇ず涔熻薄鍓嶉潰鎵璇寸殑涓鏍鳳紝鍙樺緱涓鍥貢銆傛庝箞鍔烇紵榪欏氨瑕佺敤鍒板弻緙撳瓨鐨勬柟娉曚簡銆傚弻緙撳啿灝辨槸闄や簡鍦ㄥ睆騫曚笂鏈夊浘褰㈣繘琛屾樉紺轟互澶栵紝鍦ㄥ唴瀛樹腑涔熸湁鍥懼艦鍦ㄧ粯鍒躲傛垜浠彲浠ユ妸瑕佹樉紺虹殑鍥懼艦鍏堝湪鍐呭瓨涓粯鍒跺ソ錛岀劧鍚庡啀涓嬈℃х殑灝嗗唴瀛樹腑鐨勫浘褰㈡寜鐓т竴涓偣涓涓偣鍦拌鐩栧埌灞忓箷涓婂幓錛堣繖涓繃紼嬮潪甯稿揩錛屽洜涓烘槸闈炲父瑙勬暣鐨勫唴瀛樻嫹璐濓級銆傝繖鏍峰湪鍐呭瓨涓粯鍥炬椂錛岄殢渚跨敤浠涔堝弽宸ぇ鐨勮儗鏅壊榪涜娓呴櫎閮戒笉浼?xì)闂Q屽洜涓虹湅涓嶈銆傚綋璐村埌灞忓箷涓婃椂錛屽洜涓哄唴瀛樹腑鏈緇堢殑鍥懼艦涓庡睆騫曟樉紺哄浘褰㈠樊鍒緢灝忥紙濡傛灉娌℃湁榪愬姩錛屽綋鐒跺氨娌℃湁宸埆錛夛紝榪欐牱鐪嬭搗鏉ュ氨涓嶄細(xì)闂?br />
3銆佸浣曞疄鐜板弻緙撳啿
聽聽聽棣栧厛緇欏嚭瀹炵幇鐨勭▼搴忥紝鐒跺悗鍐嶈В閲婏紝鍚屾牱鏄湪OnDraw(CDC *pDC)涓細(xì)
CDC MemDC; //棣栧厛瀹氫箟涓涓樉紺鴻澶囧璞?br />CBitmap MemBitmap;//瀹氫箟涓涓綅鍥懼璞?br />
//闅忓悗寤虹珛涓庡睆騫曟樉紺哄吋瀹圭殑鍐呭瓨鏄劇ず璁懼
MemDC.CreateCompatibleDC(NULL);
//榪欐椂榪樹笉鑳界粯鍥撅紝鍥犱負(fù)娌℃湁鍦版柟鐢?^_^
//涓嬮潰寤虹珛涓涓笌灞忓箷鏄劇ず鍏煎鐨勪綅鍥撅紝鑷充簬浣嶅浘鐨勫ぇ灝忓槢錛屽彲浠ョ敤紿楀彛鐨勫ぇ灝?br />MemBitmap.CreateCompatibleBitmap(pDC,nWidth,nHeight);
//灝嗕綅鍥鵑夊叆鍒板唴瀛樻樉紺鴻澶囦腑
//鍙湁閫夊叆浜嗕綅鍥劇殑鍐呭瓨鏄劇ず璁懼鎵嶆湁鍦版柟緇樺浘錛岀敾鍒版寚瀹氱殑浣嶅浘涓?br />CBitmap *pOldBit=MemDC.SelectObject(&MemBitmap);
//鍏堢敤鑳屾櫙鑹插皢浣嶅浘娓呴櫎騫插噣錛岃繖閲屾垜鐢ㄧ殑鏄櫧鑹蹭綔涓鴻儗鏅?br />//浣犱篃鍙互鐢ㄨ嚜宸卞簲璇ョ敤鐨勯鑹?br />MemDC.FillSolidRect(0,0,nWidth,nHeight,RGB(255,255,255));
//緇樺浘
MemDC.MoveTo(鈥︹?;
MemDC.LineTo(鈥︹?;
//灝嗗唴瀛樹腑鐨勫浘鎷瘋礉鍒板睆騫曚笂榪涜鏄劇ず
pDC->BitBlt(0,0,nWidth,nHeight,&MemDC,0,0,SRCCOPY);
//緇樺浘瀹屾垚鍚庣殑娓呯悊
MemBitmap.DeleteObject();
MemDC.DeleteDC();
涓婇潰鐨勬敞閲婂簲璇ュ緢璇﹀敖浜嗭紝搴熻瘽灝變笉澶氳浜嗐?br />聽
]]>
2.鏌ョ湅涓涓畯錛堟垨鍙橀噺銆佸嚱鏁幫級鐨勫畯瀹氫箟
鎶婂厜鏍囩Щ鍔ㄥ埌浣犳兂鐭ラ亾鐨勪竴涓畯涓婏紝灝辨瘮濡傝鏈甯歌鐨凞ECLARE_MAP_MESSAGE涓婃寜涓涓婩12(鎴栧彸閿彍鍗曚腑鐨凣o To Defition Of 鈥?,濡傛灉娌℃湁寤虹珛Browse files錛屼細(xì)鍑虹幇鎻愮ず瀵硅瘽妗嗭紝紜畾錛岀劧鍚庡氨浼?xì)锜╁埌瀹氫箟閭d簺涓滆タ鐨勫湴鏂广?
3.鏍煎紡鍖栦竴孌典貢涓冨叓緋熺殑婧愪唬鐮?
閫変腑閭f婧愪唬鐮侊紝鎸堿TL+F8銆?
4.鍦ㄧ紪杈戠姸鎬佷笅鍙戠幇鎴愬憳鍙橀噺鎴栧嚱鏁頒笉鑳芥樉紺?
鍒犻櫎璇ラ」鐩墿灞曞悕涓?ncb鏂囦歡錛岄噸鏂版墦寮璇ラ」鐩?
5.濡備綍鏁寸悊ClassView瑙嗗浘涓ぇ閲忕殑綾?
鍙互鍦╟lassview 瑙嗗浘涓彸閿柊寤烘枃浠跺す錛坣ew folder錛夛紝鍐嶆妸鍏鋒湁鐩歌繎鎬ц川鐨勭被鎷栧埌瀵瑰簲鐨勬枃浠跺す涓紝浣挎暣涓鍥劇湅涓婂幓娓呮櫚鏄庝簡.
6.瀹氫綅棰勫鐞嗘寚瀹?
鍦ㄦ簮鏂囦歡涓畾浣嶅厜鏍囧埌瀵圭О鐨?if, #endif,浣跨敤Ctrl+K.
7.濡備綍娣誨姞緋葷粺涓璍ib鍒板綋鍓嶉」鐩?
鍦≒roject | Settings | Link | Object/library modules錛氳緭鍏ib鍚嶇О錛屼笉鍚岀殑Lib涔嬮棿鐢ㄧ┖鏍兼牸寮.
8.濡備綍娣誨姞緋葷粺涓殑澶存枃浠?.h)鍒板綋鍓嶉」鐩?
#include
9.濡備綍鍦⊿tudio浣跨敤姹囩紪璋冭瘯
鍦╓orkBench鐨凞ebugger鐘舵佷笅鎸塁TRL+F7.
10.鎬庢牱澶勭悊ClassZiard鎵句笉鍒扮殑緋葷粺娑堟伅
濡傛灉瑕佸湪ClassWizard涓鐞哤M_NCHITTEST絳夌郴緇熸秷鎭紝璇峰湪ClassWizard涓瑿lass Info欏典腑灝哅essage filter鏀逛負(fù)Window灝辨湁浜?
11.濡備綍騫插噣鐨勫垹闄や竴涓被
鍏堜粠Workspace涓殑FileView涓垹闄ゅ搴旂殑.h鍜?cpp鏂囦歡,鍐嶅叧闂」鐩紝浠庡疄闄呯殑鏂囦歡澶逛腑鍒犻櫎瀵瑰簲鐨?h鍜?cpp鏂囦歡涓?clw鏂囦歡銆?
12.濡傛灉璁╂帶鍒跺彴搴旂敤紼嬪簭鏀寔mfc綾誨簱
鍙互鍦ㄦ帶鍒跺彴搴旂敤紼嬪簭涓璱nclude 鏉ュ紩鍏fc搴擄紝浣嗘槸鎺у埗鍙板簲鐢ㄧ▼搴忕己鐪佹槸鍗曠嚎紼嬬殑錛宮fc鏄綰跨▼鐨勶紝涓鴻В鍐寵鐭涚浘錛屽湪project setting->c/c++ 閫夐」錛岄夋嫨code generation,鍦╱se run-time library 涓嬫媺妗嗕腑閫夋嫨debug multithread銆?
13.濡備綍姹夊寲鍙湁鍙墽琛屼唬鐮佺殑.exe 鏂囦歡
鍦╪t 涓嬪埄鐢╲c open file 浠esources鏂瑰紡鎵撳紑*.exe 鏂囦歡錛岀洿鎺ヤ慨鏀硅祫婧愭枃浠訛紝鐒跺悗淇濆瓨鍗沖彲銆?
闄勶細(xì)VC欏圭洰鏂囦歡璇存槑
.opt 宸ョ▼鍏充簬寮鍙戠幆澧冪殑鍙傛暟鏂囦歡銆傚宸ュ叿鏉′綅緗瓑淇℃伅錛?
.aps (AppStudio File),璧勬簮杈呭姪鏂囦歡,浜岃繘鍒舵牸寮?涓鑸笉鐢ㄥ幓綆′粬.
.clw ClassWizard淇℃伅鏂囦歡,瀹為檯涓婃槸INI鏂囦歡鐨勬牸寮?鏈夊叴瓚e彲浠ョ爺絀朵竴涓?鏈夋椂鍊機(jī)lassWizard鍑洪棶棰?鎵嬪伐淇敼CLW鏂囦歡鍙互瑙e喅.濡傛灉姝ゆ枃浠朵笉瀛樺湪鐨勮瘽,姣忔鐢–lassWizard鐨勬椂鍊欑粯鎻愮ず浣犳槸鍚﹂噸寤?
.dsp (DeveloperStudio Project):欏圭洰鏂囦歡,鏂囨湰鏍煎紡,涓嶈繃涓嶇啛鎮(zhèn)夌殑璇濅笉瑕佹墜宸ヤ慨鏀?DSW(DeveloperStudio Workspace)鏄伐浣滃尯鏂囦歡,鍏朵粬鐗圭偣鍜孌SP宸笉澶?
.plg 鏄紪璇戜俊鎭枃浠?緙栬瘧鏃剁殑error鍜寃arning淇℃伅鏂囦歡錛堝疄闄呬笂鏄竴涓猦tml鏂囦歡錛?涓鑸敤澶勪笉澶?鍦═ools->Options閲岄潰鏈変釜閫夐」鍙互鎺у埗榪欎釜鏂囦歡鐨勭敓鎴?
.hpj (Help Project)鏄敓鎴愬府鍔╂枃浠剁殑宸ョ▼,鐢╩icrosfot Help Compiler鍙互澶勭悊.
.mdp (Microsoft DevStudio Project)鏄棫鐗堟湰鐨勯」鐩枃浠?濡傛灉瑕佹墦寮姝ゆ枃浠剁殑璇?浼?xì)鎻惤C轟綘鏄惁杞崲鎴愭柊鐨凞SP鏍煎紡.
.bsc 鏄敤浜庢祻瑙堥」鐩俊鎭殑,濡傛灉鐢⊿ource Brower鐨勮瘽灝卞繀欏繪湁榪欎釜鏂囦歡.濡傛灉涓嶇敤榪欎釜鍔熻兘鐨勮瘽,鍙互鍦≒roject Options閲岄潰鍘繪帀Generate Browse Info File,鍙互鍔犲揩緙栬瘧閫熷害.
.map 鏄墽琛屾枃浠剁殑鏄犲儚淇℃伅綰綍鏂囦歡,闄ら潪瀵圭郴緇熷簳灞傞潪甯哥啛鎮(zhèn)?榪欎釜鏂囦歡涓鑸敤涓嶇潃.
.pch (Pre-Compiled File)鏄緙栬瘧鏂囦歡,鍙互鍔犲揩緙栬瘧閫熷害,浣嗘槸鏂囦歡闈炲父澶?
.pdb (Program Database)璁板綍浜嗙▼搴忔湁鍏崇殑涓浜涙暟鎹拰璋冭瘯淇℃伅,鍦ㄨ皟璇曠殑鏃跺欏彲鑳芥湁鐢?
.exp 鍙湁鍦ㄧ紪璇慏LL鐨勬椂鍊欐墠浼?xì)鐢熸?璁板綍浜咲LL鏂囦歡涓殑涓浜涗俊鎭?涓鑸篃娌′粈涔堢敤.
.ncb 鏃犵紪璇戞祻瑙堟枃浠?no compile browser)銆傚綋鑷姩瀹屾垚鍔熻兘鍑洪棶棰樻椂鍙互鍒犻櫎姝ゆ枃浠躲俠uild鍚庝細(xì)鑷姩鐢熸垚銆?
]]>/**//* struct.c
* 鏈▼搴忔紨紺轟簡struct鐨勭縐嶅啓娉曘傛敞鎰忥紝鎵鏈夎繖浜涘啓娉曢兘鑳界紪璇戦氳繃
* author: smileonce
* date : 2005-01-14
*/
// 榪欑鍐欐硶鏄渶瑕佸懡鐨勶紝浣嗘槸瀹冨嵈鍙互閫氳繃, 鏈鍚庨潰閭d釜foo鏄粨鏋勪綋鐨勫疄渚?/SPAN>
struct foo
{
int foo;
} foo;
// 鏈変簡typedef錛屾剰涔夋槑鏄句笌涓婇潰涓嶅悓錛屾敞鎰忕殑鏄痵truct鍚庨潰閭d釜鏍囩鍙互涓嶅啓錛屾渶鍚庨潰閭d釜bar鏄尶鍚嶇粨鏋勪綋鐨勫埆鍚?/SPAN>
typedef struct
{
int bar;
} bar;
// 榪欑鍐欐硶鏄渶娌′漢鐢ㄧ殑錛屽洜涓哄畠鐨勫畾涔夋槸涓嬈℃х殑,struct1鏄竴涓尶鍚峴truct鐨勫疄渚?/SPAN>
struct
{
int aaa;
} mystruct1;
//鏈甯哥敤鐨勫啓娉曪紝娓呮櫚涓嶈█鑷槑錛宮y_struct_tag鏄粨鏋勪綋鏍囩錛宮y_struct_type鏄痵truct my_struct_tag鐨勫埆鍚?/SPAN>
typedef struct my_struct_tag
{
int aaa;
} my_struct_type;
// 涓嬮潰涓ょ瀹氫箟鐨勫啓娉曢兘鍙互錛屽綋鐒朵嬌鐢╰ypedef瀹氫箟鐨勫啓娉曟洿綆媧佷簺
my_struct_type mystruct2; //閫氳繃typedef瀹氫箟鐨勭粨鏋勫埆鍚嶆潵瀹氫箟鍙橀噺
struct my_struct_tag mystruct3; //閫氳繃緇撴瀯鏍囩瀹氫箟鍙橀噺
int main(int argc, char *argv[])
{
return 0;
}
]]>
銆銆鏁版嵁搴撳睘浜庢渶嫻佽鐨勫簲鐢ㄧ▼搴忎箣涓錛屽嚑涔庢瘡涓晢涓氶儴闂ㄩ兘浣跨敤鏁版嵁搴撴潵璁板綍銆佺鐞嗗悇縐嶅悇鏍風(fēng)殑鏁版嵁銆傚湪VC涓嬫垜浠彲浠ュ湪鍒涘緩宸ョ▼鏃墮夋嫨鏁版嵁搴撴敮鎸侊紝騫墮夊畾鏁版嵁婧愬拰鐩稿叧鐨勮〃錛屽茍閫夋嫨CRecordView浣滀負(fù)鎴戜滑榪欎釜紼嬪簭鐨勫熀綾伙紝榪欐牱鍋氬彲浠ユ涓嶈垂鍔涚殑灝嗗簲鐢ㄧ▼搴忓拰鏁版嵁搴撳緩绔嬩簡鍏寵仈錛岃屽嚑涔庝笉鐢ㄧ紪浠涔堜唬鐮侊紝浣嗚繖鏍峰仛鐨勫墠鎻愭槸鍦ㄦ柊寤哄伐紼嬫椂宸叉槑紜煡閬撶敤鍒板摢涓暟鎹簱錛屽茍涓旀湁鐩稿叧鐨勬暟鎹簱銆備簨瀹炰笂鎴戜滑寰寰鏈夎澶氬凡鍋氬ソ鐨勫簲鐢ㄧ▼搴忓拰綾伙紝鍏跺姛鑳介櫎浜嗘湭鍜屾暟鎹簮寤虹珛鍏寵仈澶栦互鍩烘湰婊¤凍瑕佹眰錛屾垜浠彧瑕佸湪鍏跺熀紜涓婃坊鍔燨DBC鎺ュ彛錛屼嬌涔嬩笌鏁版嵁搴撳緩绔嬪叧鑱斿嵆鍙紝榪欐牱鍋氶伩鍏嶄簡涓庢暟鎹簱鏃犲叧閮ㄥ垎浠g爜鐨勯噸鏂扮紪鍐欐墍閫犳垚鐨勯噸澶嶆ф搷浣滐紝澶уぇ鎻愰珮浜嗕唬鐮佺殑閲嶇敤鎬у拰鍒╃敤鐜囥傛墍浠ュ湪鏅氱▼搴忎笂閫氳繃娣誨姞ODBC搴旂敤鑰屼笌鏁版嵁搴撳緩绔嬪叧鑱旂殑鏂規(guī)硶鏄畬鍏ㄨ涔嬫湁鏁堢殑銆?BR>
銆銆浜屻?ODBC鎶鏈?BR>
銆銆ODBC錛圤pen Database Conectivity 寮鏀懼紡鏁版嵁搴撲簰鑱旓級鎶鏈紝浣滀負(fù)Microsoft鍏徃瀵規(guī)暟鎹簱榪涜璁塊棶鐨勬爣鍑嗗簲鐢ㄧ▼搴忔帴鍙?API)鍜學(xué)indows寮鏀懼紡鏈嶅姟浣撶郴緇撴瀯OSA鐨勪竴涓噸瑕佺粍鎴愰儴鍒嗗凡騫夸負(fù)浼楀鐨刉indows紼嬪簭鍛樻墍鐔熸?zhèn)夈佽鍙侽DBC鐨勫伐浣滀緷璧栦簬鏁版嵁搴撳埗閫犲晢鎻愪緵鐨勯┍鍔ㄧ▼搴忥紝浣跨敤ODBC API鐨勬椂鍊欙紝W(xué)indows鐨凮DBC綆$悊紼嬪簭錛屾妸鏁版嵁搴撹闂殑璇鋒眰浼犻掔粰姝g‘鐨勯┍鍔ㄧ▼搴忥紝椹卞姩紼嬪簭鍐嶄嬌鐢⊿QL璇彞鎸囩ずDBMS瀹屾垚鏁版嵁搴撹闂伐浣滐紝鍥犳錛孫DBC鐨勫瓨鍦ㄤ負(fù)鎴戜滑寮鍙戝簲鐢ㄦ暟鎹簱紼嬪簭鎻愪緵浜嗛潪甯稿己澶х殑鑳藉姏鍜岀伒媧繪с?
銆銆涓夈?紼嬪簭紺轟緥
銆銆(涓)鎵撳紑Visual C++錛屽湪"File"鑿滃崟涓婄偣閫?New鈥?錛岀劧鍚庡湪寮瑰嚭鐨?New"瀵硅瘽妗嗕腑閫夊畾"MFC AppWizard(exe)"綾葷殑欏圭洰錛?Project name"涓篘ormal錛屾寜涓婳K閿紝涓嬩竴Step 1灞忓箷涓?Single document"鍗曟枃妗f敮鎸侊紝鐢ㄥ埌鍚庨潰鐨勯夐」闄ゅ湪鏈鍚庝竴姝ラ夋嫨"CFormView"浣滀負(fù)鏈伐紼嬭綾葷殑鍩虹被澶栧潎涓虹‘鐪佸鹼紝姝ゆ椂鍗沖彲鎸変笅Finish閿紝緇撴灉緋葷粺灝嗙敓鎴愪竴涓柊鐨勯」鐩甆ormal銆?BR>
銆銆鎴戜滑灝卞皢姝ゅ伐紼嬪綋鍋氬師鏈夌殑宸ョ▼錛屾帴涓嬫潵鎴戜滑渚垮湪姝ゅ伐紼嬪熀紜涓婂鍏舵坊鍔燨DBC搴旂敤錛屼嬌璇ュ伐紼嬭兘鍚屾暟鎹簮寤虹珛鍏寵仈錛岃兘瀵規(guī)暟鎹簱涓殑鏁版嵁榪涜鎿嶄綔鍜岀鐞嗐?BR>
銆銆(浜?鎵撳紑"鎺у埗闈㈡澘"涓婄殑"ODBC (32bits)"錛屽鏁版嵁婧愯繘琛屾敞鍐屻備負(fù)浜嗕嬌ODBC鑳戒笌鏁版嵁搴撲竴璧峰伐浣滐紝灝卞繀欏繪妸鏁版嵁搴撴敞鍐屽埌ODBC椹卞姩紼嬪簭綆$悊鍣紝榪欓」宸ヤ綔鍙互閫氳繃瀹氫箟涓涓狣SN鎴栨暟鎹簮鍚嶅瓧鏉ュ畬鎴愩傚湪寮瑰嚭鐨?ODBC鏁版嵁婧愮鐞嗗櫒"涓夋嫨"User DSN"灞炴ч〉錛岀偣鍑?Add鈥?鎸夐挳銆傞夋嫨"Microsoft Access Driver(*.mdb)"浣滀負(fù)鏁版嵁婧愮殑椹卞姩鍣紝鐐瑰嚮"瀹屾垚"鎸夐挳銆傚湪寮瑰嚭鐨?ODBC Microsoft Access 97 Setup"瀵硅瘽妗嗕腑鍦?Data Source Name:"鏍忔坊鍏P97,"Description:"鏍忓彧璧鋒敞閲婅鏄庣殑浣滅敤錛屽彲浠ヤ笉濉紝鐒跺悗鐐瑰嚮"Select鈥?鎸夐挳錛岄夋嫨鎵瑕佹敞鍐岀殑鏁版嵁婧愶紝鐒跺悗鐐瑰嚮"OK"灝卞畬鎴愪簡瀵規(guī)暟鎹簮鐨勬敞鍐岋紝鍒拌繖涓姝ワ紝鏈満涓婄殑浠繪剰紼嬪簭鍙閫氳繃ODBC鎺ュ彛鍜屾暟鎹簮鍚?RP97"灝辮兘瀹屾垚瀵規(guī)暟鎹簱鐨勮闂簡銆?BR>
銆銆(涓?鍦╒C鐨?Workspace"媧誨姩紿楀彛涓夋嫨"FileView"灞炴ч〉錛屾墦寮鏍囧噯妗嗘灦澶存枃浠?StdAfx.h",騫跺湪鏈鍚庝竴涓?include鍚庨潰娣誨姞瀵?afxdb.h"鐨勫紩鐢細(xì)#include <afxdb.h>
銆銆(鍥? 鍦?Workspace"媧誨姩紿楀彛涓夋嫨"ClassView"灞炴ч〉錛屽湪"Normal Classes"涓婂彸閿紝閫?New Class鈥?,鍦ㄥ脊鍑虹殑"New Class"瀵硅瘽妗嗙殑"Base Class"鏍忛夋嫨"CRecordSet"鍋氫負(fù)鏂版坊鍔犵殑綾葷殑鍩虹被錛屽湪"Name"鏍忓~鍐欑被鍚?CODBCSet",鐐瑰嚮"OK"錛屽湪闅忓悗寮瑰嚭鐨勫璇濇鐨?ODBC"鏍忛夋嫨鍒氭敞鍐岀殑"RP97"鏁版嵁婧愶紝鐐瑰嚮"OK"鍚庨夋嫨璇ユ暟鎹簱鐨勪竴涓〃錛岀偣鍑?OK"鍦?ClassView"閲屽氨澶氫簡涓涓互CRecordSet涓哄熀綾葷殑鏂扮被"CODBCSet"銆備笅闈笁涓嚱鏁板畬鎴愪簡鏁版嵁搴撳悇綰у厓绱犵殑緇戝畾宸ヤ綔錛?BR>
CString CODBCSet::GetDefaultConnect()
{
銆return _T("ODBC;DSN=RP97");
}
CString CODBCSet::GetDefaultSQL()
{
銆return _T("[鍗曟嵁琛╙");
}
void CODBCSet::DoFieldExchange(CFieldExchange* pFX)
{
銆//{{AFX_FIELD_MAP(CODBCSet)
銆pFX->SetFieldType(CFieldExchange::outputColumn);
銆RFX_Text(pFX, _T("[鍗曟嵁ID]"), m_column1);
銆RFX_Text(pFX, _T("[鍗曟嵁鍚嶇О]"), m_column2);
銆RFX_Text(pFX, _T("[鎶ュ笎浜篯"), m_column3);
銆//}}AFX_FIELD_MAP
}
銆銆(浜?鎸夊悓鏍風(fēng)殑鏂規(guī)硶鍐嶆坊鍔犱竴涓熀浜?generic CWnd"鐨勬柊綾?CConnectDB"銆傚湪璇ョ被鐨勬簮鏂囦歡閲屾坊鍔犲"ODBCSet.h"鐨勫紩鐢細(xì)#include "ODBCSet.h"銆傚湪璇ョ被鐨勫ご鏂囦歡鐨?class CconnectDB"鍓嶆坊鍔燾lass CODBCSet錛涘茍鍦ㄨ綾婚噷娣誨姞鍏湁鍨嬫垚鍛樺彉閲忓拰鍑芥暟錛?BR>
CDatabase m_dbData;
CODBCSet* m_pSet;
void CConnectDB::Initial()
{
銆//鎵撳紑鏁版嵁婧怰P97
銆CString os=_T("odbc; dsn=RP97");
銆m_dbData.Open(NULL,FALSE,FALSE,0);
銆m_pSet=new CODBCSet(&m_dbData);
銆//閫氳繃SQL緇撴瀯鍖栨煡璇㈣璦鎵撳紑RP97閲岀殑鍗曟嵁琛?/SPAN>
銆CString sql="SELECT * FROM 鍗曟嵁琛?/SPAN>";
銆m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE,sql);
}
銆銆(鍏?鍦‵orm涓婃坊鍔犱竴涓?嫻嬭瘯"鎸夐挳鍙?qiáng)鍏跺搷搴斿嚱鏁癘nTest()錛?BR>
void CNormalView::OnTest()
{
銆CConnectDB connectDB;
銆//鎵ц瀹孖nitial()鍚巑_pSet鎸囬拡鎵嶄笉涓虹┖錛屾柟鍙畨鍏ㄤ嬌鐢ㄣ?/SPAN>
銆connectDB.Initial();
銆if(connectDB.m_pSet==NULL)
銆銆return;
銆connectDB.m_pSet->MoveFirst();
銆CString str=connectDB.m_pSet->m_column3;
銆AfxMessageBox(str);
}
銆銆鏈鍚庡湪璇ユ枃浠跺紑濮嬪娣誨姞涓や釜寮曠敤錛?BR>
#include "ConnectDB.h"
#include "ODBCSet.h"
銆銆鍥涖?榪愯涓庢祴璇?BR>
銆銆緙栬瘧榪愯紼嬪簭錛岀偣鍑?嫻嬭瘯"鎸夐挳錛屽氨浼?xì)灏?RP97"鏁版嵁搴撶殑"鍗曟嵁琛?鐨勭涓鏉¤褰曠殑"鎶ュ笎浜?瀛楁鎵鍦ㄧ殑鍐呭閫氳繃瀵硅瘽妗嗗脊鍑烘潵銆?BR>
銆銆灝忕粨錛?BR>
銆銆鏈▼搴忕殑鍏抽敭鍦ㄤ簬瀵規(guī)暟鎹簱鎸囬拡m_pSet鐨勮幏鍙栵紝褰撶被CConnectDB 鐨勬垚鍛樺嚱鏁癐nitial()琚墽琛屽畬鏃訛紝m_pSet灝卞凡琚幏鍙栧埌浜嗭紝鑰屽湪姝や箣鍓嶈鎸囬拡鏄┖鐨勶紝鏄笉鑳戒嬌鐢ㄧ殑錛屾墍浠ュ湪瀹為檯搴旂敤涓繀欏諱繚璇佸湪浣跨敤m_pSet涔嬪墠璋冪敤榪囧嚱鏁癐nitial()銆傚綋m_pSet琚幏鍙栧埌涔嬪悗錛屽氨鍙互鎯沖叾浠朞DBC搴旂敤紼嬪簭涓鏍蜂嬌鐢–recordSet綾婚噷鐨勫悇縐嶅嚱鏁板鏁版嵁搴撹繘琛屽悇縐嶉渶瑕佺殑鎿嶄綔鍜岀鐞嗕簡銆?
]]>