锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲在线视频观看,久久青青草原一区二区,亚洲一区三区电影在线观看http://m.shnenglu.com/finehai/category/11207.html褰撴椂鍙亾鏄甯竳zh-cnFri, 18 Sep 2009 14:18:48 GMTFri, 18 Sep 2009 14:18:48 GMT60CString 鎴愬憳鍑芥暟鐢ㄦ硶澶у叏http://m.shnenglu.com/finehai/archive/2009/09/17/96577.htmlBlueseaBlueseaThu, 17 Sep 2009 14:13:00 GMThttp://m.shnenglu.com/finehai/archive/2009/09/17/96577.htmlhttp://m.shnenglu.com/finehai/comments/96577.htmlhttp://m.shnenglu.com/finehai/archive/2009/09/17/96577.html#Feedback0http://m.shnenglu.com/finehai/comments/commentRss/96577.htmlhttp://m.shnenglu.com/finehai/services/trackbacks/96577.htmlCString鐨勬瀯閫犲嚱鏁?wbr>
CString( );
渚嬶細CString csStr;

CString( const CString& stringSrc );
渚嬶細CString csStr("ABCDEF涓枃123456");
    CString csStr2(csStr);

CString( TCHAR ch, int nRepeat = 1 );
渚嬶細CString csStr('a',5);
//csStr="aaaaa"

CString( LPCTSTR lpch, int nLength );
渚嬶細CString csStr("abcdef",3);
//csStr="abc"

CString( LPCWSTR lpsz );
渚嬶細wchar_t s[]=L"abcdef";
    CString csStr(s);
//csStr=L"abcdef"

CString( const unsigned char* psz );
渚嬶細const unsigned char s[]="abcdef";
    const unsigned char* sp=s;
    CString csStr(sp);
//csStr="abcdef"

CString( LPCSTR lpsz );
渚嬶細CString csStr("abcdef");
//csStr="abcdef"

int GetLength( ) const;
榪斿洖瀛楃涓茬殑闀垮害錛屼笉鍖呭惈緇撳熬鐨勭┖瀛楃銆?br>渚嬶細csStr="ABCDEF涓枃123456";
    printf("%d",csStr.GetLength());       //16

void MakeReverse( );
棰犲掑瓧絎︿覆鐨勯『搴?br>渚嬶細csStr="ABCDEF涓枃123456";
    csStr.MakeReverse();
    cout<<csStr;                  //654321鏂囦腑FEDCBA

void MakeUpper( );
灝嗗皬鍐欏瓧姣嶈漿鎹負澶у啓瀛楁瘝
渚嬶細csStr="abcdef涓枃123456";
    csStr.MakeUpper();
    cout<<csStr;                  //ABCDEF涓枃123456

void MakeLower( );
灝嗗ぇ鍐欏瓧姣嶈漿鎹負灝忓啓瀛楁瘝
渚嬶細csStr="ABCDEF涓枃123456";
    csStr.MakeLower();
    cout<<csStr;                  //abcdef涓枃123456

int Compare( LPCTSTR lpsz ) const;
鍖哄垎澶у皬鍐欐瘮杈冧袱涓瓧絎︿覆錛岀浉絳夋椂榪斿洖0錛屽ぇ浜庢椂榪斿洖1錛屽皬浜庢椂榪斿洖-1
渚嬶細csStr="abcdef涓枃123456";
    csStr2="ABCDEF涓枃123456";
    cout<<csStr.CompareNoCase(csStr2);             //0

int CompareNoCase( LPCTSTR lpsz ) const;
涓嶅尯鍒嗗ぇ灝忓啓姣旇緝涓や釜瀛楃涓詫紝鐩哥瓑鏃惰繑鍥?錛屽ぇ浜庢椂榪斿洖1錛屽皬浜庢椂榪斿洖-1
渚嬶細csStr="abcdef涓枃123456";
    csStr2="ABCDEF涓枃123456";
    cout<<csStr.CompareNoCase(csStr2);             //-1

int Delete( int nIndex, int nCount = 1 )
鍒犻櫎瀛楃錛屽垹闄や粠涓嬫爣nIndex寮濮嬬殑nCount涓瓧絎?br>渚嬶細csStr="ABCDEF";
    csStr.Delete(2,3);
    cout<<csStr;              // ABF
//褰搉Index榪囧ぇ錛岃秴鍑哄鍍忔墍鍦ㄥ唴瀛樺尯鍩熸椂錛屽嚱鏁版病鏈変換浣曟搷浣溿?br>//褰搉Index涓鴻礋鏁版椂錛屼粠絎竴涓瓧絎﹀紑濮嬪垹闄ゃ?br>//褰搉Count榪囧ぇ錛屽鑷村垹闄ゅ瓧絎﹁秴鍑哄鍍忔墍鍦ㄥ唴瀛樺尯鍩熸椂錛屼細鍙戠敓鏃犳硶棰勬枡鐨勭粨鏋溿?br>//褰搉Count涓鴻礋鏁版椂錛屽嚱鏁版病鏈変換浣曟搷浣溿?/font>

int Insert( int nIndex, TCHAR ch )
int Insert( int nIndex, LPCTSTR pstr )

鍦ㄤ笅鏍囦負nIndex鐨勪綅緗紝鎻掑叆瀛楃鎴栧瓧絎︿覆銆傝繑鍥炴彃鍏ュ悗瀵硅薄鐨勯暱搴?br>渚嬶細csStr="abc";
    csStr.Insert(2,'x');
    cout<<csStr;                     //abxc
    csStr="abc";
    csStr.Insert(2,"xyz");
    cout<<csStr;                     //abxyzc
//褰搉Index涓鴻礋鏁版椂錛屾彃鍏ュ湪瀵硅薄寮澶?br>//褰搉Index瓚呭嚭瀵硅薄鏈熬鏃訛紝鎻掑叆鍦ㄥ璞℃湯灝?/font>

int Remove( TCHAR ch );
縐婚櫎瀵硅薄鍐呯殑鎸囧畾瀛楃銆傝繑鍥炵Щ闄ょ殑鏁扮洰
渚嬶細csStr="aabbaacc";
    csStr.Remove('a');
    cout<<csStr;                     //bbcc

int Replace( TCHAR chOld, TCHAR chNew );
int Replace( LPCTSTR lpszOld, LPCTSTR lpszNew );

鏇挎崲瀛椾覆
渚嬶細csStr="abcdef";
    csStr.Replace('a','x');
    cout<<csStr;                    //xbcdef
    csStr="abcdef";
    csStr.Replace("abc","xyz");
    cout<<csStr;                    //xyzdef

void TrimLeft( );
void TrimLeft( TCHAR chTarget );
void TrimLeft( LPCTSTR lpszTargets );

浠庡乏鍒犻櫎瀛楃錛岃鍒犵殑瀛楃涓巆hTarget鎴杔pszTargets鍖歸厤錛屼竴鐩村垹鍒扮涓涓笉鍖歸厤鐨勫瓧絎︿負姝?br>渚嬶細csStr="aaabaacdef";
    csStr.TrimLeft('a');
    cout<<csStr;                //baacdef
    csStr="aaabaacdef";
    csStr.TrimLeft("ab");
    cout<<csStr;                //cdef
//鏃犲弬鏁版椂鍒犻櫎絀烘牸

void TrimRight( );
void TrimRight( TCHAR chTarget );
void TrimRight( LPCTSTR lpszTargets );

浠庡彸鍒犻櫎瀛楃錛岃鍒犵殑瀛楃涓巆hTarget鎴杔pszTargets鍖歸厤錛屼竴鐩村垹鍒扮涓涓笉鍖歸厤鐨勫瓧絎︿負姝?br>渚嬶細csStr="abcdeaafaaa";
    csStr.TrimRight('a');
    cout<<csStr;               //abcdeaaf
    csStr="abcdeaafaaa";
    csStr.TrimRight("fa");
    cout<<csStr;                //abcde
//鏃犲弬鏁版椂鍒犻櫎絀烘牸


void Empty( );
娓呯┖
渚嬶細csStr="abcdef";
    csStr.Empty();
    printf("%d",csStr.GetLength());    //0

BOOL IsEmpty( ) const;
嫻嬭瘯瀵硅薄鏄惁涓虹┖錛屼負絀烘椂榪斿洖闆訛紝涓嶄負絀烘椂榪斿洖闈為浂
渚嬶細csStr="abc";
    cout<<csStr.IsEmpty();         //0;
    csStr.Empty();
    cout<<csStr.IsEmpty();         //1;

int Find( TCHAR ch ) const;
int Find( LPCTSTR lpszSub ) const;
int Find( TCHAR ch, int nStart ) const;
int Find( LPCTSTR pstr, int nStart ) const;

鏌ユ壘瀛椾覆錛宯Start涓哄紑濮嬫煡鎵劇殑浣嶇疆銆傛湭鎵懼埌鍖歸厤鏃惰繑鍥?1錛屽惁鍒欒繑鍥炲瓧涓茬殑寮濮嬩綅緗?br>渚嬶細csStr="abcdef";
    cout<<csStr.Find('b');       //1
    cout<<csStr.Find("de");      //3
    cout<<csStr.Find('b',3);     //-1
    cout<<csStr.Find('b',0);     //1
    cout<<csStr.Find("de",4);    //-1
    cout<<csStr.Find("de",0);    //3
//褰搉Start瓚呭嚭瀵硅薄鏈熬鏃訛紝榪斿洖-1銆?br>//褰搉Start涓鴻礋鏁版椂錛岃繑鍥?1銆?/font>

int FindOneOf( LPCTSTR lpszCharSet ) const;
鏌ユ壘lpszCharSet涓換鎰忎竴涓瓧絎﹀湪CString瀵硅薄涓殑鍖歸厤浣嶇疆銆傛湭鎵懼埌鏃惰繑鍥?1錛屽惁鍒欒繑鍥炲瓧涓茬殑寮濮嬩綅緗?br>渚嬶細csStr="abcdef";
    cout<<csStr.FindOneOf("cxy");       //2

CString SpanExcluding( LPCTSTR lpszCharSet ) const;
榪斿洖瀵硅薄涓笌lpszCharSet涓換鎰忓尮閰嶇殑絎竴涓瓧絎︿箣鍓嶇殑瀛愪覆
渚嬶細csStr="abcdef";
    cout<<csStr.SpanExcluding("cf");    //ab

CString SpanIncluding( LPCTSTR lpszCharSet ) const;
浠庡璞′腑鏌ユ壘涓巐pszCharSe涓換鎰忓瓧絎︿笉鍖歸厤鐨勫瓧絎︼紝騫惰繑鍥炵涓涓笉鍖歸厤瀛楃涔嬪墠鐨勫瓧涓?br>渚嬶細csStr="abcdef";
    cout<<csStr.SpanIncluding("fdcba");    //abcd

int ReverseFind( TCHAR ch ) const;
浠庡悗鍚戝墠鏌ユ壘絎竴涓尮閰嶏紝鎵懼埌鏃惰繑鍥炰笅鏍囥傛病鎵懼埌鏃惰繑鍥?1
渚嬶細csStr="abba";
    cout<<csStr.ReverseFind('a');        //3

void Format( LPCTSTR lpszFormat, ... );
void Format( UINT nFormatID, ... );

鏍煎紡鍖栧璞★紝涓嶤璇█鐨剆printf鍑芥暟鐢ㄦ硶鐩稿悓
渚嬶細csStr.Format("%d",13);
    cout<<csStr;                       //13

TCHAR GetAt( int nIndex ) const;
榪斿洖涓嬫爣涓簄Index鐨勫瓧絎︼紝涓庡瓧絎︿覆鐨刐]鐢ㄦ硶鐩稿悓
渚嬶細csStr="abcdef";
    cout<<csStr.GetAt(2);             //c
//褰搉Index涓鴻礋鏁版垨瓚呭嚭瀵硅薄鏈熬鏃訛紝浼氬彂鐢熸棤娉曢鏂欑殑緇撴灉銆?/font>

void SetAt( int nIndex, TCHAR ch );
緇欎笅鏍囦負nIndex鐨勫瓧絎﹂噸鏂拌祴鍊?br>渚嬶細csStr="abcdef";
    csStr.SetAt(2,'x');
    cout<<csStr;                      //abxdef
//褰搉Index涓鴻礋鏁版垨瓚呭嚭瀵硅薄鏈熬鏃訛紝浼氬彂鐢熸棤娉曢鏂欑殑緇撴灉銆?/font>

CString Left( int nCount ) const;
浠庡乏鍙栧瓧涓?br>渚嬶細csStr="abcdef";
    cout<<csStr.Left(3);           //abc
//褰搉Count絳変簬0鏃訛紝榪斿洖絀恒?br>//褰搉Count涓鴻礋鏁版椂錛岃繑鍥炵┖銆?br>//褰搉Count澶т簬瀵硅薄闀垮害鏃訛紝榪斿洖鍊間笌瀵硅薄鐩稿悓銆?/font>

CString Right( int nCount ) const;
浠庡彸鍙栧瓧涓?br>渚嬶細csStr="abcdef";
    cout<<csStr.Right(3);           //def
//褰搉Count絳変簬0鏃訛紝榪斿洖絀恒?br>//褰搉Count涓鴻礋鏁版椂錛岃繑鍥炵┖銆?br>//褰搉Count澶т簬瀵硅薄闀垮害鏃訛紝榪斿洖鍊間笌瀵硅薄鐩稿悓銆?/font>

CString Mid( int nFirst ) const;
CString Mid( int nFirst, int nCount ) const;

浠庝腑闂村紑濮嬪彇瀛椾覆
渚嬶細csStr="abcdef";
    cout<<csStr.Mid(2);           //cdef
    csStr="abcdef";
    cout<<csStr.Mid(2,3);         //cde
//褰搉First涓?鍜屼負璐熸暟鏃訛紝浠庣涓涓瓧絎﹀紑濮嬪彇銆?br>//褰搉First絳変簬瀵硅薄鏈熬鏃訛紝榪斿洖絀哄瓧涓層?br>//褰搉First瓚呭嚭瀵硅薄鏈熬鏃訛紝浼氬彂鐢熸棤娉曢鏂欑殑緇撴灉銆?br>//褰搉Count瓚呭嚭瀵硅薄鏈熬鏃訛紝榪斿洖浠巒First寮濮嬩竴鐩村埌瀵硅薄鏈熬鐨勫瓧涓?br>//褰搉Count涓?鍜屼負璐熸暟鏃訛紝榪斿洖絀哄瓧涓層?/font>

LPTSTR GetBuffer( int nMinBufLength );
鐢寵鏂扮殑絀洪棿錛屽茍榪斿洖鎸囬拡
渚嬶細csStr="abcde";
    LPTSTR pStr=csStr.GetBuffer(10);
    strcpy(pStr,"12345");
    csStr.ReleaseBuffer();
    pStr=NULL;
    cout<<csStr                 //12345
//浣跨敤瀹孏etBuffer鍚庯紝蹇呴』浣跨敤ReleaseBuffer浠ユ洿鏂板璞″唴閮ㄦ暟鎹紝鍚﹀垯浼氬彂鐢熸棤娉曢鏂欑殑緇撴灉銆?/font>

void ReleaseBuffer( int nNewLength = -1 );
浣跨敤GetBuffer鍚庯紝蹇呴』浣跨敤ReleaseBuffer浠ユ洿鏂板璞″唴閮ㄦ暟鎹?br>渚嬶細csStr="abc";
    LPTSTR pStr=csStr.GetBuffer(10);
    strcpy(pStr,"12345");
    cout<<csStr.GetLength();       //3(閿欒鐨勭敤娉?
    csStr.ReleaseBuffer();
    cout<<csStr.GetLength();       //5(姝g‘)
    pStr=NULL;
//CString瀵硅薄鐨勪換浣曟柟娉曢兘搴斿湪ReleaseBuffer涔嬪悗璋冪敤

LPTSTR GetBufferSetLength( int nNewLength );
鐢寵鏂扮殑絀洪棿錛屽茍榪斿洖鎸囬拡
渚嬶細csStr="abc";
    csStr.GetBufferSetLength(20);
    cout<<csStr;                  //abc
    count<<csStr.GetLength();     //20;
    csStr.ReleaseBuffer();
    count<<csStr.GetLength();     //3;
//浣跨敤GetBufferSetLength鍚庡彲浠ヤ笉蹇呬嬌鐢≧eleaseBuffer銆?br>


Bluesea 2009-09-17 22:13 鍙戣〃璇勮
]]>
CListCtrl鎺т歡浣跨敤鏂規硶鎬葷粨http://m.shnenglu.com/finehai/archive/2009/09/17/96574.htmlBlueseaBlueseaThu, 17 Sep 2009 14:11:00 GMThttp://m.shnenglu.com/finehai/archive/2009/09/17/96574.htmlhttp://m.shnenglu.com/finehai/comments/96574.htmlhttp://m.shnenglu.com/finehai/archive/2009/09/17/96574.html#Feedback0http://m.shnenglu.com/finehai/comments/commentRss/96574.htmlhttp://m.shnenglu.com/finehai/services/trackbacks/96574.html

浠ヤ笅鏈粡璇存槑錛宭istctrl榛樿view 椋庢牸涓簉eport

鐩稿叧綾誨強澶勭悊鍑芥暟

MFC錛欳ListCtrl綾?/p>

SDK錛氫互 “ListView_”寮澶寸殑涓浜涘畯銆傚 ListView_InsertColumn


1. CListCtrl 椋庢牸

      LVS_ICON: 涓烘瘡涓猧tem鏄劇ず澶у浘鏍?br>      LVS_SMALLICON: 涓烘瘡涓猧tem鏄劇ず灝忓浘鏍?br>      LVS_LIST: 鏄劇ず涓鍒楀甫鏈夊皬鍥炬爣鐨刬tem
      LVS_REPORT: 鏄劇ずitem璇︾粏璧勬枡

      鐩磋鐨勭悊瑙o細windows璧勬簮綆$悊鍣紝“鏌ョ湅”鏍囩涓嬬殑“澶у浘鏍囷紝灝忓浘鏍囷紝鍒楄〃錛岃緇嗚祫鏂?#8221;



2. 璁劇疆listctrl 椋庢牸鍙婃墿灞曢鏍?/span>

      LONG lStyle;
      lStyle = GetWindowLong(m_list.m_hWnd, GWL_STYLE);//鑾峰彇褰撳墠紿楀彛style
      lStyle &= ~LVS_TYPEMASK; //娓呴櫎鏄劇ず鏂瑰紡浣?br>      lStyle |= LVS_REPORT; //璁劇疆style
      SetWindowLong(m_list.m_hWnd, GWL_STYLE, lStyle);//璁劇疆style
 
      DWORD dwStyle = m_list.GetExtendedStyle();
      dwStyle |= LVS_EX_FULLROWSELECT;//閫変腑鏌愯浣挎暣琛岄珮浜紙鍙傜敤涓巖eport椋庢牸鐨刲istctrl錛?br>      dwStyle |= LVS_EX_GRIDLINES;//緗戞牸綰匡紙鍙傜敤涓巖eport椋庢牸鐨刲istctrl錛?br>      dwStyle |= LVS_EX_CHECKBOXES;//item鍓嶇敓鎴恈heckbox鎺т歡
      m_list.SetExtendedStyle(dwStyle); //璁劇疆鎵╁睍椋庢牸
 
      娉細listview鐨剆tyle璇鋒煡闃卪sdn
      http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceshellui5/html/wce50lrflistviewstyles.asp

 


3. 鎻掑叆鏁版嵁

      m_list.InsertColumn( 0, "ID", LVCFMT_LEFT, 40 );//鎻掑叆鍒?br>      m_list.InsertColumn( 1, "NAME", LVCFMT_LEFT, 50 );
      int nRow = m_list.InsertItem(0, “11”);//鎻掑叆琛?br>      m_list.SetItemText(nRow, 1, “jacky”);//璁劇疆鏁版嵁

 


4. 涓鐩撮変腑item

    閫変腑style涓殑Show selection always錛屾垨鑰呭湪涓婇潰絎?鐐逛腑璁劇疆LVS_SHOWSELALWAYS



5. 閫変腑鍜屽彇娑堥変腑涓琛?/span>

    int nIndex = 0;
    //閫変腑
    m_list.SetItemState(nIndex, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED);
    //鍙栨秷閫変腑
    m_list.SetItemState(nIndex, 0, LVIS_SELECTED|LVIS_FOCUSED);
 


6. 寰楀埌listctrl涓墍鏈夎鐨刢heckbox鐨勭姸鎬?/span>

      m_list.SetExtendedStyle(LVS_EX_CHECKBOXES);
      CString str;
      for(int i=0; i<m_list.GetItemCount(); i++)
      {
           if( m_list.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED || m_list.GetCheck(i))
           {
                str.Format(_T("絎?d琛岀殑checkbox涓洪変腑鐘舵?), i);
                AfxMessageBox(str);
           }
      }



7. 寰楀埌listctrl涓墍鏈夐変腑琛岀殑搴忓彿


      鏂規硶涓錛?br>      CString str;
      for(int i=0; i<m_list.GetItemCount(); i++)
      {
           if( m_list.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED )
           {
                str.Format(_T("閫変腑浜嗙%d琛?), i);
                AfxMessageBox(str);
           }
      }

      鏂規硶浜岋細
      POSITION pos = m_list.GetFirstSelectedItemPosition();
      if (pos == NULL)
           TRACE0("No items were selected!\n");
      else
      {
           while (pos)
           {
                int nItem = m_list.GetNextSelectedItem(pos);
                TRACE1("Item %d was selected!\n", nItem);
                // you could do your own processing on nItem here
           }
      }



8. 寰楀埌item鐨勪俊鎭?/span>

      TCHAR szBuf[1024];
      LVITEM lvi;
      lvi.iItem = nItemIndex;
      lvi.iSubItem = 0;
      lvi.mask = LVIF_TEXT;
      lvi.pszText = szBuf;
      lvi.cchTextMax = 1024;
      m_list.GetItem(&lvi);

      鍏充簬寰楀埌璁劇疆item鐨勭姸鎬侊紝榪樺彲浠ュ弬鑰僲sdn鏂囩珷
      Q173242: Use Masks to Set/Get Item States in CListCtrl
               http://support.microsoft.com/kb/173242/en-us



9. 寰楀埌listctrl鐨勬墍鏈夊垪鐨刪eader瀛楃涓插唴瀹?/span>

      LVCOLUMN lvcol;
      char  str[256];
      int   nColNum;
      CString  strColumnName[4];//鍋囧鏈?鍒?/p>

      nColNum = 0;
      lvcol.mask = LVCF_TEXT;
      lvcol.pszText = str;
      lvcol.cchTextMax = 256;
      while(m_list.GetColumn(nColNum, &lvcol))
      {
           strColumnName[nColNum] = lvcol.pszText;
           nColNum++;
      }



10. 浣縧istctrl涓竴欏瑰彲瑙侊紝鍗蟲粴鍔ㄦ粴鍔ㄦ潯

    m_list.EnsureVisible(i, FALSE);


11. 寰楀埌listctrl鍒楁暟

    int nHeadNum = m_list.GetHeaderCtrl()->GetItemCount();


12. 鍒犻櫎鎵鏈夊垪

      鏂規硶涓錛?br>         while ( m_list.DeleteColumn (0))
       鍥犱負浣犲垹闄や簡絎竴鍒楀悗錛屽悗闈㈢殑鍒椾細渚濇鍚戜笂縐誨姩銆?/p>

      鏂規硶浜岋細
      int nColumns = 4;
      for (int i=nColumns-1; i>=0; i--)
          m_list.DeleteColumn (i);



13. 寰楀埌鍗曞嚮鐨刲istctrl鐨勮鍒楀彿

      娣誨姞listctrl鎺т歡鐨凬M_CLICK娑堟伅鐩稿簲鍑芥暟
      void CTest6Dlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult)
      {
           // 鏂規硶涓錛?br>           /*
           DWORD dwPos = GetMessagePos();
           CPoint point( LOWORD(dwPos), HIWORD(dwPos) );
  
           m_list.ScreenToClient(&point);
  
           LVHITTESTINFO lvinfo;
           lvinfo.pt = point;
           lvinfo.flags = LVHT_ABOVE;
    
           int nItem = m_list.SubItemHitTest(&lvinfo);
           if(nItem != -1)
           {
                CString strtemp;
                strtemp.Format("鍗曞嚮鐨勬槸絎?d琛岀%d鍒?, lvinfo.iItem, lvinfo.iSubItem);
                AfxMessageBox(strtemp);
           }
          */
  
          // 鏂規硶浜?
          /*
           NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
           if(pNMListView->iItem != -1)
           {
                CString strtemp;
                strtemp.Format("鍗曞嚮鐨勬槸絎?d琛岀%d鍒?,
                                pNMListView->iItem, pNMListView->iSubItem);
                AfxMessageBox(strtemp);
           }
          */
           *pResult = 0;
      }

 


14. 鍒ゆ柇鏄惁鐐瑰嚮鍦╨istctrl鐨刢heckbox涓?/span>

      娣誨姞listctrl鎺т歡鐨凬M_CLICK娑堟伅鐩稿簲鍑芥暟
      void CTest6Dlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult)
      {
           DWORD dwPos = GetMessagePos();
           CPoint point( LOWORD(dwPos), HIWORD(dwPos) );
  
           m_list.ScreenToClient(&point);
  
           LVHITTESTINFO lvinfo;
           lvinfo.pt = point;
           lvinfo.flags = LVHT_ABOVE;
    
           UINT nFlag;
           int nItem = m_list.HitTest(point, &nFlag);
           //鍒ゆ柇鏄惁鐐瑰湪checkbox涓?br>           if(nFlag == LVHT_ONITEMSTATEICON)
           {
                AfxMessageBox("鐐瑰湪listctrl鐨刢heckbox涓?);
           }
           *pResult = 0;
      }



15. 鍙抽敭鐐瑰嚮listctrl鐨刬tem寮瑰嚭鑿滃崟

      娣誨姞listctrl鎺т歡鐨凬M_RCLICK娑堟伅鐩稿簲鍑芥暟
      void CTest6Dlg::OnRclickList1(NMHDR* pNMHDR, LRESULT* pResult)
      {
           NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
           if(pNMListView->iItem != -1)
           {
                DWORD dwPos = GetMessagePos();
                CPoint point( LOWORD(dwPos), HIWORD(dwPos) );
   
                CMenu menu;
                VERIFY( menu.LoadMenu( IDR_MENU1 ) );
                CMenu* popup = menu.GetSubMenu(0);
                ASSERT( popup != NULL );
                popup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this );
           }
           *pResult = 0;
  }


 


16. item鍒囨崲鐒︾偣鏃?鍖呮嫭鐢ㄩ敭鐩樺拰榧犳爣鍒囨崲item鏃?錛岀姸鎬佺殑涓浜涘彉鍖栭『搴?/span>

      娣誨姞listctrl鎺т歡鐨凩VN_ITEMCHANGED娑堟伅鐩稿簲鍑芥暟
      void CTest6Dlg::OnItemchangedList1(NMHDR* pNMHDR, LRESULT* pResult)
      {
           NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
           // TODO: Add your control notification handler code here
   
           CString sTemp;
 
           if((pNMListView->uOldState & LVIS_FOCUSED) == LVIS_FOCUSED &&
            (pNMListView->uNewState & LVIS_FOCUSED) == 0)
           {
                sTemp.Format("%d losted focus",pNMListView->iItem);
           }
           else if((pNMListView->uOldState & LVIS_FOCUSED) == 0 &&
               (pNMListView->uNewState & LVIS_FOCUSED) == LVIS_FOCUSED)
           {
                sTemp.Format("%d got focus",pNMListView->iItem);
           }
 
           if((pNMListView->uOldState & LVIS_SELECTED) == LVIS_SELECTED &&
            (pNMListView->uNewState & LVIS_SELECTED) == 0)
           {
                sTemp.Format("%d losted selected",pNMListView->iItem);
           }
           else if((pNMListView->uOldState & LVIS_SELECTED) == 0 &&
            (pNMListView->uNewState & LVIS_SELECTED) == LVIS_SELECTED)
           {
                sTemp.Format("%d got selected",pNMListView->iItem);
           }
   
           *pResult = 0;
      }



 

17. 鏀瑰彉閫変腑琛岀殑棰滆壊

棣栧厛鏄坊鍔犱互涓嬫秷鎭?/p>

ON_NOTIFY( NM_CUSTOMDRAW, IDC_LIST1, OnDrawColorForMyList )  //涓烘敼鍙橀鑹叉坊鍔犵殑娑堟伅

鍐嶆坊鍔犵被鎴愬憳鍑芥暟,灝監K浜?


//鏀瑰彉 m_List 鎺т歡鍗曡鐨勯鑹?/span>
void CSSDTDlg::OnDrawColorForMyList( NMHDR *pNmHdr, LRESULT *pResult )
{
 NMLVCUSTOMDRAW
* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>( pNmHdr );

    
*pResult = CDRF_DODEFAULT;

 
if ( CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage )
 
{
        
*pResult = CDRF_NOTIFYITEMDRAW;
 }

    
else if ( CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage )
 
{
        
*pResult = CDRF_NOTIFYSUBITEMDRAW;
 }

    
else if ( (CDDS_ITEMPREPAINT | CDDS_SUBITEM) == pLVCD->nmcd.dwDrawStage )
 
{
  COLORREF clrNewTextColor, clrNewBkColor;
        
  
int    nItem = static_cast<int>( pLVCD->nmcd.dwItemSpec );

  
//閫変腑琛屾樉紺哄瓧浣撲負綰㈣壊,鍚﹀垯涓洪粦鑹?/span>
  if(m_item == nItem)  //璁劇疆涓虹孩鑹?/span>
  {
   clrNewTextColor 
= RGB( 25500 );
  }

  
else  //璁劇疆涓洪粦鑹?/span>
  {
   clrNewTextColor 
= RGB( 000 );
  }


  
//璁劇疆鑳屾櫙鑹?/span>
  if( nItem%2 ==0 )
  
{
   clrNewBkColor 
= RGB( 240240240 ); //鍋舵暟琛岃儗鏅壊涓虹伆鑹?/span>
  }

  
else
  
{
   clrNewBkColor 
= RGB( 255255255 ); //濂囨暟琛岃儗鏅壊涓虹櫧鑹?/span>
  }


  pLVCD
->clrText = clrNewTextColor;
  pLVCD
->clrTextBk = clrNewBkColor;

        
*pResult = CDRF_DODEFAULT;
 }

}




鏇村鎶宸у弬瑙佷互涓嬮摼鎺ワ細
http://blog.csdn.net/danforn/archive/2008/06/03/2508070.aspx



Bluesea 2009-09-17 22:11 鍙戣〃璇勮
]]>
甯哥敤棰滆壊鐨凴GB鍊?/title><link>http://m.shnenglu.com/finehai/archive/2009/09/17/96575.html</link><dc:creator>Bluesea</dc:creator><author>Bluesea</author><pubDate>Thu, 17 Sep 2009 14:11:00 GMT</pubDate><guid>http://m.shnenglu.com/finehai/archive/2009/09/17/96575.html</guid><wfw:comment>http://m.shnenglu.com/finehai/comments/96575.html</wfw:comment><comments>http://m.shnenglu.com/finehai/archive/2009/09/17/96575.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/finehai/comments/commentRss/96575.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/finehai/services/trackbacks/96575.html</trackback:ping><description><![CDATA[<font face=#ce_temp_font#> <p>鍦ㄧ▼搴忎腑鎸囧畾棰滆壊涓鑸瘯鐢≧GB鍑芥暟,鍒嗗埆杈撳叆R銆丟銆丅鍊箋俁GB鍑芥暟榪斿洖棰滆壊鍊?Long)銆傚鏋滃湪紼嬪簭涓洿鎺ユ寚瀹氶鑹插搴旂殑鍊鹼紝鍙互紼嶅井鍔犲揩紼嬪簭鐨勮繍琛岄熷害銆傜壒鍒湪浣垮崟鍙岃鏄劇ず涓嶅悓棰滆壊絳夐綣佽皟鐢≧GB鍑芥暟鏃訛紝鏁堟灉瑕佸ソ涓浜涖?nbsp;    <br>    <br>   涓嬭〃鏄竴浜涘父鐢ㄩ鑹茬殑鍊?nbsp;    <br>    <br>   Colour      Red      Green      Blue      鍊?nbsp;    <br>   榛戣壊   Black    0   0    0    0     <br>   鐧借壊   White    255    255    255    16777215     <br>   鐏拌壊   Gray    192    192    192    12632256     <br>   娣辯伆鑹?nbsp;   Dark    Grey    128    128    128    8421504     <br>   綰㈣壊    Red    255    0    0    255     <br>   娣辯孩鑹?nbsp;   Dark    Red    128    0    0    128     <br>   緇胯壊    Green    0    255    0    65280     <br>   娣辯豢鑹?nbsp;   Dark    Green    0    128    0    32768     <br>   钃濊壊    Blue    0    0    255    16711680     <br>   娣辮摑鑹?nbsp;   Dark    Blue    0    0    128    8388608     <br>   绱孩鑹?nbsp;   Magenta    255    0    255    16711935     <br>   娣辯傳綰?nbsp;   Dark    Magenta    128    0    128    8388736     <br>   绱壊    Cyan    0    255    255    16776960     <br>   娣辯傳    Dark    Cyan    0    128    128    8421376     <br>   榛勮壊    Yellow    255    255    0    65535     <br>   媯曡壊    Brown    128    128    0    32896     <br>   鐗規畩棰滆壊     <br>   Button    Face                79741120     <br>   Text                33554432     <br>   Background                1090519039     <br>   App.    Workspace                276856960     <br>    <br>   RGB鍑芥暟璁$畻鍏紡:    棰滆壊鍊?nbsp;   錛?nbsp;   (65536    *    Blue)    +    (256    *    Green)    +    (Red) <br><br>==============================================<br><br>rgb(r,g,b)=r+g*256+b*256*256<br><br>=================================<br><br>Dim color As Double<br>Dim r, g, b As Integer<br>color = RGB(0, 0, 0)<br>r = color Mod 256<br>g = (color \ 256) Mod 256<br>b = (color \ 256 \ 256) Mod 256<br>Print r<br>Print g<br>Print b</p> <p>//鏇村淇℃伅錛?a ><font color=#0000ff><u>http://www.webcha.com/gongju/chaxun1/search_121.htm</u></font></a></p> <p><a ><u><font color=#0000ff>http://www.wy265.com/cha/rgbyanse.htm</font></u></a></p> </font> <img src ="http://m.shnenglu.com/finehai/aggbug/96575.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/finehai/" target="_blank">Bluesea</a> 2009-09-17 22:11 <a href="http://m.shnenglu.com/finehai/archive/2009/09/17/96575.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[MFC]閫夋嫨鐩綍瀵硅瘽妗嗗拰閫夋嫨鏂囦歡瀵硅瘽妗?/title><link>http://m.shnenglu.com/finehai/archive/2009/08/27/94578.html</link><dc:creator>Bluesea</dc:creator><author>Bluesea</author><pubDate>Thu, 27 Aug 2009 09:28:00 GMT</pubDate><guid>http://m.shnenglu.com/finehai/archive/2009/08/27/94578.html</guid><wfw:comment>http://m.shnenglu.com/finehai/comments/94578.html</wfw:comment><comments>http://m.shnenglu.com/finehai/archive/2009/08/27/94578.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/finehai/comments/commentRss/94578.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/finehai/services/trackbacks/94578.html</trackback:ping><description><![CDATA[鍦∕FC緙栫▼涓粡甯鎬細闇瑕佺敤鍒伴夋嫨鐩綍鍜岄夋嫨鏂囦歡鐨勭晫闈紝浠ヤ笅鎬葷粨涓涓嬫湰浜哄父鐢ㄧ殑榪欎袱縐嶅璇濇鐨勭敓鎴愭柟娉曪細<br><br><strong>閫夋嫨鐩綍瀵硅瘽妗?br></strong><br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #008000">//</span><span style="COLOR: #008000">閫夋嫨鐩綍鎸夐挳</span><span style="COLOR: #008000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> CDcPackerDlg::OnBnClickedDecgen()    <br><img id=Codehighlighter1_52_656_Open_Image onclick="this.style.display='none'; Codehighlighter1_52_656_Open_Text.style.display='none'; Codehighlighter1_52_656_Closed_Image.style.display='inline'; Codehighlighter1_52_656_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_52_656_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_52_656_Closed_Text.style.display='none'; Codehighlighter1_52_656_Open_Image.style.display='inline'; Codehighlighter1_52_656_Open_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_52_656_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_52_656_Open_Text><span style="COLOR: #000000">{<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000"> szPath[MAX_PATH];     </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">瀛樻斁閫夋嫨鐨勭洰褰曡礬寰?nbsp;</span><span style="COLOR: #008000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">    CString str;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    ZeroMemory(szPath, </span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(szPath));   <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    BROWSEINFO bi;   <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    bi.hwndOwner </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> m_hWnd;   <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    bi.pidlRoot </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> NULL;   <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    bi.pszDisplayName </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> szPath;   <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    bi.lpszTitle </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">璇烽夋嫨闇瑕佹墦鍖呯殑鐩綍錛?/span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;   <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    bi.ulFlags </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;   <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    bi.lpfn </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> NULL;   <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    bi.lParam </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;   <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    bi.iImage </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;   <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">寮瑰嚭閫夋嫨鐩綍瀵硅瘽妗?/span><span style="COLOR: #008000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">    LPITEMIDLIST lp </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> SHBrowseForFolder(</span><span style="COLOR: #000000">&</span><span style="COLOR: #000000">bi);   <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(lp </span><span style="COLOR: #000000">&&</span><span style="COLOR: #000000"> SHGetPathFromIDList(lp, szPath))   <br><img id=Codehighlighter1_517_601_Open_Image onclick="this.style.display='none'; Codehighlighter1_517_601_Open_Text.style.display='none'; Codehighlighter1_517_601_Closed_Image.style.display='inline'; Codehighlighter1_517_601_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_517_601_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_517_601_Closed_Text.style.display='none'; Codehighlighter1_517_601_Open_Image.style.display='inline'; Codehighlighter1_517_601_Open_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_517_601_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_517_601_Open_Text><span style="COLOR: #000000">{<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        str.Format(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">閫夋嫨鐨勭洰褰曚負 %s</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,  szPath);<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        AfxMessageBox(str); <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        <img src="http://m.shnenglu.com/Images/dot.gif"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">   <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        AfxMessageBox(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">鏃犳晥鐨勭洰褰曪紝璇烽噸鏂伴夋嫨</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);   <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div> <br><br><strong>閫夋嫨鏂囦歡瀵硅瘽妗?br></strong><br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">CString CDcPackerDlg::BootOpenDialog()   </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">榪斿洖閫夋嫨鐨勬枃浠跺悕縐?/span><span style="COLOR: #008000"><br><img id=Codehighlighter1_53_316_Open_Image onclick="this.style.display='none'; Codehighlighter1_53_316_Open_Text.style.display='none'; Codehighlighter1_53_316_Closed_Image.style.display='inline'; Codehighlighter1_53_316_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_53_316_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_53_316_Closed_Text.style.display='none'; Codehighlighter1_53_316_Open_Image.style.display='inline'; Codehighlighter1_53_316_Open_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_53_316_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_53_316_Open_Text><span style="COLOR: #000000">{<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    CString strFile </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> _T(</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">);<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    CFileDialog    dlgFile(TRUE, NULL, NULL, OFN_HIDEREADONLY, _T(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Describe Files (*.cfg)|*.cfg|All Files (*.*)|*.*||</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">), NULL);<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (dlgFile.DoModal())<br><img id=Codehighlighter1_246_293_Open_Image onclick="this.style.display='none'; Codehighlighter1_246_293_Open_Text.style.display='none'; Codehighlighter1_246_293_Closed_Image.style.display='inline'; Codehighlighter1_246_293_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_246_293_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_246_293_Closed_Text.style.display='none'; Codehighlighter1_246_293_Open_Image.style.display='inline'; Codehighlighter1_246_293_Open_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_246_293_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_246_293_Open_Text><span style="COLOR: #000000">{<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        strFile </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> dlgFile.GetPathName();<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> strFile;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">鍔犺澆鏂囦歡鎸夐挳</span><span style="COLOR: #008000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> CDcPackerDlg::OnBnClickedSelectdec()<br><img id=Codehighlighter1_370_548_Open_Image onclick="this.style.display='none'; Codehighlighter1_370_548_Open_Text.style.display='none'; Codehighlighter1_370_548_Closed_Image.style.display='inline'; Codehighlighter1_370_548_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_370_548_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_370_548_Closed_Text.style.display='none'; Codehighlighter1_370_548_Open_Image.style.display='inline'; Codehighlighter1_370_548_Open_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_370_548_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_370_548_Open_Text><span style="COLOR: #000000">{<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> TODO: Add your control notification handler code here</span><span style="COLOR: #008000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">    m_strDescPath </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">;        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">綾葷殑鎴愬憳鍙橀噺<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">"鎵撳紑鏂囦歡"瀵硅瘽妗嗭紝閫夋嫨鏂囦歡錛岃繑鍥炲叾璺緞</span><span style="COLOR: #008000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">    m_strDescPath </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> BootOpenDialog();<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    <img src="http://m.shnenglu.com/Images/dot.gif"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div> <br> <img src ="http://m.shnenglu.com/finehai/aggbug/94578.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/finehai/" target="_blank">Bluesea</a> 2009-08-27 17:28 <a href="http://m.shnenglu.com/finehai/archive/2009/08/27/94578.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鏁版嵁搴撶紪紼嬪揩閫熷叆闂?/title><link>http://m.shnenglu.com/finehai/archive/2009/07/20/90595.html</link><dc:creator>Bluesea</dc:creator><author>Bluesea</author><pubDate>Mon, 20 Jul 2009 03:16:00 GMT</pubDate><guid>http://m.shnenglu.com/finehai/archive/2009/07/20/90595.html</guid><wfw:comment>http://m.shnenglu.com/finehai/comments/90595.html</wfw:comment><comments>http://m.shnenglu.com/finehai/archive/2009/07/20/90595.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/finehai/comments/commentRss/90595.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/finehai/services/trackbacks/90595.html</trackback:ping><description><![CDATA[澶у鏁板簲鐢ㄧ▼搴忛兘浣跨敤鏁版嵁搴擄紝鍚勭綆$悊杞歡銆丒RP銆丆RM緋葷粺鍧囬渶瑕佹暟鎹簱鏉ヤ繚瀛樺拰緇存姢搴旂敤紼嬪簭鐨勬暟鎹紝鍦╒C涓彁渚涗簡澶氱鏁版嵁搴撹闂妧鏈紝涓嶈繃鐩墠鏈嫻佽鐨勬槸ODBC錛堝紑鏀懼紡鏁版嵁搴撴帴鍙o級鍜孉DO錛堟椿鍔ㄥ璞℃ā鍨?銆?  <br>    <br>  涓.鏁版嵁搴撴妧鏈垵姝?  <br>        1.ODBC鍩烘湰姒傚康   <br>        ODBC(Open   Database   Connectivity錛屽紑鏀炬暟鎹簱浜掕繛)鏄井杞叕鍙稿紑鏀炬湇鍔$粨鏋?WOSA錛學indows   Open   Services   Architecture)涓湁鍏蟲暟鎹簱鐨勪竴涓粍鎴愰儴鍒嗭紝瀹冨緩绔嬩簡涓緇勮鑼冿紝騫舵彁渚涗簡涓緇勫鏁版嵁搴撹闂殑鏍囧噯API錛堝簲鐢ㄧ▼搴忕紪紼嬫帴鍙o級銆傝繖浜汚PI鍒╃敤SQL鏉ュ畬鎴愬叾澶ч儴鍒嗕換鍔°侽DBC鏈韓涔熸彁渚涗簡瀵筍QL璇█鐨勬敮鎸侊紝鐢ㄦ埛鍙互鐩存帴灝哠QL璇彞閫佺粰ODBC銆?  <br>    <br>  銆銆涓涓熀浜嶰DBC鐨勫簲鐢ㄧ▼搴忓鏁版嵁搴撶殑鎿嶄綔涓嶄緷璧栦換浣旸BMS錛屼笉鐩存帴涓嶥BMS鎵撲氦閬擄紝鎵鏈夌殑鏁版嵁搴撴搷浣滅敱瀵瑰簲鐨凞BMS鐨凮DBC椹卞姩紼嬪簭瀹屾垚銆備篃灝辨槸璇達紝涓嶈鏄疐oxPro銆丄ccess榪樻槸Oracle鏁版嵁搴擄紝鍧囧彲鐢∣DBC   API榪涜璁塊棶銆傜敱姝ゅ彲瑙侊紝ODBC鐨勬渶澶т紭鐐規槸鑳戒互緇熶竴鐨勬柟寮忓鐞嗘墍鏈夌殑鏁版嵁搴撱?  <br>    <br>  銆銆涓涓畬鏁寸殑ODBC鐢變笅鍒楀嚑涓儴浠剁粍鎴愶細   <br>    <br>  銆銆搴旂敤紼嬪簭(Application)銆?  <br>    <br>  銆銆ODBC綆$悊鍣?Administrator)銆傝紼嬪簭浣嶄簬Windows   95鎺у埗闈㈡澘(Control   Panel)鐨?2浣峅DBC鍐咃紝鍏朵富瑕佷換鍔℃槸綆$悊瀹夎鐨凮DBC椹卞姩紼嬪簭鍜岀鐞嗘暟鎹簮銆?  <br>    <br>  銆銆椹卞姩紼嬪簭綆$悊鍣?Driver   Manager)銆傞┍鍔ㄧ▼搴忕鐞嗗櫒鍖呭惈鍦∣DBC32.DLL涓紝瀵圭敤鎴鋒槸閫忔槑鐨勩傚叾浠誨姟鏄鐞哋DBC椹卞姩紼嬪簭錛屾槸ODBC涓渶閲嶈鐨勯儴浠躲?  <br>    <br>  銆銆ODBC   API銆?  <br>    <br>  銆銆ODBC   椹卞姩紼嬪簭銆傛槸涓浜汥LL錛屾彁渚涗簡ODBC鍜屾暟鎹簱涔嬮棿鐨勬帴鍙c?  <br>    <br>  銆銆鏁版嵁婧愩傛暟鎹簮鍖呭惈浜嗘暟鎹簱浣嶇疆鍜屾暟鎹簱綾誨瀷絳変俊鎭紝瀹為檯涓婃槸涓縐嶆暟鎹繛鎺ョ殑鎶借薄銆?  <br>    <br>  銆銆搴旂敤紼嬪簭瑕佽闂竴涓暟鎹簱錛岄鍏堝繀欏葷敤ODBC綆$悊鍣ㄦ敞鍐屼竴涓暟鎹簮錛岀鐞嗗櫒鏍規嵁鏁版嵁婧愭彁渚涚殑鏁版嵁搴撲綅緗佹暟鎹簱綾誨瀷鍙奜DBC椹卞姩紼嬪簭絳変俊鎭紝寤虹珛璧稯DBC涓庡叿浣撴暟鎹簱鐨勮仈緋匯傝繖鏍鳳紝鍙搴旂敤紼嬪簭灝嗘暟鎹簮鍚嶆彁渚涚粰ODBC錛孫DBC灝辮兘寤虹珛璧蜂笌鐩稿簲鏁版嵁搴撶殑榪炴帴銆?  <br>    <br>  銆銆鍦∣DBC涓紝ODBC   API涓嶈兘鐩存帴璁塊棶鏁版嵁搴擄紝蹇呴』閫氳繃椹卞姩紼嬪簭綆$悊鍣ㄤ笌鏁版嵁搴撲氦鎹俊鎭傞┍鍔ㄧ▼搴忕鐞嗗櫒璐熻矗灝嗗簲鐢ㄧ▼搴忓ODBC   API鐨勮皟鐢ㄤ紶閫掔粰姝g‘鐨勯┍鍔ㄧ▼搴忥紝鑰岄┍鍔ㄧ▼搴忓湪鎵ц瀹岀浉搴旂殑鎿嶄綔鍚庯紝灝嗙粨鏋滈氳繃椹卞姩紼嬪簭綆$悊鍣ㄨ繑鍥炵粰搴旂敤紼嬪簭銆?  <br>    <br>  銆銆鍦ㄨ闂甇DBC鏁版嵁婧愭椂闇瑕丱DBC椹卞姩紼嬪簭鐨勬敮鎸併傜敤Visual   C++   5.0瀹夎紼嬪簭鍙互瀹夎SQL   Server銆?  Access銆?  Paradox銆?  dBase銆?  FoxPro銆?  Excel銆?  Oracle   鍜孧icrosoft   Text絳夐┍鍔ㄧ▼搴忥紟鍦ㄧ己鐪佹儏鍐典笅錛孷C5.0鍙細瀹夎SQL   Server銆?  Access銆?  FoxPro鍜宒Base鐨勯┍鍔ㄧ▼搴忥紟濡傛灉鐢ㄦ埛闇瑕佸畨瑁呭埆鐨勯┍鍔ㄧ▼搴忥紝鍒欓渶瑕侀噸鏂拌繍琛孷C   5.0鐨勫畨瑁呯▼搴忓茍閫夋嫨鎵闇鐨勯┍鍔ㄧ▼搴忋?    <br>    <br>        2.ADO瀵硅薄璁塊棶妯″瀷   <br>        1)ADO鏄井杞暣涓狢OM鎴樼暐浣撶郴涓殑涓涓粍鎴愰儴鍒?  <br>    <br>  銆   媧誨姩鏁版嵁瀵硅薄錛圓DO錛夋槸涓緇勭敱寰蔣鎻愪緵鐨凜OM緇勪歡銆?  ADO寤虹珛鍦ㄥ井杞墍鎻愬$殑COM浣撶郴緇撴瀯涔嬩笂錛屽畠鐨勬墍鏈夋帴鍙i兘鏄嚜鍔ㄥ寲鎺ュ彛錛屽洜姝ゅ湪C++銆乂isualBasic銆丏elphi絳夋敮鎸丆OM鐨勫紑鍙戣璦涓氳繃鎺ュ彛閮藉彲浠ヨ闂埌ADO銆侫DO閫氳繃浣跨敤OLE   DB榪欎竴鏂版妧鏈疄鐜頒簡浠ョ浉鍚屾柟寮忓彲浠ヨ闂叧緋繪暟鎹簱銆佹枃鏈枃浠躲侀潪鍏崇郴鏁版嵁搴撱佺儲寮曟湇鍔″櫒鍜屾椿璺冪洰褰曟湇鍔$瓑鐨勬暟鎹紝鎵╁ぇ浜嗗簲鐢ㄧ▼搴忎腑鍙嬌鐢ㄧ殑鏁版嵁婧愯寖鍥達紝浠庤屾垚涓哄井杞暣涓狢OM鎴樼暐浣撶郴涓闂暟鎹簮緇勪歡鐨勯閫夛紝鏄疧DBC鐨勬浛浠d駭鍝併?<br>2)ADO瀵硅薄妯″瀷緇勬垚   <br>    <br>  銆涓庡井杞殑鍏跺畠鏁版嵁璁塊棶妯″瀷DAO鍜孯DO鐩告瘮錛孉DO瀵硅薄妯″瀷闈炲父綺劇偧錛屼粎鐢變笁涓富瑕佸璞onnection銆丆ommand銆丷ecordset鍜屽嚑涓緟鍔╁璞$粍鎴愩侰onnection瀵硅薄鎻愪緵OLE   DB鏁版嵁婧愬拰瀵硅瘽瀵硅薄涔嬮棿鐨勫叧鑱旓紝瀹冮氳繃鐢ㄦ埛鍚嶇О鍜屽彛浠ゆ潵澶勭悊鐢ㄦ埛韜喚鐨勯壌鍒紝騫舵彁渚涗簨鍔″鐞嗙殑鏀寔錛涘畠榪樻彁渚涙墽琛屾柟娉曪紝浠庤岀畝鍖栨暟鎹簮鐨勮繛鎺ュ拰鏁版嵁媯绱㈢殑榪涚▼銆侰ommand瀵硅薄灝佽浜嗘暟鎹簮鍙互瑙i噴鐨勫懡浠わ紝璇ュ懡浠ゅ彲浠ユ槸SQL鍛戒護銆佸瓨鍌ㄨ繃紼嬫垨搴曞眰鏁版嵁婧愬彲浠ョ悊瑙g殑浠諱綍鍐呭銆俁ecord   set鐢ㄤ簬琛ㄧず浠庢暟鎹簮涓繑鍥炵殑琛ㄦ牸鏁版嵁錛屽畠灝佽浜嗚褰曢泦鍚堢殑瀵艱埅銆佽褰曟洿鏂般佽褰曞垹闄ゅ拰鏂拌褰曠殑娣誨姞絳夋柟娉曪紝榪樻彁渚涗簡鎵歸噺鏇存柊璁板綍鐨勮兘鍔涖傚叾瀹冭緟鍔╁璞″垯鍒嗗埆鎻愪緵灝佽ADO閿欒銆佸皝瑁呭懡浠ゅ弬鏁板拰灝佽璁板綍闆嗗悎鐨勫垪銆?    <br>    <br>  銆3)ADO鐨勭壒鐐瑰垎鏋?  <br>    <br>  銆銆(a)鐢變簬灝佽浜嗚澶氬簳灞傚伐浣滐紝浣跨敤ADO涓庝嬌鐢∣DBC鍑犱箮鏄竴鏍鋒柟渚褲?  <br>  銆銆(b)   ADO涓嶄粎鍏鋒湁ODBC鐨勪富瑕佸姛鑳斤紝鑰屼笖ADO閫傜敤鐨勬暟鎹簮鐨勮寖鍥磋澶х殑澶氥?  <br>  銆銆(c)鍦ㄥ畾涔堿DO璁板綍闆嗗彉閲忓拰鏁版嵁搴撹〃瀛楁緇戝畾綾繪椂錛岃姹傝褰曢泦鐨勫瓧孌靛彉閲忋佺姸鎬佸彉閲忎笌鏁版嵁搴撹〃瀛楁鐨勪釜鏁般侀『搴忓繀欏葷浉鍚屻傝繖涓鐐規瘮鍦‵MC涓嬌鐢∣DBC瑕佸鏉備竴浜涖備絾鍦ㄦ暟鎹簱瀛楁涓嶢DO璁板綍闆嗗瓧孌靛彉閲忕粦瀹氱殑瀹忎腑錛孉DO   鎻愪緵鐨勬暟鎹被鍨嬭榪滃浜嶧MC涓殑RFX錛堝鏃ユ湡鏃墮棿綾誨瀷錛屽湪ODBC涓彧鑳借漿鎹負Cstring綾誨瀷錛夈?  <br>  銆銆(d)ADO鍏佽鍚屼竴Connection瀹炰緥涓嬫湁澶氫釜Record   set瀹炰緥銆?  <br><clk style="FONT-SIZE: 12px">  銆銆(e)ADO鍏佽榪涜鎵規洿鏂幫紙浣跨敤鐨刄pdate   Batch鏂規硶錛夛紝榪欐牱灝嗗ぇ澶у噺杞?nobr oncontextmenu="return false" onmousemove=$cE.MoW() id=clickeyekey0 onmouseover=$cE.s(event,0) style="FONT-SIZE: 12px; COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick='$cE.defer(this);$cE.c(event,0,"",1)' onmouseout=$cE.OuK()>緗戠粶</nobr>璐熸媴錛屾彁楂樻暟鎹簱澶勭悊鏁堢巼銆?  </clk><br>          <br>      4)   ADO鍦╒isual   C++涓殑浣跨敤   <br>    <br>  銆銆鍒╃敤寰蔣鍦∕icrsoft   Studio   6涓彁渚涚殑ADO2錛屽彲浠ュ湪Visual   C++涓嬌鐢ˋDO鎺ュ彛鎿嶇旱SQL   SERVER鏁版嵁搴撱傚湪緙栬瘧鍨嬮珮綰ц璦涓嬌鐢ˋDO,姣旇搗鍦ㄤ竴浜涜剼鏈璦錛堝Visual   Basic   Scropt鍜孞avaScript錛変腑浣跨敤ADO瑕佸洶闅句竴浜涖?  <br>    <br>  銆銆浠ヤ笅緇欏嚭涓涓猇isual   C++涓嬩嬌鐢ˋDO鐨凜onnection瀵硅薄鍙婂叾Record   set瀵硅薄鐨勫熀鏈楠わ細   <br>  銆銆錛坅錛?  浣跨敤import鎸囦護寮曞叆ADO2緇勪歡   <br>  銆銆渚嬶細#import   "C:\ADO\msado15.dll"   no_namespace   rename("EOF",   "EndOfFile")     <br>  銆銆錛坆錛?  瀹氫箟CADORecordBinding   鐨勬淳鐢熺被錛岀敤浜庣▼搴忎笌鏁版嵁搴撹〃瀛楁鐨勪氦浜掞紝璇ョ被鐨勫畾涔夊彲鍙傝icrsint.h銆?  <br>  銆銆渚嬶細   <br>  class   CIntlive   :   public   CADORecordBinding     <br>  {     <br>  public:   <br>  DBTIMESTAMP   m_datetime;   //瀹氫箟ADO璁板綍闆嗗瓧孌靛彉閲忥紙涓庢暟鎹簱琛ㄥ瓧孌電浉瀵瑰簲錛?  <br>  long   m_key;   <br>  long   m_value;   <br>  long   m_quality;   <br>  WORD   m_stsdatetime;   //瀹氫箟ADO璁板綍闆嗙姸鎬佸彉閲?  <br>  WORD   m_stskey;   <br>  WORD   m_stsvalue;   <br>  WORD   m_stsquality;   <br>  BEGIN_ADO_BINDING(CIntlive)   //灝嗘暟鎹簱瀛楁涓嶢DO璁板綍闆嗗瓧孌靛彉閲忕粦瀹?  <br>  ADO_VARIABLE_LENGTH_ENTRY2(1,adDBTimeStamp,m_datetime,sizeof(m_datetime),m_stsdatetime,true)   <br>  ADO_NUMERIC_ENTRY(2,adInteger,m_key,10,0,m_stskey,true)   <br>  ADO_NUMERIC_ENTRY(3,adInteger,m_value,10,0,m_stsvalue,true)   <br>  ADO_NUMERIC_ENTRY(4,adInteger,m_quality,10,0,m_stsquality,true)   <br>  END_ADO_BINDING()   <br>  };   <br>  銆銆錛坈錛?  璋冪敤CoInitialize鍒濆鍖朇OM   ::CoInitialize(NULL);     <br>  銆銆錛坉錛?  澹版槑ADO鐨凜onnection瀵硅薄鎸囬拡鍜孯ecordset瀵硅薄鎸囬拡騫跺垵濮嬪寲銆傦紙綾誨瀷鍚嶅湪   msado15.dll涓凡瀹氫箟錛?  <br>  銆銆渚嬶細   <br>  _ConnectionPtr   pConnection1   =   NULL;   <br>  _RecordsetPtr   rstADO1   =   NULL;     <br>  銆銆錛坋錛?  瀹氫箟CADORecordBinding媧劇敓綾葷殑瀹炰緥鍙婂叾Bind鎺ュ彛鎸囬拡銆?  <br>  銆銆渚嬶細   <br>  CIntlive   m_intdata;     <br>  IADORecordBinding   *rstADOBind1   =   NULL;     <br>  銆銆錛坒錛?  浜х敓Connection瀵硅薄瀹炰緥鍜孯ecord   set瀵硅薄瀹炰緥銆?  <br>  銆銆渚嬶細   <br>  pConnection1.CreateInstance(_uuidof(Connection));     <br>  rstADO1.CreateInstance(__uuidof(Recordset))   ;     <br>  銆銆錛坓錛?  榪炴帴鍒版暟鎹簱騫舵墦寮Record   set瀵硅薄錛屽叾涓璷pen鍑芥暟鐨勫弬鏁扮殑浣跨敤鏂規硶鍙弬瑙佸井杞疢SDN涓瑼DO   鐩稿簲瀵硅薄鍙傛暟鐨凚asic鎻忚堪銆?  <br>  銆銆渚?   <br>  PConnection1->Open("driver={SQL   server};server=servera;uid=sa;pwd=;database=pubs","","",NULL);   <br>  rstADO1->Open("data",   _variant_t((IDispatch   *)pConnection1,true),     <br>  adOpenKeyset,adLockBatchOptimistic,   adCmdTable);     <br>  銆銆錛坔錛?  灝咰ADORecordBinding媧劇敓綾葷殑瀹炰緥鑱旂紪鍒癛ecord   set瀵硅薄鐨凚ind鎺ュ彛銆?  <br>  銆銆渚?   <br>  RstADOBind1->BindToRecordset(&m_intdata);     <br>  銆銆錛坕錛?  瀵筊ecord   set瀵硅薄瀹炰緥榪涜鎿嶄綔銆傛搷浣滄柟娉曞彲鍙傝寰蔣MSDN涓瑼DO   Record   set瀵硅薄鐩稿簲鏂規硶鐨凚asic鎻忚堪銆?  <br>  銆銆   渚?   <br>  rstADO1->Move   Next();   //縐誨姩娓告爣鍒頒笅涓鏉¤褰?  <br>  rstADO1->Update(_variant_t("quality"),_variant_t("3")));   //淇敼璁板綍鐨剄uality瀛楁鐨勫間負3   <br>  rstADO1->Update   Batch(adAffectAll));   //灝嗗湪Record   set瀵硅薄涓婄殑鎵鏈夋洿鏂頒竴嬈¢佸叆鏁版嵁搴?  <br>  銆銆錛坖錛?  鍏抽棴Record   set瀵硅薄騫墮噴鏀綛ind鎺ュ彛銆?  <br>  銆銆渚?   <br>  RstADO1->Close();     <br>  RstADOBind2->Release();     <br>  銆銆錛坘錛?  鍏抽棴榪炴帴   pConnection1->Close();     <br>  銆銆錛坙錛?  璋冪敤CoUnitialize閲婃斁COM璧勬簮   ::CoUninitialize();     <br>  銆5)   緇撹   <br>  銆銆浣滀負ODBC鐨勬浛浠d駭鍝侊紝ADO紜疄鏈夊叾榪囦漢涔嬪銆傜敱浜嶢DO鏁版嵁婧愬嚑涔庤鐩栦簡鐩墠甯歌鐨勬暟鎹簮綾誨瀷錛屽浜嶰DBC鎵涓嶆敮鎸佺殑鏁版嵁婧愶紝ADO鏃犵枒鏄敮涓鐨勯夋嫨銆傝孉DO鐨勬壒鏇存柊鍔熻兘錛屾洿鏄綉緇滅幆澧冧笅澶ф暟鎹噺鏇存柊搴旂敤鐨勯噸瑕佸洜绱犮傜敱浜嶢DO緙轟箯澶ч噺鐨勭涓夋柟鍘傚晢鐨勬敮鎸侊紝浣垮緱ADO鐩墠榪滀笉濡侽DBC鏅強錛屼絾鍏墮潰鍚戝璞$殑鐗規у皢浣緼DO鍏鋒湁姣旇緝騫塊様鐨勫彂灞曞墠鏅?br><br>3.ADO涓嶰DBC鐨勫尯鍒?  <br>        鏈夊緢澶氱浣跨敤鏁版嵁搴撶殑鏂規硶錛屽澶у鏁版暟鎹簱鏉ヨ錛岄夋嫨C++榪欑浜у搧涔熻騫朵笉閫傚疁銆傛垜浠煡閬擄紝鍍廳BASE   IV錛孎oxPro錛孫racle鍜孉ccess榪欐牱鐨勪駭鍝佹槸瀹屽叏浠ユ暟鎹簱綆$悊涓轟腑蹇冪殑銆備簨瀹炰笂錛岃繖浜涗駭鍝侀潪甯稿杽浜庡垱寤烘暟鎹簱綆$悊鍣紝浠ヨ嚦浜庡畠浠‘瀹炲茍涓嶅杽浜庡仛澶鍏跺畠鐨勫伐浣溿傚嵆浣胯鐢ㄦ洿閫氱敤鍖栬岄潪鏇翠笓鐢ㄥ寲鐨勬暟鎹簱浜у搧鏉ユ墽琛屼竴浜涚被鍨嬬殑宸ヤ綔錛屽湪浣跨▼搴忚璁℃洿瀹規槗榪欎竴鏂歸潰錛屽儚VisualBasic鍜孌elphi榪欐牱鐨凴AD鐜涔熻姣擵isual   C++寮哄緢澶氥?  <br>    <br>  銆銆浣犳槸涓嶆槸瀵規垜鐨勮娉曟劅鍒板緢濂囨紵涓嬮潰鎴戝氨瑕佽皥涓璋堬紝鍦ㄨ皥鍒頒嬌鐢ㄦ暟鎹簱綆$悊緋葷粺(DBMS)榪欎釜璇濋鏃訛紝鐢╒isual   C++瀹為檯涓婂彲浠ュ仛浜涗粈涔堛傝櫧鐒朵笂榪板叾瀹冭璦浣垮緱緙栧啓鎴愮啛鐨勫寘鎷敤鎴風晫闈㈠拰楂橀熸悳绱㈣兘鍔涚殑DBMS灝卞儚瀛╁瓙鍋氭父鎴忎竴鏍峰鏄擄紝浣嗘槸錛屽畠浠己灝慥isual   C++鍙互鎻愪緵鐨勬煇浜涢噸瑕佷笢瑗褲備綘涓嶈兘涓轟嬌鐢ˋccess鐨勬暟鎹簱杞繪澗鍦扮紪鍐欏嚭瀹炵敤紼嬪簭銆傛鍍忓疄鐢ㄧ▼搴忕殑瀹氫箟鎵璇寸殑錛屽疄鐢ㄧ▼搴忓簲璇ュ緢灝忓茍涓斿叿澶囧彲縐繪鎬р斺擜ccess搴旂敤紼嬪簭鍗翠笉鏄繖鏍楓傚嵆浣跨敤Access榪欐牱鐨勪駭鍝佸垱寤虹殑紼嬪簭鍙互寰堝皬騫朵笖鍙互縐繪錛屼綘浠嶆湁鍏跺畠鏂歸潰鐨勯渶姹傦細搴曞眰鐨勫姛鑳姐?  <br>    <br>  銆銆娉細緙栧啓鏁版嵁搴撳疄鐢ㄧ▼搴忓強椹卞姩紼嬪簭鏃訛紝鍙互閫夋嫨Visual   C++璇█銆?  <br>    <br>  銆銆鎯沖儚涓涓嬶紝浣跨敤鍍廣isual   Basic榪欐牱鐨勮璦鏉ヤ笌瀹炴椂鏁版嵁閲囬泦璁懼鎵撲氦閬撶殑鎯呭喌銆傚湪榪涜搴曞眰璁塊棶鏃訛紝RAD鐨勪繚鎶ょ幆澧冨父甯鎬嬌紼嬪簭鍛樹笉鑳借繘琛屾湁鏁堢殑澶勭悊銆傚綋鐒訛紝鏁版嵁閲囬泦璁懼鍑犱箮涓嶄緷璧栦簬綆鏄庣殑榪炴帴銆備綘鎵撶畻濡備綍鎶奦isual   Basic鍜屽閮ㄧ殑鏁版嵁婧愯繛鎺ヨ搗鏉ュ憿錛熸暟鎹簮鐢氳嚦鍙兘涓嶄簡瑙indows錛孌OS鎴栫被浼肩殑鎴愮啛鐨勬搷浣滅郴緇熴?  <br>    <br>  銆銆鍙浣跨敤寰楀綋錛屽緢瀹規槗鐪嬪埌Visual   C++鏄竴縐嶄笉鍙垨緙虹殑鏁版嵁搴撶鐞嗗伐鍏楓傞拡瀵瑰ぇ瑙勬ā鐨勫簲鐢ㄧ▼搴忥紝鍗充嬌浣犱粛鎯充緷璧栦簬Visual   Basic榪欐牱鐨凴AD璇█錛屼篃璇瘋冭檻涓涓媀isual   C++錛屽畠鍒涘緩鐨勭▼搴忚妯″皬銆佹彁渚涘簳灞傝闂茍鑳芥彁渚涘疄鏃惰闂備簨瀹炰笂錛屼綘鍙兘榪樻病鏈夋兂鍒幫紝Visual   C++鏁版嵁搴撳簲鐢ㄧ▼搴忕殑甯傚満鏄緢鏈夋綔鍔涚殑銆傞殢鐫浜轟滑鍦ㄦ梾閫斾腑瓚婃潵瓚婂鍦頒嬌鐢ㄨ啙涓婂瀷鍜屾帉涓婂瀷鐢佃剳錛岃繖涓ょ被鐢佃剳涓婄殑鏁版嵁搴撳簲鐢ㄧ▼搴忎篃鍙樺緱瓚婃潵瓚婃櫘閫氥備綘涔熻鑳藉閫傚簲浠婂ぉ鐨勮啙涓婂瀷鐢佃剳涓婄殑Access搴旂敤紼嬪簭錛屼絾璋堝埌紜洏澶у皬鎴栧唴瀛橀渶姹傛椂錛屽叕鍙擱噷杈冭佺殑鑶濅笂鍨嬬數鑴戝彲鑳藉氨杈句笉鍒拌姹傘傝繍琛學indows   CE鐨勬帉涓婂瀷鐢佃剳鍦ㄨ繍琛岃繖涓狝ccess搴旂敤紼嬪簭鏃訛紝鑲畾浼氬彂鐢熸晠闅溿傚湪榪欎竴鏁版嵁搴撳競鍦虹殑鏂伴鍩燂紝Visual   C++鎻愪緵浜嗘棤浠鋒棤闄愮殑宸ュ叿銆?  <br>    <br>  銆銆Web閾炬帴   璋堝埌浣跨敤Visual   C++鍜屾暟鎹簱錛屽叾瀹炰綘騫朵笉瀛ゅ崟銆備粠涓寮濮嬪氨鏈夋暟鎹簱涓撶敤鏂伴椈緇勬彁渚涙湁鍏蟲暟鎹簱鍒涘緩鎶宸х殑甯姪錛屾瘮濡俶icrosoft.public.access銆備笉榪囷紝榪欎簺鏂伴椈緇勬彁渚涚殑鏄氱敤淇℃伅錛屽瀹為檯緙栧啓搴旂敤紼嬪簭騫墮潪鍏ㄩ兘閭d箞鏈夌敤銆備笓闂ㄩ拡瀵筕isual   C++闂鐨勬柊闂葷粍鏄痬icrosoft.public.vc.database鍜宮icrosoft.public.vc.mfcdatabase銆傚鏋滀綘鍐沖畾鐢∣DBC璁塊棶鏁版嵁搴擄紝鍙兘榪樿鏌ョ湅涓涓媘icrosoft.public.odbc.sdk鏂伴椈緇勶紝瀹冭璁虹殑涓嶄粎浠呮槸SDK銆傚鏈鏂版妧鏈劅鍏磋叮鐨勭▼搴忓憳鍙互鏌ラ槄microsoft.public.ado鏂伴椈緇勶紝鎴栬卪icrosoft.public.oledb錛堝璞¢摼鎺ュ拰宓屽叆鏁版嵁搴擄級鏂伴椈緇勶紝鍓嶈呰璁?  ADO錛屽悗鑰呰璁篈DO鐨勫熀紜鎶鏈傚湪microsoft.public.ado.rds鏈変竴涓狝DO瀛愮粍錛屽畠璁ㄨ榪滅▼鏁版嵁璁塊棶銆?  <br>    <br>  銆銆鏃㈢劧鎵鏈夌殑鐤戞儜閮芥秷闄や簡錛屽ぇ澶氭暟浜虹殑淇″績涔熷氨澧炲己浜嗭紝涓嬮潰鎴戜滑灝變粙緇嶄袱縐嶄嬌C++璁塊棶鏁版嵁搴撲腑鐨勬暟鎹殑涓昏鏂規硶錛歄DBC錛堝紑鏀炬暟鎹簱浜掕繛錛夊拰ADO錛圓ctiveX鏁版嵁瀵硅薄錛夈傚湪鏈珷涓紝灝嗕粙緇嶈繖涓ょ綾誨瀷鐨勮闂柟娉曪紝浣嗘垜鎯充綘浼氬彂鐜幫紝ADO鏂規硶鏄拡瀵規柊鐨勭▼搴忚璁℃儏褰㈣岄噰鐢ㄧ殑銆傚畠鍏嬫湇浜嗘棭鏈熸妧鏈殑璇稿闄愬埗錛屼緷璧栦簬Microsoft鏂扮殑搴曞眰璁塊棶鏂規硶OLE-DB錛堝璞¢摼鎺ュ拰宓屽叆鏁版嵁搴擄級銆傚湪鏈功鐨勫悗闈㈡垜浠細鐪嬪埌錛岀敤ADO鍜孷isual   C++鎻愪緵鐨勫悇縐嶅悜瀵兼潵姹囬泦鏁版嵁搴撳伐紼嬶紝鍏墮熷害鏈夊蹇?  <br>    <br>  銆銆娉?  ODBC閫氬父鐢ㄦ潵璁塊棶涓嶅叿澶嘜LE-DB鐗規х殑闈濵icrosoft鏁版嵁搴撲腑鐨勬暟鎹紱16浣嶇殑ODBC椹卞姩紼嬪簭宸ヤ綔璧鋒潵鍙兘闈炲父緙撴參銆?  <br>    <br>  銆銆ODBC绱犱互鏈鎱㈢殑鏁版嵁璁塊棶鏂規硶鑰岃憲縐幫紝浣嗘槸寰堝彲鎯滐紝褰揂DO鎴朌AO閮戒笉鏀寔鏌愪釜鏁版嵁搴撶鐞嗗櫒鑰孫DBC鏀寔榪欎釜鏁版嵁搴撶鐞嗗櫒鏃訛紝鍦ㄨ繖縐嶇壒瀹氱殑鎯呭艦涓嬶紝浣犱粛鐒墮渶瑕佷嬌鐢∣DBC銆傚湪澶у鏁版儏鍐典笅錛岃繖鎰忓懗鐫瑕佷粠鏁版嵁搴撳巶鍟嗛偅閲岃幏寰楁墍闇鐨勯┍鍔ㄧ▼搴忥紝铏界劧Visual   C++紜疄闄勫甫浜嗕竴浜涗駭鍝佺殑椹卞姩紼嬪簭錛堝鏋滀綘姝e湪浣跨敤鏁版嵁搴撶鐞嗗櫒鐨勬煇浜涚縐樺姛鑳斤紝閭d箞灝遍渶瑕佸緩绔嬭嚜宸辯殑鎺ュ彛媯楄繖騫朵笉鏄竴浠跺崄鍒嗗洶闅劇殑浜嬶級銆傛湰璐ㄤ笂璁詫紝浣犳繪槸瑕佷嬌鐢∣DBC鏉ヨ闂甅icrosoft浜у搧涔嬪鐨勫叾瀹僁BMS浜у搧鎵鍒涘緩鐨勬暟鎹簱錛岃繖浜涙暟鎹簱騫朵笉鍏峰OLE-DB鍔熻兘銆侽DBC榪樿姹傚仛涓浜涢澶栫殑宸ヤ綔媯椾負ADO璋冩暣Visual   C++涓殑澶ч儴鍒嗗悜瀵箋?  <br>    <br>  銆銆楂樼駭鎶宸?    <br>    <br>  銆銆闄や簡浣跨敤ADO鍜孫DBC澶栵紝浣犺繕鍙互浣跨敤鍍廌AO錛堟暟鎹闂璞★級榪欐牱鐨勬棭鏈熸妧鏈紝璇ユ妧鏈寘鍚湪鍍廇ccess榪欐牱鐨凪icrosoft浜у搧涓侱AO渚濊禆浜庣敤Microsoft   Access鑷姩鑾峰緱鐨凪icrosoft   Jet鏁版嵁搴撳紩鎿庛侱AO榪樻槸杈冩棭鐗堢殑Visual   Basic鎵浣跨敤鐨勫紩鎿庯紙鏈鏂扮増鐨刅isual   Basic鍜孷isual   C++渚濊禆浜庣浉鍚岀殑ADO/OLE-DB緇勫悎錛夛紝鎵浠ュ鏋滈渶瑕佹敮鎸佽緝鏃╃殑Visual   Basic搴旂敤紼嬪簭錛岄偅涔圖AO浠嶆槸涓涓笉閿欑殑閫夋嫨銆?  <br>    <br>  銆銆灝界Microsoft鏂囦歡澹版槑錛屽彲浠ョ敤DAO璁塊棶闈濵icrosoft浜у搧寤虹珛鐨勬暟鎹簱錛屼絾浣犱粛浼氬彂鐜幫紝鍦ㄨ繖縐嶆儏鍐典笅錛屼嬌鐢ˋDO鍜孫DBC瑕佸ソ寰楀銆傝繖鏍風殑璇濓紝涓嶄絾鍏煎鎬ч棶棰樹細灝戜竴浜涳紝閫熷害涔熷皢鏈夋墍鎻愰珮錛屽洜涓烘暟鎹姹傜粡榪囩殑鎺ュ彛灞傚噺灝戜簡銆傛湁涓鏉$粡楠岃璁頒綇錛孌AO鏄璁$敤鏉ュ鐞哅DB鏂囦歡鐨勩?  <br>    <br>  銆銆ADO鐨勪竴涓棶棰樻槸錛屽畠涓嶆敮鎸佽繙紼嬮氫俊銆傝繖鏄疢icrosoft鎻愬嚭RDO錛堣繙紼嬫暟鎹璞★級鐨勫師鍥犱箣涓銆傝繖縐嶇壒鍒妧鏈湪Visual   Basic搴旂敤紼嬪簭涓殑浣跨敤錛岃姣斿湪Visual   C++涓殑浣跨敤澶氬緱澶氾紝鎵浠ユ垜鐚滄兂錛屼綘浠腑鏈夊緢澶氫漢閮藉湪浣跨敤瀹冦備絾鏄紝璁頒綇RDO浠嶆槸涓縐嶇敓鍛藉姏寰堝己鐨勬妧鏈紝榪欎竴鐐瑰緢閲嶈銆侫DO紜疄鍏鋒湁鏇夸唬RDO鐨勮繙紼嬫暟鎹湇鍔?RDS)鐗瑰緛銆傛崲璦涔嬶紝ADO鍦ㄤ竴涓蔣浠跺寘涓彁渚涗簡DAO鍜孯DO涓ょ鍔熻兘鎬с?br><br>4.MFC涓浉鍏崇被鍜孉DO綾誨簱綆浠?  <br>          1)鍗曠嫭浣跨敤CRecordSet   <br>          涓鑸儏鍐典笅AppWizard浼氬湪鏁版嵁搴撳簲鐢ㄧ▼搴忎腑鑷姩浜х敓CRecordset鐨勬淳鐢熺被錛屽茍灝嗘淳鐢熺被鍜屾煇涓暟鎹簮涓殑琛ㄨ仈緋昏搗鏉ヤ篃鍙互鍜岃鍥句笂鐨勫瓙紿楀彛鑱旂郴璧鋒潵銆備絾鏄湁鏃惰繖鏍峰仛浼氬獎鍝嶅埌紼嬪簭鐨勭伒媧繪э紝榪欐椂鍊欐垜浠彲浠ュ崟鐙嬌鐢–RecordSet綾匯傚埄鐢–RecordSet綾繪垜浠彲浠ユ墽琛孲QL璇彞錛屽茍鍙互璇誨嚭緇撴灉闆嗕腑鏁版嵁銆?    <br>    <br>  棣栧厛鎴戜滑闇瑕佸寘鍚ご鏂囦歡afxdb.h錛屽彲浠ュ皢#include   娣誨姞鍒皊tdafx.h鏂囦歡涓傛澶栧湪浣跨敤CRecordset鏃跺繀欏繪湁涓涓張涓涓狢Database瀵硅薄錛岃瀵硅薄鐨勪綔鐢ㄦ槸綆$悊鏁版嵁婧愯繛鎺ャ傜劧鍚庡彲浠ヤ駭鐢熶竴涓狢Recordset瀵硅薄錛屽埄鐢˙OOL   CRecordset::Open(   UINT   nOpenType   =   AFX_DB_USE_DEFAULT_TYPE,   LPCTSTR   lpszSQL   =   NULL,   DWORD   dwOptions   =   none   )鍙互鎵цSQL璇彞銆?  <br>    <br>  浣嗘墽琛屾垚鍔熷悗錛屽彲浠ヨ皟鐢ㄤ互涓嬬殑鍑芥暟婊氬姩鍏夋爣錛岃鍙栨暟鎹?  <br>    <br>  MoveFirst   縐誨姩鍏夋爣鍒扮涓鏉¤褰曞     <br>  MoveNext   縐誨姩鍏夋爣鍒板悗涓鏉¤褰曞     <br>  MovePrev   縐誨姩鍏夋爣鍒板墠涓鏉¤褰曞     <br>  MoveLast   縐誨姩鍏夋爣鍒版渶鍚庝竴鏉¤褰曞     <br>  IsBOF   媯嫻嬪厜鏍囨槸鍚﹀湪絎竴鏉¤褰曚笂     <br>  IsEOF   媯嫻嬪厜鏍囨槸鍚﹀湪鏈鍚庝竴鏉¤褰曚笂     <br>  GetFieldValue   寰楀埌緇撴灉涓暟鎹?    <br>    <br>  涓嬮潰鏄叿浣撲唬鐮?   <br>  /*   <br>  鍋囪CDatabase   m_dbConn涓烘垚鍛樺彉閲?  <br>  鍋囪鏈変竴涓〃鏈夊涓婼QL璇彞浜х敓錛欳REATE   TABLE   table1(loc_id   not   null)   <br>  */   <br>  void   CYourClass::ConnectToDB()   <br>  {//榪炴帴鏁版嵁搴?  <br>          BOOL   fOK   =   m_dbConn.Open("test");   <br>          TRACE("connect   fOK=%d\n",m_dbConn);   <br>  }     <br>  void   CYourClass::Select()   <br>  {//鎵цSELECT璇彞   <br>          CRecordset   rec(&m_dbConn);   <br>          BOOL   fOK   =   rec.Open(CRecordset::forwardOnly,"select   loc_id   from   table1   order   by   loc_id");   <br>          TRACE("select   fOK   =   %d\n",fOK);   <br>          TRACE("榪斿洖鐨勫垪鏁頒負錛?d\n",rec.GetRowsetSize());   <br>          CString   szResult;   <br>          while(!rec.IsEOF())   <br>          {   <br>                      rec.GetFieldValue((int)0,szResult);   <br>                      rec.MoveNext();   <br>                      TRACE("fetch   :   %s\n",szResult);   <br>            }   <br>  }   <br>      <br>  姝ゅCRecordset::GetFieldValue鏈夊緢澶氱鍘熷瀷錛屼綘鍙互閫氳繃鎸囧畾鍒椾綅緗垨鏄瓧孌靛悕鏉ヨ幏鍙栨暟鎹細   <br>    <br>  void   GetFieldValue(   LPCTSTR   lpszName,   CDBVariant&   varValue,   short   nFieldType   =   DEFAULT_FIELD_TYPE   );   <br>    <br>  void   GetFieldValue(   short   nIndex,   CDBVariant&   varValue,   short   nFieldType   =   DEFAULT_FIELD_TYPE   );   <br>    <br>  void   GetFieldValue(   LPCTSTR   lpszName,   CString&   strValue   );   <br>    <br>  void   GetFieldValue(   short   nIndex,   CString&   strValue   );     <br>    <br>  濡傛灉浣跨敤CDBVariant綾誨瀷鍙橀噺鏉ヨ幏鍙栫粨鏋滐紝浣犲彲浠ュ緱鍒頒換浣曠被鍨嬬殑緇撴灉銆傚湪CDBVariant::m_dwType鎴愬憳鍙橀噺涓褰曚簡璇ュ彉閲忔墍鍖呭惈鐨勬暟鎹被鍨嬶紝鏍規嵁璇ュ彉閲忕殑鍊間綘鍙互紜畾鏁版嵁綾誨瀷騫跺紩鐢–DBVariant瀵硅薄涓殑鐩稿簲鎴愬憳鍙橀噺銆?br><br>2)vc鏁版嵁搴撶紪紼嬩腑CDatabase綾葷殑鐢ㄦ硶綆浠?  <br>      瑕佸緩绔嬩笌鏁版嵁婧愮殑榪炴帴錛岄鍏堝簲鏋勯犱竴涓狢Database瀵硅薄錛岀劧鍚庡啀璋冪敤CDatabase鐨凮pen鎴愬憳鍑芥暟錛嶰pen鍑芥暟璐熻矗寤虹珛榪炴帴錛屽叾澹版槑涓?  <br>    <br>  virtual   BOOL   Open(   LPCTSTR   lpszDSN,   BOOL   bExclusive   =   FALSE,   BOOL   bReadOnly   =   FALSE,   LPCTSTR   lpszConnect   =   “ODBC;”,   BOOL   bUseCursorLib   =   TRUE   );   throw(   CDBException,   CMemoryException   );   <br>    <br>  銆銆鍙傛暟lpszDSN鎸囧畾浜嗘暟鎹簮鍚嶏紙鏋勯犳暟鎹簮鐨勬柟娉曞皢鍦ㄥ悗闈粙緇嶏級錛屽湪lpszConnect鍙傛暟涓篃鍙寘鎷暟鎹簮鍚嶏紝姝ゆ椂lpszDSN蹇呴渶涓篘ULL錛岃嫢鍦ㄥ嚱鏁頒腑鏈彁渚涙暟鎹簮鍚嶄笖浣縧pszDSN涓篘ULL錛屽垯浼氭樉紺轟竴涓暟鎹簮瀵硅瘽妗嗭紝鐢ㄦ埛鍙互鍦ㄨ瀵硅瘽妗嗕腑閫夋嫨涓涓暟鎹簮錛庡弬鏁癰Exclusive璇存槑鏄惁鐙崰鏁版嵁婧愶紝鐢變簬鐩墠鐗堟湰鐨勭被搴撹繕涓嶆敮鎸佺嫭鍗犳柟寮忥紝鏁呰鍙傛暟鐨勫煎簲璇ユ槸FALSE錛岃繖璇存槑鏁版嵁婧愭槸琚叡浜殑錛庡弬鏁癰ReadOnly鑻ヤ負TRUE鍒欏鏁版嵁婧愮殑榪炴帴鏄彧璇葷殑錛庡弬鏁發pszConnect鎸囧畾浜嗕竴涓繛鎺ュ瓧絎︿覆錛岃繛鎺ュ瓧絎︿覆涓彲浠ュ寘鎷暟鎹簮鍚嶃佺敤鎴峰笎鍙?ID)鍜屽彛浠ょ瓑淇℃伅錛屽瓧絎︿覆涓殑錛侽DBC錛傝〃紺鴻榪炴帴鍒頒竴涓狾DBC鏁版嵁婧愪笂錛庡弬鏁癰UseCursorLib鑻ヤ負TRUE錛屽垯浼氳杞藉厜鏍囧簱錛屽惁鍒欎笉瑁呰澆錛屽揩鐓ч渶瑕佸厜鏍囧簱錛屽姩鎬侀泦涓嶉渶瑕佸厜鏍囧簱錛?  鑻ヨ繛鎺ユ垚鍔燂紝鍑芥暟榪斿洖TRUE錛岃嫢榪斿洖FALSE錛屽垯璇存槑鐢ㄦ埛鍦ㄦ暟鎹簮瀵硅瘽妗嗕腑鎸変簡Cancel鎸夐挳銆傝嫢鍑芥暟鍐呴儴鍑虹幇閿欒錛屽垯妗嗘灦浼氫駭鐢熶竴涓紓甯搞?  <br>    <br>  銆銆涓嬮潰鏄竴浜涜皟鐢∣pen鍑芥暟鐨勪緥瀛愩?  <br>    <br>  CDatabase   m_db;   //鍦ㄦ枃妗g被涓祵鍏ヤ竴涓狢Database瀵硅薄   <br>    <br>  //榪炴帴鍒頒竴涓悕涓猴紓Student   Registration錛傜殑鏁版嵁婧?  <br>    <br>  m_db.Open("Student   Registration");     <br>    <br>  //鍦ㄨ繛鎺ユ暟鎹簮鐨勫悓鏃舵寚瀹氫簡鐢ㄦ埛甯愬彿鍜屽彛浠?  <br>    <br>  m_db.Open(NULL,FALSE,FALSE,"ODBC;DSN=Student   Registration;UID=ZYF;PWD=1234");   <br>  m_db.Open(NULL);   //灝嗗脊鍑轟竴涓暟鎹簮瀵硅瘽妗?  <br>  銆   <br>    <br>  銆銆瑕佷粠涓涓暟鎹簮涓劚紱伙紝鍙皟鐢ㄥ嚱鏁癈lose銆傚湪鑴辯鍚庯紝鍙互鍐嶆璋冪敤Open鍑芥暟鏉ュ緩绔嬩竴涓柊鐨勮繛鎺ワ紟璋冪敤IsOpen鍙垽鏂綋鍓嶆槸鍚︽湁涓涓繛鎺ワ紝璋冪敤GetConnect鍙繑鍥炲綋鍓嶇殑榪炴帴瀛楃涓層傚嚱鏁扮殑澹版槑涓?  <br>    <br>  virtual   void   Close(   );   <br>  BOOL   IsOpen(   )   const;   //榪斿洖TRUE鍒欒〃鏄庡綋鍓嶆湁涓涓繛鎺?  <br>  const   CString&   GetConnect(   )   const;   <br>    <br>  銆銆CDatabase鐨勬瀽鏋勫嚱鏁頒細璋冪敤Close錛屾墍浠ュ彧瑕佸垹闄や簡CDatabase瀵硅薄灝卞彲浠ヤ笌鏁版嵁婧愯劚紱匯?br><br>3)vc鏁版嵁搴撶紪紼嬩腑CRecordView綾葷畝浠?  <br>          CRecordView錛堣褰曡鍥撅級鏄疌FormView鐨勬淳鐢熺被錛屽畠鎻愪緵浜嗕竴涓〃鍗曡鍥炬潵鏄劇ず褰撳墠璁板綍錛庣敤鎴峰彲浠ラ氳繃琛ㄥ崟瑙嗗浘鏄劇ず褰撳墠璁板綍錛庨氳繃璁板綍瑙嗗浘錛屽彲浠ヤ慨鏀廣佹坊鍔犲拰鍒犻櫎鏁版嵁錛庣敤鎴蜂竴鑸渶瑕佸垱寤轟竴涓狢RecordView鐨勬淳鐢熺被騫跺湪鍏跺搴旂殑瀵硅瘽妗嗘ā鏉夸腑鍔犲叆鎺т歡錛?  <br>          璁板綍瑙嗗浘浣跨敤DDX鏁版嵁浜ゆ崲鏈哄埗鍦ㄨ〃鍗曚腑鐨勬帶浠跺拰璁板綍闆嗕箣闂翠氦鎹㈡暟鎹傚湪鍓嶉潰浠嬬粛鐨凞DX閮芥槸鍦ㄦ帶浠跺拰鎺т歡鐖剁獥鍙g殑鏁版嵁鎴愬憳涔嬮棿浜ゆ崲鏁版嵁錛岃岃褰曡鍥懼垯鏄湪鎺т歡鍜屼竴涓閮ㄥ璞★紙CRecordset鐨勬淳鐢熺被瀵硅薄錛変箣闂翠氦鎹㈡暟鎹紟娓呭崟10.3鏄劇ず浜嗕竴涓狢RecordView鐨勬淳鐢熺被鐨凞oDataExchange鍑芥暟錛岃鑰呭彲浠ョ湅鍑猴紝璇ュ嚱鏁版槸涓巑_pSet鎸囬拡鎸囧悜鐨勮褰曢泦瀵硅薄鐨勫煙鏁版嵁鎴愬憳浜ゆ崲鏁版嵁鐨勶紝鑰屼笖錛屼氦鎹㈡暟鎹殑浠g爜鏄疌lassWizard鑷姩鍔犲叆鐨勶紟鍦ㄥ悗闈㈢殑渚嬪瓙涓紝灝嗗悜璇昏呬粙緇嶇敤ClassWizard榪炴帴璁板綍瑙嗗浘涓庤褰曢泦瀵硅薄鐨勬柟娉曪紟   <br>    <br>        鐢ㄦ潵涓庤褰曢泦瀵硅薄鐨勫煙鏁版嵁鎴愬憳浜ゆ崲鏁版嵁鐨凞oDataExchange鍑芥暟   <br>    <br>  void   CSectionForm::DoDataExchange(CDataExchange*   pDX)   <br>  {   <br>          CRecordView::DoDataExchange(pDX);   <br>  //{{AFX_DATA_MAP(CSectionForm)   <br>          DDX_FieldText(pDX,   IDC_COURSE,   m_pSet->m_CourseID,   m_pSet);   <br>          DDX_FieldText(pDX,   IDC_SECTION,   m_pSet->m_SectionNo,   m_pSet);   <br>          DDX_FieldText(pDX,   IDC_INSTRUCTOR,   m_pSet->m_InstructorID,   m_pSet);   <br>          DDX_FieldText(pDX,   IDC_ROOM,   m_pSet->m_RoomNo,   m_pSet);   <br>          DDX_FieldText(pDX,   IDC_SCHEDULE,   m_pSet->m_Schedule,   m_pSet);   <br>          DDX_FieldText(pDX,   IDC_CAPACITY,   m_pSet->m_Capacity,   m_pSet);   <br>  //}}AFX_DATA_MAP   <br>  }   <br>    <br>  CRecordView鏈韓鎻愪緵浜嗗涓嬮潰鍥涗釜鍛戒護鐨勬敮鎸侊細   <br>    <br>  ID_RECORD_FIRST   //婊氬姩鍒拌褰曢泦鐨勭涓涓褰?  <br>  ID_RECORD_LAST   //婊氬姩鍒拌褰曢泦鐨勬渶鍚庝竴涓褰?  <br>  ID_RECORD_NEXT   //鍓嶈繘涓涓褰?  <br>  ID_RECORD_PREV   //鍚庨涓涓褰?  <br>    <br>  CRecordView鎻愪緵浜哋nMove鎴愬憳鍑芥暟澶勭悊榪欏洓涓懡浠ゆ秷鎭紝OnMove鍑芥暟瀵圭敤鎴鋒槸閫忔槑鐨勶紝涓嬮潰鍒楀嚭浜哋nMove鐨勬簮浠g爜錛?  <br>    <br>  BOOL   CRecordView::OnMove(UINT   nIDMoveCommand)   <br>  {   <br>          CRecordset*   pSet   =   OnGetRecordset();   <br>          if   (pSet->CanUpdate())   <br>          {   <br>                    pSet->Edit();   <br>                    if   (!UpdateData())   <br>                              return   TRUE;   <br>                    pSet->Update();   <br>            }   <br>            switch   (nIDMoveCommand)   <br>          {   <br>          case   ID_RECORD_PREV:   <br>                    pSet->MovePrev();   <br>                    if   (!pSet->IsBOF())   <br>                            break;   <br>          case   ID_RECORD_FIRST:   <br>                    pSet->MoveFirst();   <br>                    break;   <br>          case   ID_RECORD_NEXT:   <br>                    pSet->MoveNext();   <br>                    if   (!pSet->IsEOF())   <br>                            break;   <br>                    if   (!pSet->CanScroll())   <br>                    {   <br>                    //   clear   out   screen   since   we're   sitting   on   EOF   <br>                            pSet->SetFieldNull(NULL);   <br>                            break;     <br>                    }   <br>            case   ID_RECORD_LAST:   <br>                      pSet->MoveLast();   <br>                      break;   <br>            default:   <br>            //   Unexpected   case   value   <br>                      ASSERT(FALSE);   <br>  }   <br>  //   Show   results   of   move   operation   <br>          UpdateData(FALSE);   <br>          return   TRUE;   <br>  }   <br>        鍦ㄥ嚱鏁扮殑寮澶村厛璋冪敤CRecordset::Edit榪涘叆緙栬緫妯″紡錛屾帴鐫璋冪敤UpdateData灝嗘帶浠朵腑鐨勬暟鎹洿鏂板埌璁板綍闆嗗璞$殑鍩熸暟鎹垚鍛樹腑錛岀劧鍚庤皟鐢–Recordset::Update灝嗗煙鏁版嵁鎴愬憳鐨勫煎啓鍏ユ暟鎹簮錛庤繖璇存槑OnMove鍦ㄦ粴鍔ㄨ褰曠殑鍚屾椂浼氬畬鎴愬鍘熸潵璁板綍鐨勪慨鏀癸紟   <br>    <br>  銆銆鍦ㄥ嚱鏁扮殑涓棿鏈変竴涓垎鏀鍙ョ敤鏉ュ鐞嗗洓涓笉鍚岀殑鍛戒護錛屽湪榪欎釜鍒嗘敮璇彞涓皟鐢ㄤ簡CRecordset鐨勫悇縐嶇敤浜庢粴鍔ㄨ褰曠殑鎴愬憳鍑芥暟錛岃繖浜涘嚱鏁板湪婊氬姩鍒頒竴涓柊鐨勮褰曟椂浼氭妸璇ヨ褰曠殑鍐呭璁劇疆鍒板煙鏁版嵁鎴愬憳涓紟鍦ㄥ嚱鏁扮殑鏈熬璋冪敤UpdateData(FALSE)鎶婃柊鐨勫綋鍓嶈褰曠殑鍐呭璁劇疆鍒拌〃鍗曠殑鎺т歡涓?  <br>    <br>  銆銆鐢辨鍙錛孫nMove涓鏉ヤ竴鍥炲畬鎴愪簡涓ゆ琛ㄥ崟鎺т歡鍜屾暟鎹簮鐨勬暟鎹氦鎹㈣繃紼嬶紟閫氳繃鍒嗘瀽璇ュ嚱鏁幫紝璇昏呭彲浠ュ浼氬湪嫻忚璁板綍鏃跺浣曟帶鍒禗DX鍜孌FX鏁版嵁浜ゆ崲錛? <img src ="http://m.shnenglu.com/finehai/aggbug/90595.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/finehai/" target="_blank">Bluesea</a> 2009-07-20 11:16 <a href="http://m.shnenglu.com/finehai/archive/2009/07/20/90595.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍒╃敤vc6.0榪涜ADO緙栫▼鐨勭畝鍗曚緥瀛?/title><link>http://m.shnenglu.com/finehai/archive/2009/07/20/90594.html</link><dc:creator>Bluesea</dc:creator><author>Bluesea</author><pubDate>Mon, 20 Jul 2009 03:13:00 GMT</pubDate><guid>http://m.shnenglu.com/finehai/archive/2009/07/20/90594.html</guid><wfw:comment>http://m.shnenglu.com/finehai/comments/90594.html</wfw:comment><comments>http://m.shnenglu.com/finehai/archive/2009/07/20/90594.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/finehai/comments/commentRss/90594.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/finehai/services/trackbacks/90594.html</trackback:ping><description><![CDATA[<p>ActiveX鏁版嵁瀵硅薄錛圓DO錛夋槸OLE DB涓婇潰鐨勯珮灞傛暟鎹簱API銆傛垜浠湪C錛嬶紜紼嬪簭涓篃鍙互璋冪敤ADO銆傛湰鏂囧皢鍦╒C 6.0鐜涓嬪仛涓涓皬灝忕殑渚嬪瓙瑙i噴濡備綍浣跨敤ADO銆?br>                        銆<br>1. 鐢熸垚搴旂敤紼嬪簭妗嗘灦騫跺垵濮嬪寲OLE/COM搴撶幆澧?鍒涘緩涓涓爣鍑嗙殑MFC AppWizard(exe)搴旂敤紼嬪簭錛岀劧鍚庡湪搴旂敤紼嬪簭綾葷殑InitInstance鍑芥暟涓垵濮嬪寲OLE/COM搴擄紙鍥犱負ADO搴撴槸涓涓狢OM DLL搴擄級銆?br>                        銆</p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">BOOL CADOTestApp::InitInstance()                      銆銆<br><img id=Codehighlighter1_57_114_Open_Image onclick="this.style.display='none'; Codehighlighter1_57_114_Open_Text.style.display='none'; Codehighlighter1_57_114_Closed_Image.style.display='inline'; Codehighlighter1_57_114_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_57_114_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_57_114_Closed_Text.style.display='none'; Codehighlighter1_57_114_Open_Image.style.display='inline'; Codehighlighter1_57_114_Open_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_57_114_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_57_114_Open_Text><span style="COLOR: #000000">{ </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">鍒濆鍖朞LE/COM搴撶幆澧?nbsp;                       </span><span style="COLOR: #008000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000"> AfxOleInit();<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div> <p><br>                        銆銆<br>2. 寮曞叆ADO搴撴枃浠?nbsp;                       銆銆<br>浣跨敤ADO鍓嶅繀欏誨湪宸ョ▼鐨剆tdafx.h鏂囦歡閲岀敤鐩存帴寮曞叆絎﹀彿錛僫mport寮曞叆ADO搴撴枃浠訛紝浠ヤ嬌緙栬瘧鍣ㄨ兘姝g‘緙栬瘧銆備唬鐮佸涓嬶細</p> <p>                        銆銆 </p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">錛僫nclude 銆坈omdef.h銆?nbsp;                       銆銆 <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>錛僫mport </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">c:\program files\common files\system\ado\msado15.dll</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">                       銆銆 <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>no_namespace                        銆銆 <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>rename (</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">EOF</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">adoEOF</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)</span></div> <p><br>                        銆銆<br>澶存枃浠禼omdef.h浣挎垜浠殑搴旂敤紼嬪簭鑳藉浣跨敤Visual C錛嬶紜涓殑涓浜涚壒孌奀OM鏀寔綾伙紝榪欎簺綾諱嬌寰楀鐞哋LE鑷不鏇翠負瀹規槗涓浜涳紝OLE鑷不鏄疉DO浣跨敤鐨勬暟鎹被鍨嬨傚悗涓夎浣跨敤錛僫mport鎸囦護鍦ㄦ垜浠殑搴旂敤紼嬪簭涓緭鍏DO綾誨簱瀹氫箟銆?nbsp;                       銆銆<br>ADO綾葷殑瀹氫箟鏄綔涓轟竴縐嶈祫婧愬瓨鍌ㄥ湪ADO DLL(msado15.dll錛変腑錛屽湪鍏跺唴閮ㄧО涓虹被鍨嬪簱銆傜被鍨嬪簱鎻忚堪浜嗚嚜娌繪帴鍙o紝浠ュ強C錛嬶紜浣跨敤鐨凜OM vtable鎺ュ彛銆傚綋浣跨敤錛僫mport鎸囦護鏃訛紝鍦ㄨ繍琛屾椂Visual C錛嬶紜闇瑕佷粠ADO DLL涓鍙栬繖涓被鍨嬪簱錛屽茍浠ユ鍒涘緩涓緇凜錛嬶紜澶存枃浠躲傝繖浜涘ご鏂囦歡鍏鋒湁.tli 鍜?tlh鎵╁睍鍚嶏紝璇昏呭彲浠ュ湪欏圭洰鐨勭洰褰曚笅鎵懼埌榪欎袱涓枃浠躲傚湪C錛嬶紜紼嬪簭浠g爜涓皟鐢ㄧ殑ADO綾昏鍦ㄨ繖浜涙枃浠朵腑瀹氫箟銆?nbsp;                       銆銆<br>紼嬪簭鐨勭涓夎鎸囩ずADO瀵硅薄涓嶄嬌鐢ㄥ悕縐扮┖闂淬傚湪鏈変簺搴旂敤紼嬪簭涓紝鐢變簬搴旂敤紼嬪簭涓殑瀵硅薄涓嶢DO涓殑瀵硅薄涔嬮棿鍙兘浼氬嚭鐜板懡鍚嶅啿紿侊紝鎵浠ユ湁蹇呰浣跨敤鍚嶇О絀洪棿銆傚鏋滆浣跨敤鍚嶇О絀洪棿錛屽垯鍙妸絎笁琛岀▼搴忎慨鏀逛負錛?rename_namespace("AdoNS")銆傜鍥涜浠g爜灝咥DO涓殑EOF(鏂囦歡緇撴潫)鏇村悕涓篴doEOF錛屼互閬垮厤涓庡畾涔変簡鑷繁鐨凟OF鐨勫叾浠栧簱鍐茬獊銆?br>                        銆銆<br>3錛庡埄鐢ㄦ櫤鑳芥寚閽堣繘琛屾暟鎹簱鎿嶄綔                        銆銆<br>鍦–aboutDlg澶存枃浠朵腑瀹氫箟涓や釜ADO鏅鴻兘鎸囬拡綾誨疄渚?騫跺湪瀵硅瘽妗嗕腑鍔犲叆涓涓狶istCtrl銆?br><br>_ConnectionPtr m_pConnection;                        <br>_RecordsetPtr m_pRecordset;                        銆銆<br>ClistCtrl m_List;<br><br>ADO搴撳寘鍚笁涓櫤鑳芥寚閽?_ConnectionPtr銆乢CommandPtr鍜宊RecordsetPtr銆?nbsp;              <br>_ConnectionPtr閫氬父琚敤鏉ュ垱寤轟竴涓暟鎹繛鎺ユ垨鎵ц涓鏉′笉榪斿洖浠諱綍緇撴灉鐨凷QL璇彞錛屽涓涓瓨鍌ㄨ繃紼嬨?nbsp;                       <br>_CommandPtr榪斿洖涓涓褰曢泦銆傚畠鎻愪緵浜嗕竴縐嶇畝鍗曠殑鏂規硶鏉ユ墽琛岃繑鍥炶褰曢泦鐨勫瓨鍌ㄨ繃紼嬪拰SQL璇彞銆傚湪浣跨敤_CommandPtr鎺ュ彛鏃訛紝鍙互鍒╃敤鍏ㄥ眬_ConnectionPtr鎺ュ彛錛屼篃鍙互鍦╛CommandPtr鎺ュ彛閲岀洿鎺ヤ嬌鐢ㄨ繛鎺ヤ覆銆?nbsp;                       <br>_RecordsetPtr鏄竴涓褰曢泦瀵硅薄銆備笌浠ヤ笂涓ょ瀵硅薄鐩告瘮錛屽畠瀵硅褰曢泦鎻愪緵浜嗘洿澶氱殑鎺у埗鍔熻兘錛屽璁板綍閿佸畾銆佹父鏍囨帶鍒剁瓑銆?br>                        銆銆<br>鍦∣nInitDialog()涓姞鍏ヤ互涓嬩唬鐮?<br></p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">BOOL CAboutDlg::OnInitDialog()<br><img id=Codehighlighter1_31_913_Open_Image onclick="this.style.display='none'; Codehighlighter1_31_913_Open_Text.style.display='none'; Codehighlighter1_31_913_Closed_Image.style.display='inline'; Codehighlighter1_31_913_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_31_913_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_31_913_Closed_Text.style.display='none'; Codehighlighter1_31_913_Open_Image.style.display='inline'; Codehighlighter1_31_913_Open_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_31_913_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_31_913_Open_Text><span style="COLOR: #000000">{<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    CDialog::OnInitDialog();<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    _variant_t TheValue;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    m_List.ResetContent();<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    m_pConnection.CreateInstance(_uuidof(Connection));<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    m_pRecordset.CreateInstance(_uuidof(Recordset));<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_214_728_Open_Image onclick="this.style.display='none'; Codehighlighter1_214_728_Open_Text.style.display='none'; Codehighlighter1_214_728_Closed_Image.style.display='inline'; Codehighlighter1_214_728_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_214_728_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_214_728_Closed_Text.style.display='none'; Codehighlighter1_214_728_Open_Image.style.display='inline'; Codehighlighter1_214_728_Open_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_214_728_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_214_728_Open_Text><span style="COLOR: #000000">{<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        m_pConnection</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">Open(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">DSN=ADOTest</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">); </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">榪炴帴鍙綔ADOTest鐨凮DBC鏁版嵁婧?/span><span style="COLOR: #008000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">        m_pRecordset</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">Open(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">SELECT * FROM BlockDefine</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,(IDispatch</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)m_pConnection,<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        adOpenDynamic,<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        adLockOptimistic,<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        adCmdText);<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">鎵цSQL璇彞寰楀埌涓涓褰曢泦</span><span style="COLOR: #008000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">m_pRecordset</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">adoEOF)<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">閬嶅巻鎵鏈夎褰?/span><span style="COLOR: #008000"><br><img id=Codehighlighter1_474_674_Open_Image onclick="this.style.display='none'; Codehighlighter1_474_674_Open_Text.style.display='none'; Codehighlighter1_474_674_Closed_Image.style.display='inline'; Codehighlighter1_474_674_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_474_674_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_474_674_Closed_Text.style.display='none'; Codehighlighter1_474_674_Open_Image.style.display='inline'; Codehighlighter1_474_674_Open_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #000000">        </span><span id=Codehighlighter1_474_674_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_474_674_Open_Text><span style="COLOR: #000000">{<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            TheValue </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> m_pRecordset</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">GetCollect(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">BlockIndex</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">寰楀埌瀛楁BlockIndex鐨勫?/span><span style="COLOR: #008000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">            </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(TheValue.vt</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">VT_NULL)<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>                m_List.AddString((</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)_bstr_t(TheValue)); </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">灝嗚鍊煎姞鍏ュ埌鍒楄〃鎺т歡涓?/span><span style="COLOR: #008000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            m_pRecordset</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">MoveNext();<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>        }</span></span><span style="COLOR: #000000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        m_pRecordset</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">Close();<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        m_pConnection</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">Close();<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000">(_com_error e) </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">寮傚父澶勭悊</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_759_798_Open_Image onclick="this.style.display='none'; Codehighlighter1_759_798_Open_Text.style.display='none'; Codehighlighter1_759_798_Closed_Image.style.display='inline'; Codehighlighter1_759_798_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_759_798_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_759_798_Closed_Text.style.display='none'; Codehighlighter1_759_798_Open_Image.style.display='inline'; Codehighlighter1_759_798_Open_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #000000">    </span><span id=Codehighlighter1_759_798_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_759_798_Open_Text><span style="COLOR: #000000">{<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        AfxMessageBox(e</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">ErrorMessage());<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    m_pRecordset </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> NULL;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    m_pConnection </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> NULL;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> TRUE; </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> return TRUE unless you set the focus to a control</span><span style="COLOR: #008000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top></span><span style="COLOR: #000000">}</span></span></div> <p><br> </p> <img src ="http://m.shnenglu.com/finehai/aggbug/90594.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/finehai/" target="_blank">Bluesea</a> 2009-07-20 11:13 <a href="http://m.shnenglu.com/finehai/archive/2009/07/20/90594.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>VC++涓嬩嬌鐢ˋDO緙栧啓鏁版嵁搴撶▼搴?/title><link>http://m.shnenglu.com/finehai/archive/2009/07/20/90591.html</link><dc:creator>Bluesea</dc:creator><author>Bluesea</author><pubDate>Mon, 20 Jul 2009 02:59:00 GMT</pubDate><guid>http://m.shnenglu.com/finehai/archive/2009/07/20/90591.html</guid><wfw:comment>http://m.shnenglu.com/finehai/comments/90591.html</wfw:comment><comments>http://m.shnenglu.com/finehai/archive/2009/07/20/90591.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/finehai/comments/commentRss/90591.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/finehai/services/trackbacks/90591.html</trackback:ping><description><![CDATA[<div id="hvzpftn" class=prettyprint id=C><span id="hvzpftn" class=pln>VC</span><span id="hvzpftn" class=pun>++涓嬩嬌鐢?/span><span id="hvzpftn" class=pln>ADO</span><span id="hvzpftn" class=pun>緙栧啓鏁版嵁搴撶▼搴?/span><span id="hvzpftn" class=pln><br> <br></span><span id="hvzpftn" class=pun>鍑嗗錛?/span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=lit>1</span><span id="hvzpftn" class=pun>)銆佸紩鍏?/span><span id="hvzpftn" class=pln>ADO</span><span id="hvzpftn" class=pun>綾?/span><span id="hvzpftn" class=pln>   <br><br> 鍦╯tdafx.h涓姞鍏ュ涓嬭鍙ワ細<br></span><span id="hvzpftn" class=com>#import  "c:\program  files\common  files\system\ado\msado15.dll"  \ </span><span id="hvzpftn" class=pln><br>no_namespace  </span><span id="hvzpftn" class=pun>\</span><span id="hvzpftn" class=pln> <br>rename  </span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=str>"EOF"</span><span id="hvzpftn" class=pun>,</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=str>"adoEOF"</span><span id="hvzpftn" class=pun>)</span><span id="hvzpftn" class=pln>         <br>    <br></span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=lit>2</span><span id="hvzpftn" class=pun>)銆佸垵濮嬪寲</span><span id="hvzpftn" class=pln>COM <br> <br></span><span id="hvzpftn" class=pun>鍦?/span><span id="hvzpftn" class=pln>MFC</span><span id="hvzpftn" class=pun>涓彲浠ョ敤</span><span id="hvzpftn" class=typ>AfxOleInit</span><span id="hvzpftn" class=pun>();闈?/span><span id="hvzpftn" class=pln>MFC</span><span id="hvzpftn" class=pun>鐜涓敤:</span><span id="hvzpftn" class=pln>   <br></span><span id="hvzpftn" class=typ>CoInitialize</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>NULL</span><span id="hvzpftn" class=pun>);</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=typ>CoUnInitialize</span><span id="hvzpftn" class=pun>();</span><span id="hvzpftn" class=pln> <br> <br></span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=lit>3</span><span id="hvzpftn" class=pun>)</span><span id="hvzpftn" class=com>#import  鍖呭惈鍚庡氨鍙互鐢?涓櫤鑳芥寚閽堜簡:_ConnectionPtr銆乢RecordsetPtr鍜宊CommandPtr </span><span id="hvzpftn" class=pln><br></span><span id="hvzpftn" class=lit><br>1</span><span id="hvzpftn" class=pun>.榪炴帴鍜屽叧闂暟鎹簱<br><br></span><span id="hvzpftn" class=pln> </span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=lit>1</span><span id="hvzpftn" class=pun>)榪炴帴</span><span id="hvzpftn" class=pln>   <br></span><span id="hvzpftn" class=pun>涓鑸湪</span><span id="hvzpftn" class=typ>App</span><span id="hvzpftn" class=pun>綾繪垚鍛樺嚱鏁?/span><span id="hvzpftn" class=typ>InitInstance</span><span id="hvzpftn" class=pun>()閲屽垵濮嬪寲</span><span id="hvzpftn" class=pln><br></span><span id="hvzpftn" class=pun>渚嬪瓙:榪炴帴</span><span id="hvzpftn" class=typ>Access</span><span id="hvzpftn" class=pun>鏁版嵁搴?/span><span id="hvzpftn" class=pln> <br>           </span><span id="hvzpftn" class=typ>AfxOleInit</span><span id="hvzpftn" class=pun>();</span><span id="hvzpftn" class=com>//鍒濆鍖?</span><span id="hvzpftn" class=pln><br>           HRESULT  hr</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln> <br>           </span><span id="hvzpftn" class=kwd>try</span><span id="hvzpftn" class=pln> <br>           </span><span id="hvzpftn" class=pun>{</span><span id="hvzpftn" class=pln> <br>                       hr  </span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=pln>  m_pConnection</span><span id="hvzpftn" class=pun>.</span><span id="hvzpftn" class=typ>CreateInstance</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=str>"ADODB.Connection"</span><span id="hvzpftn" class=pun>);</span><span id="hvzpftn" class=com>///鍒涘緩Connection瀵硅薄 </span><span id="hvzpftn" class=pln><br>                       </span><span id="hvzpftn" class=kwd>if</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>SUCCEEDED</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>hr</span><span id="hvzpftn" class=pun>))</span><span id="hvzpftn" class=pln> <br>                       </span><span id="hvzpftn" class=pun>{</span><span id="hvzpftn" class=pln> <br>                                   m_pConnection</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>ConnectionTimeout</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=lit>0</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln> <br>                                   hr  </span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=pln>  m_pConnection</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>Open</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=str>"Provider=Microsoft.Jet.OLEDB.4.0;Data  Source=db.mdb"</span><span id="hvzpftn" class=pun>,</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=str>""</span><span id="hvzpftn" class=pun>,</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=str>""</span><span id="hvzpftn" class=pun>,</span><span id="hvzpftn" class=pln>  adModeUnknown</span><span id="hvzpftn" class=pun>);</span><span id="hvzpftn" class=pln> <br>                                   </span><span id="hvzpftn" class=com>//m_pConnection->PutDefaultDatabase  ((_bstr_t)"DB");//璁劇疆榛樿鏁?/span><span id="hvzpftn" class=pln><br></span><span id="hvzpftn" class=pun>鎹簱</span><span id="hvzpftn" class=pln> <br> <br>                                   m_pCommand</span><span id="hvzpftn" class=pun>.</span><span id="hvzpftn" class=typ>CreateInstance</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>__uuidof</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=typ>Command</span><span id="hvzpftn" class=pun>));</span><span id="hvzpftn" class=pln> <br>                                   m_pCommand</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>CommandTimeout</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=lit>5</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln> <br>                                   m_pCommand</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>ActiveConnection</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=pln>  m_pConnection</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln> <br>                       </span><span id="hvzpftn" class=pun>}</span><span id="hvzpftn" class=pln> <br>           </span><span id="hvzpftn" class=pun>}</span><span id="hvzpftn" class=pln> <br>           </span><span id="hvzpftn" class=kwd>catch</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>_com_error  e</span><span id="hvzpftn" class=pun>)</span><span id="hvzpftn" class=com>///鎹曟崏寮傚父 </span><span id="hvzpftn" class=pln><br>           </span><span id="hvzpftn" class=pun>{</span><span id="hvzpftn" class=pln> <br>                       </span><span id="hvzpftn" class=typ>CString</span><span id="hvzpftn" class=pln>  errormessage</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln> <br>                       errormessage</span><span id="hvzpftn" class=pun>.</span><span id="hvzpftn" class=typ>Format</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=str>"榪炴帴鏁版嵁搴撳け璐?\r\n閿欒淇℃伅:%s"</span><span id="hvzpftn" class=pun>,</span><span id="hvzpftn" class=pln>e</span><span id="hvzpftn" class=pun>.</span><span id="hvzpftn" class=typ>ErrorMessage</span><span id="hvzpftn" class=pun>());</span><span id="hvzpftn" class=pln> <br>                       </span><span id="hvzpftn" class=typ>AfxMessageBox</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>errormessage</span><span id="hvzpftn" class=pun>);</span><span id="hvzpftn" class=com>///鏄劇ず閿欒淇℃伅 </span><span id="hvzpftn" class=pln><br>         </span><span id="hvzpftn" class=kwd>return</span><span id="hvzpftn" class=pln> FALSE</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln><br>           </span><span id="hvzpftn" class=pun>}</span><span id="hvzpftn" class=pln> <br> <br> <br></span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=lit>2</span><span id="hvzpftn" class=pun>)銆佸叧闂?/span><span id="hvzpftn" class=pln>   <br> <br></span><span id="hvzpftn" class=pun>涓鑸湪</span><span id="hvzpftn" class=typ>App</span><span id="hvzpftn" class=pun>綾繪垚鍛樺嚱鏁?/span><span id="hvzpftn" class=typ>InitInstance</span><span id="hvzpftn" class=pun>()閲屽叧闂暟鎹簱榪炴帴</span><span id="hvzpftn" class=pln><br></span><span id="hvzpftn" class=com>//濡傛灉鏁版嵁搴撹繛鎺ユ湁鏁?</span><span id="hvzpftn" class=pln><br></span><span id="hvzpftn" class=kwd>if</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>  m_pConnection</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>State</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=pun>)</span><span id="hvzpftn" class=pln> <br>                       m_pConnection</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>Close</span><span id="hvzpftn" class=pun>();</span><span id="hvzpftn" class=pln> <br>m_pConnection  </span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=pln>  NULL</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln>     <br> <br></span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=lit>3</span><span id="hvzpftn" class=pun>)銆佽緗繛鎺ユ椂闂?/span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=com>//璁劇疆榪炴帴鏃墮棿-----------------------------------   </span><span id="hvzpftn" class=pln><br>pConnection</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=pln>put_ConnectionTimeout</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=kwd>long</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=lit>5</span><span id="hvzpftn" class=pun>));</span><span id="hvzpftn" class=pln> <br><br></span><span id="hvzpftn" class=lit>2</span><span id="hvzpftn" class=pun>.鎵撳紑涓涓粨鏋滈泦</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=lit>1</span><span id="hvzpftn" class=pun>)鎵撳紑,棣栧厛鍒涘緩涓涓?/span><span id="hvzpftn" class=pln>_RecordsetPtr</span><span id="hvzpftn" class=pun>瀹炰緥,鐒跺悗璋冪敤</span><span id="hvzpftn" class=typ>Open</span><span id="hvzpftn" class=pun>()寰楀埌涓鏉?/span><span id="hvzpftn" class=pln>SQL</span><span id="hvzpftn" class=pun>璇彞鐨勬墽琛岀粨鏋?/span><span id="hvzpftn" class=pln> <br>_RecordsetPtr            m_pRecordset</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln> <br>m_pRecordset</span><span id="hvzpftn" class=pun>.</span><span id="hvzpftn" class=typ>CreateInstance</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>__uuidof</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=typ>Recordset</span><span id="hvzpftn" class=pun>));</span><span id="hvzpftn" class=pln> <br> <br></span><span id="hvzpftn" class=com>//  鍦ˋDO鎿嶄綔涓緩璁鍙ヤ腑瑕佸父鐢╰ry...catch()鏉ユ崟鑾烽敊璇俊鎭紝 </span><span id="hvzpftn" class=pln><br></span><span id="hvzpftn" class=com>//  鍥犱負瀹冩湁鏃朵細緇忓父鍑虹幇涓浜涙剰鎯充笉鍒扮殑閿欒銆俲ingzhou  xu </span><span id="hvzpftn" class=pln><br></span><span id="hvzpftn" class=kwd>try</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=pun>{</span><span id="hvzpftn" class=pln> <br>           m_pRecordset</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>Open</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=str>"SELECT  *  FROM  DemoTable"</span><span id="hvzpftn" class=pun>,</span><span id="hvzpftn" class=com>//  鏌ヨDemoTable琛ㄤ腑鎵鏈夊瓧孌?</span><span id="hvzpftn" class=pln><br>           m_pConnection</span><span id="hvzpftn" class=pun>.</span><span id="hvzpftn" class=typ>GetInterfacePtr</span><span id="hvzpftn" class=pun>(),</span><span id="hvzpftn" class=pln>    </span><span id="hvzpftn" class=com>//  鑾峰彇搴撴帴搴撶殑IDispatch鎸囬拡 </span><span id="hvzpftn" class=pln><br>           adOpenDynamic</span><span id="hvzpftn" class=pun>,</span><span id="hvzpftn" class=pln> <br>           adLockOptimistic</span><span id="hvzpftn" class=pun>,</span><span id="hvzpftn" class=pln> <br>           adCmdText</span><span id="hvzpftn" class=pun>);</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=pun>}</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=kwd>catch</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>_com_error  </span><span id="hvzpftn" class=pun>*</span><span id="hvzpftn" class=pln>e</span><span id="hvzpftn" class=pun>)</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=pun>{</span><span id="hvzpftn" class=pln> <br>           </span><span id="hvzpftn" class=typ>AfxMessageBox</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>e</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>ErrorMessage</span><span id="hvzpftn" class=pun>());</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=pun>}</span><span id="hvzpftn" class=pln> <br>                        <br></span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=lit>2</span><span id="hvzpftn" class=pun>)鍏抽棴緇撴灉闆?/span><span id="hvzpftn" class=pln>  m_pRecordset</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>Close</span><span id="hvzpftn" class=pun>();</span><span id="hvzpftn" class=pln> <br>  m_pRecordset </span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=pln> NULL</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln><br> <br></span><span id="hvzpftn" class=lit>3</span><span id="hvzpftn" class=pun>.鎿嶄綔涓涓粨鏋滈泦</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=lit>1</span><span id="hvzpftn" class=pun>)銆侀亶鍘?璇誨彇)</span><span id="hvzpftn" class=pln> <br>a</span><span id="hvzpftn" class=pun>)銆佺敤</span><span id="hvzpftn" class=pln>pRecordset</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=pln>adoEOF</span><span id="hvzpftn" class=pun>鏉ュ垽鏂暟鎹簱鎸囬拡鏄惁宸茬粡縐誨埌緇撴灉闆嗙殑鏈熬浜嗭紱</span><span id="hvzpftn" class=pln>m_pRecordset</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=pln>BOF</span><span id="hvzpftn" class=pun>鍒ゆ柇鏄惁</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=pun>鍦ㄧ涓</span><span id="hvzpftn" class=pln><br></span><span id="hvzpftn" class=pun>鏉¤褰曞墠闈細</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=kwd>while</span><span id="hvzpftn" class=pun>(!</span><span id="hvzpftn" class=pln>m_pRecordset</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=pln>adoEOF</span><span id="hvzpftn" class=pun>)</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=pun>{</span><span id="hvzpftn" class=pln> <br>           </span><span id="hvzpftn" class=kwd>var</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=pln>  m_pRecordset</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>GetCollect</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=str>"Name"</span><span id="hvzpftn" class=pun>);</span><span id="hvzpftn" class=pln> <br>           </span><span id="hvzpftn" class=kwd>if</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=kwd>var</span><span id="hvzpftn" class=pun>.</span><span id="hvzpftn" class=pln>vt  </span><span id="hvzpftn" class=pun>!=</span><span id="hvzpftn" class=pln>  VT_NULL</span><span id="hvzpftn" class=pun>)</span><span id="hvzpftn" class=pln> <br>                       strName  </span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>LPCSTR</span><span id="hvzpftn" class=pun>)</span><span id="hvzpftn" class=pln>_bstr_t</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=kwd>var</span><span id="hvzpftn" class=pun>);</span><span id="hvzpftn" class=pln> <br>           </span><span id="hvzpftn" class=kwd>var</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=pln>  m_pRecordset</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>GetCollect</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=str>"Age"</span><span id="hvzpftn" class=pun>);</span><span id="hvzpftn" class=pln> <br>           </span><span id="hvzpftn" class=kwd>if</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=kwd>var</span><span id="hvzpftn" class=pun>.</span><span id="hvzpftn" class=pln>vt  </span><span id="hvzpftn" class=pun>!=</span><span id="hvzpftn" class=pln>  VT_NULL</span><span id="hvzpftn" class=pun>)</span><span id="hvzpftn" class=pln> <br>                       strAge  </span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>LPCSTR</span><span id="hvzpftn" class=pun>)</span><span id="hvzpftn" class=pln>_bstr_t</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=kwd>var</span><span id="hvzpftn" class=pun>);</span><span id="hvzpftn" class=pln> <br>           m_AccessList</span><span id="hvzpftn" class=pun>.</span><span id="hvzpftn" class=typ>AddString</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>  strName  </span><span id="hvzpftn" class=pun>+</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=str>"  -->  "</span><span id="hvzpftn" class=pun>+</span><span id="hvzpftn" class=pln>strAge  </span><span id="hvzpftn" class=pun>);</span><span id="hvzpftn" class=pln> <br>           m_pRecordset</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>MoveNext</span><span id="hvzpftn" class=pun>();</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=pun>}</span><span id="hvzpftn" class=pln> <br>                        <br>b</span><span id="hvzpftn" class=pun>)銆佸彇寰椾竴涓瓧孌電殑鍊肩殑鍔炴硶鏈変袱縐嶅姙娉?/span><span id="hvzpftn" class=pln> <br> <br></span><span id="hvzpftn" class=pun>涓鏄?/span><span id="hvzpftn" class=pln> <br> <br></span><span id="hvzpftn" class=com>//琛ㄧず鍙栧緱絎?涓瓧孌電殑鍊? m_pRecordset->GetCollect("Name"); </span><span id="hvzpftn" class=pln><br> <br></span><span id="hvzpftn" class=pun>鎴栬?/span><span id="hvzpftn" class=pln>  m_pRecordset</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>GetCollect</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>_variant_t</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=kwd>long</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=lit>0</span><span id="hvzpftn" class=pun>));</span><span id="hvzpftn" class=pln> <br> <br></span><span id="hvzpftn" class=pun>浜屾槸</span><span id="hvzpftn" class=pln> <br>pRecordset</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=pln>get_Collect</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=str>"COLUMN_NAME"</span><span id="hvzpftn" class=pun>);</span><span id="hvzpftn" class=pln> <br> <br></span><span id="hvzpftn" class=pun>鎴栬?/span><span id="hvzpftn" class=pln>  pRecordset</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=pln>get_Collect</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=kwd>long</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>index</span><span id="hvzpftn" class=pun>));</span><span id="hvzpftn" class=pln> <br> <br></span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=lit>2</span><span id="hvzpftn" class=pun>)銆佹坊鍔?/span><span id="hvzpftn" class=pln> <br> <br>a</span><span id="hvzpftn" class=pun>)銆佽皟鐢?/span><span id="hvzpftn" class=pln>m_pRecordset</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>AddNew</span><span id="hvzpftn" class=pun>();</span><span id="hvzpftn" class=pln> <br>b</span><span id="hvzpftn" class=pun>)銆佽皟鐢?/span><span id="hvzpftn" class=pln>m_pRecordset</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>PutCollect</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=str>"Name"</span><span id="hvzpftn" class=pun>,</span><span id="hvzpftn" class=pln>_variant_t</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>m_szName</span><span id="hvzpftn" class=pun>));緇欐瘡涓瓧孌佃祴鍊?</span><span id="hvzpftn" class=pln>m_szName</span><span id="hvzpftn" class=pun>涓烘帶浠舵墍瀵瑰簲鐨勫瓧絎︿覆鍙橀噺)</span><span id="hvzpftn" class=pln> <br>c</span><span id="hvzpftn" class=pun>)銆佽皟鐢?/span><span id="hvzpftn" class=pln>m_pRecordset</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>Update</span><span id="hvzpftn" class=pun>();紜</span><span id="hvzpftn" class=pln> <br> <br></span><span id="hvzpftn" class=com>// 娣誨姞瀹屽悗鍙鍙栨樉紺?/span><span id="hvzpftn" class=pln><br> </span><span id="hvzpftn" class=pun>瀵逛簬</span><span id="hvzpftn" class=pln>MFC</span><span id="hvzpftn" class=pun>鏈変簺鎺т歡鏄劇ず闇瑕佹洿鏂?姣斿</span><span id="hvzpftn" class=typ>ListBox</span><span id="hvzpftn" class=pun>)</span><span id="hvzpftn" class=pln><br><br></span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=lit>3</span><span id="hvzpftn" class=pun>)銆佷慨鏀?/span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=lit>4</span><span id="hvzpftn" class=pun>)銆佸垹闄?/span><span id="hvzpftn" class=pln> <br>a</span><span id="hvzpftn" class=pun>)銆佹妸璁板綍鎸囬拡縐誨姩鍒拌鍒犻櫎鐨勮褰曚笂,鐒跺悗璋冪敤</span><span id="hvzpftn" class=typ>Delete</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>adAffectCurrent</span><span id="hvzpftn" class=pun>)</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=kwd>try</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=pun>{</span><span id="hvzpftn" class=pln> <br>           </span><span id="hvzpftn" class=com>//  鍋囪鍒犻櫎絎簩鏉¤褰?</span><span id="hvzpftn" class=pln><br>           m_pRecordset</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>MoveFirst</span><span id="hvzpftn" class=pun>();</span><span id="hvzpftn" class=pln> <br>           m_pRecordset</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>Move</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=lit>1</span><span id="hvzpftn" class=pun>);</span><span id="hvzpftn" class=pln>                 <br>           </span><span id="hvzpftn" class=com>//  浠?寮濮?</span><span id="hvzpftn" class=pln><br>           m_pRecordset</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>Delete</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>adAffectCurrent</span><span id="hvzpftn" class=pun>);</span><span id="hvzpftn" class=pln>     <br>           </span><span id="hvzpftn" class=com>//  鍙傛暟adAffectCurrent涓哄垹闄ゅ綋鍓嶈褰?</span><span id="hvzpftn" class=pln><br>           m_pRecordset</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>Update</span><span id="hvzpftn" class=pun>();</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=pun>}</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=kwd>catch</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>_com_error  </span><span id="hvzpftn" class=pun>*</span><span id="hvzpftn" class=pln>e</span><span id="hvzpftn" class=pun>)</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=pun>{</span><span id="hvzpftn" class=pln> <br>           </span><span id="hvzpftn" class=typ>AfxMessageBox</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>e</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>ErrorMessage</span><span id="hvzpftn" class=pun>());</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=pun>}</span><span id="hvzpftn" class=pln> <br> <br></span><span id="hvzpftn" class=lit>4</span><span id="hvzpftn" class=pun>.鐩存帴鎵ц</span><span id="hvzpftn" class=pln>SQL</span><span id="hvzpftn" class=pun>璇彞,闄や簡瑕佺敤鍒扮粨鏋滈泦鍏朵綑鐨勫ぇ閮ㄥ垎鍔熻兘閮藉彲浠ョ洿鎺ョ敤</span><span id="hvzpftn" class=pln>SQL</span><span id="hvzpftn" class=pun>璇█瀹炵幇</span><span id="hvzpftn" class=pln> <br> <br></span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=lit>1</span><span id="hvzpftn" class=pun>)銆佺敤</span><span id="hvzpftn" class=pln>_CommandPtr</span><span id="hvzpftn" class=pun>鍜?/span><span id="hvzpftn" class=pln>_RecordsetPtr</span><span id="hvzpftn" class=pun>閰嶅悎</span><span id="hvzpftn" class=pln> <br>_CommandPtr                        m_pCommand</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln> <br>m_pCommand</span><span id="hvzpftn" class=pun>.</span><span id="hvzpftn" class=typ>CreateInstance</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>__uuidof</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=typ>Command</span><span id="hvzpftn" class=pun>));</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=com>//  灝嗗簱榪炴帴璧嬩簬瀹?</span><span id="hvzpftn" class=pln><br>m_pCommand</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>ActiveConnection</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=pln>  m_pConnection</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln>     <br></span><span id="hvzpftn" class=com>//  SQL璇彞 </span><span id="hvzpftn" class=pln><br>m_pCommand</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>CommandText</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=str>"SELECT  *  FROM  DemoTable"</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln>     <br></span><span id="hvzpftn" class=com>//  鎵цSQL璇彞錛岃繑鍥炶褰曢泦 </span><span id="hvzpftn" class=pln><br>m_pRecordset  </span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=pln>  m_pCommand</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>Execute</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>NULL</span><span id="hvzpftn" class=pun>,</span><span id="hvzpftn" class=pln>  NULL</span><span id="hvzpftn" class=pun>,</span><span id="hvzpftn" class=pln>adCmdText</span><span id="hvzpftn" class=pun>);</span><span id="hvzpftn" class=pln>               <br></span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=lit>2</span><span id="hvzpftn" class=pun>)銆佺洿鎺ョ敤</span><span id="hvzpftn" class=pln>_ConnectionPtr</span><span id="hvzpftn" class=pun>鎵ц</span><span id="hvzpftn" class=pln>SQL</span><span id="hvzpftn" class=pun>璇彞</span><span id="hvzpftn" class=pln> <br>_RecordsetPtr  </span><span id="hvzpftn" class=typ>Connection15</span><span id="hvzpftn" class=pun>::</span><span id="hvzpftn" class=typ>Execute</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>  _bstr_t  </span><span id="hvzpftn" class=typ>CommandText</span><span id="hvzpftn" class=pun>,</span><span id="hvzpftn" class=pln>   <br>                                                                           VARIANT  </span><span id="hvzpftn" class=pun>*</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=typ>RecordsAffected</span><span id="hvzpftn" class=pun>,</span><span id="hvzpftn" class=pln>   <br>                                                                           </span><span id="hvzpftn" class=kwd>long</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=typ>Options</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=pun>)</span><span id="hvzpftn" class=pln>   <br> <br></span><span id="hvzpftn" class=pun>鍏朵腑</span><span id="hvzpftn" class=typ>CommandText</span><span id="hvzpftn" class=pun>鏄懡浠ゅ瓧涓詫紝閫氬父鏄?/span><span id="hvzpftn" class=pln>SQL</span><span id="hvzpftn" class=pun>鍛戒護銆?/span><span id="hvzpftn" class=pln>   <br></span><span id="hvzpftn" class=pun>鍙傛暟</span><span id="hvzpftn" class=typ>RecordsAffected</span><span id="hvzpftn" class=pun>鏄搷浣滃畬鎴愬悗鎵褰卞搷鐨勮鏁?</span><span id="hvzpftn" class=pln>   <br></span><span id="hvzpftn" class=pun>鍙傛暟</span><span id="hvzpftn" class=typ>Options</span><span id="hvzpftn" class=pun>琛ㄧず</span><span id="hvzpftn" class=typ>CommandText</span><span id="hvzpftn" class=pun>涓唴瀹圭殑綾誨瀷錛?/span><span id="hvzpftn" class=typ>Options</span><span id="hvzpftn" class=pun>鍙互鍙栧涓嬪間箣涓錛?/span><span id="hvzpftn" class=pln>   <br>adCmdText</span><span id="hvzpftn" class=pun>:琛ㄦ槑</span><span id="hvzpftn" class=typ>CommandText</span><span id="hvzpftn" class=pun>鏄枃鏈懡浠?/span><span id="hvzpftn" class=pln>   <br>adCmdTable</span><span id="hvzpftn" class=pun>:琛ㄦ槑</span><span id="hvzpftn" class=typ>CommandText</span><span id="hvzpftn" class=pun>鏄竴涓〃鍚?/span><span id="hvzpftn" class=pln>   <br>adCmdProc</span><span id="hvzpftn" class=pun>:琛ㄦ槑</span><span id="hvzpftn" class=typ>CommandText</span><span id="hvzpftn" class=pun>鏄竴涓瓨鍌ㄨ繃紼?/span><span id="hvzpftn" class=pln>   <br>adCmdUnknown</span><span id="hvzpftn" class=pun>:鏈煡</span><span id="hvzpftn" class=pln> <br>                                    <br></span><span id="hvzpftn" class=pun>渚嬪瓙:</span><span id="hvzpftn" class=pln> <br>_variant_t  </span><span id="hvzpftn" class=typ>RecordsAffected</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln> <br>m_pConnection</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>Execute</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=str>"UPDATE  users  SET  old  =  old+1"</span><span id="hvzpftn" class=pun>,</span>&<span id="hvzpftn" class=typ>RecordsAffected</span><span id="hvzpftn" class=pun>,</span><span id="hvzpftn" class=pln>adCmdText</span><span id="hvzpftn" class=pun>);</span><span id="hvzpftn" class=pln>              <br> <br></span><span id="hvzpftn" class=lit>5</span><span id="hvzpftn" class=pun>.璋冪敤瀛樺偍榪囩▼</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=lit>1</span><span id="hvzpftn" class=pun>)銆佸埄鐢?/span><span id="hvzpftn" class=pln>_CommandPtr <br>_CommandPtr            m_pCommand</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln> <br>m_pCommand</span><span id="hvzpftn" class=pun>.</span><span id="hvzpftn" class=typ>CreateInstance</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>__uuidof</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=typ>Command</span><span id="hvzpftn" class=pun>));</span><span id="hvzpftn" class=pln> <br>m_pCommand</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>ActiveConnection</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=pln>  m_pConnection</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln>    </span><span id="hvzpftn" class=com>//  灝嗗簱榪炴帴璧嬩簬瀹?</span><span id="hvzpftn" class=pln><br>m_pCommand</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>CommandText</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=str>"Demo"</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln>     <br>m_pCommand</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>Execute</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>NULL</span><span id="hvzpftn" class=pun>,</span><span id="hvzpftn" class=pln>NULL</span><span id="hvzpftn" class=pun>,</span><span id="hvzpftn" class=pln>  adCmdStoredProc</span><span id="hvzpftn" class=pun>);</span><span id="hvzpftn" class=pln>                 <br></span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=lit>2</span><span id="hvzpftn" class=pun>)銆佺洿鎺ョ敤</span><span id="hvzpftn" class=pln>_ConnectionPtr</span><span id="hvzpftn" class=pun>鐩存帴璋冪敤(瑙?/span><span id="hvzpftn" class=lit>4</span><span id="hvzpftn" class=pun>.(</span><span id="hvzpftn" class=lit>2</span><span id="hvzpftn" class=pun>))</span><span id="hvzpftn" class=pln> <br> <br></span><span id="hvzpftn" class=lit>6</span><span id="hvzpftn" class=pun>.閬嶅巻鏁版嵁搴撲腑鐨勬墍鏈夎〃鍚?/span><span id="hvzpftn" class=pln>  _ConnectionPtr  m_pConnect</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln>   <br>_RecordsetPtr  pSet</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln>   <br>HRESULT  hr</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln>   <br></span><span id="hvzpftn" class=kwd>try</span><span id="hvzpftn" class=pln>   <br></span><span id="hvzpftn" class=pun>{</span><span id="hvzpftn" class=pln>     <br>           hr  </span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=pln>  m_pConnect</span><span id="hvzpftn" class=pun>.</span><span id="hvzpftn" class=typ>CreateInstance</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=str>"ADODB.Connection"</span><span id="hvzpftn" class=pun>);</span><span id="hvzpftn" class=pln>         <br>           </span><span id="hvzpftn" class=kwd>if</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>SUCCEEDED</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>hr</span><span id="hvzpftn" class=pun>))</span><span id="hvzpftn" class=pln>     <br>           </span><span id="hvzpftn" class=pun>{</span><span id="hvzpftn" class=pln>       <br>                       </span><span id="hvzpftn" class=typ>CString</span><span id="hvzpftn" class=pln>  dd</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln>       <br>                       dd</span><span id="hvzpftn" class=pun>.</span><span id="hvzpftn" class=typ>Format</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=str>"Provider=Microsoft.Jet.OLEDB.4.0;Data  Source=%s"</span><span id="hvzpftn" class=pun>,</span><span id="hvzpftn" class=pln>file</span><span id="hvzpftn" class=pun>);</span><span id="hvzpftn" class=pln>       <br>                       hr  </span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=pln>  m_pConnect</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>Open</span><span id="hvzpftn" class=pun>((</span><span id="hvzpftn" class=pln>_bstr_t</span><span id="hvzpftn" class=pun>)</span><span id="hvzpftn" class=pln>dd</span><span id="hvzpftn" class=pun>,</span><span id="hvzpftn" class=str>""</span><span id="hvzpftn" class=pun>,</span><span id="hvzpftn" class=str>""</span><span id="hvzpftn" class=pun>,</span><span id="hvzpftn" class=pln>adModeUnknown</span><span id="hvzpftn" class=pun>);</span><span id="hvzpftn" class=pln>       <br>                       pSet  </span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=pln>  m_pConnect</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>OpenSchema</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>adSchemaTables</span><span id="hvzpftn" class=pun>);</span><span id="hvzpftn" class=pln>             <br>                       </span><span id="hvzpftn" class=kwd>while</span><span id="hvzpftn" class=pun>(!(</span><span id="hvzpftn" class=pln>pSet</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=pln>adoEOF</span><span id="hvzpftn" class=pun>))</span><span id="hvzpftn" class=pln>       <br>                       </span><span id="hvzpftn" class=pun>{</span><span id="hvzpftn" class=pln>                   <br>                                   </span><span id="hvzpftn" class=com>//鑾峰彇琛ㄦ牸         </span><span id="hvzpftn" class=pln><br>                                   _bstr_t  table_name  </span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=pln>  pSet</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>Fields</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>GetItem</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=str>"TABLE_NAME"</span><span id="hvzpftn" class=pun>)-</span><span id="hvzpftn" class=pln><br></span>><span id="hvzpftn" class=typ>Value</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln> <br>                                    <br>                                   </span><span id="hvzpftn" class=com>//鑾峰彇琛ㄦ牸綾誨瀷                 </span><span id="hvzpftn" class=pln><br>                                   _bstr_t  table_type  </span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=pln>  pSet</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>Fields</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>GetItem</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=str>"TABLE_TYPE"</span><span id="hvzpftn" class=pun>)-</span><span id="hvzpftn" class=pln><br></span>><span id="hvzpftn" class=typ>Value</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln> <br>                                    <br>                                   </span><span id="hvzpftn" class=com>//榪囨護涓涓嬶紝鍙緭鍑鴻〃鏍煎悕縐幫紝鍏朵粬鐨勭渷鐣?</span><span id="hvzpftn" class=pln><br>                                   </span><span id="hvzpftn" class=kwd>if</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>  strcmp</span><span id="hvzpftn" class=pun>(((</span><span id="hvzpftn" class=pln>LPCSTR</span><span id="hvzpftn" class=pun>)</span><span id="hvzpftn" class=pln>table_type</span><span id="hvzpftn" class=pun>),</span><span id="hvzpftn" class=str>"TABLE"</span><span id="hvzpftn" class=pun>)==</span><span id="hvzpftn" class=lit>0</span><span id="hvzpftn" class=pun>){</span><span id="hvzpftn" class=pln> <br>                                               </span><span id="hvzpftn" class=typ>CString</span><span id="hvzpftn" class=pln>  tt</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln> <br>                                               tt</span><span id="hvzpftn" class=pun>.</span><span id="hvzpftn" class=typ>Format</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=str>"%s"</span><span id="hvzpftn" class=pun>,(</span><span id="hvzpftn" class=pln>LPCSTR</span><span id="hvzpftn" class=pun>)</span><span id="hvzpftn" class=pln>table_name</span><span id="hvzpftn" class=pun>);</span><span id="hvzpftn" class=pln>           <br>                                               </span><span id="hvzpftn" class=typ>AfxMessageBox</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>tt</span><span id="hvzpftn" class=pun>);</span><span id="hvzpftn" class=pln>                 <br>                                   </span><span id="hvzpftn" class=pun>}</span><span id="hvzpftn" class=pln>               <br>                                   pSet</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>MoveNext</span><span id="hvzpftn" class=pun>();</span><span id="hvzpftn" class=pln>         <br>                       </span><span id="hvzpftn" class=pun>}</span><span id="hvzpftn" class=pln>       <br>                       pSet</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>Close</span><span id="hvzpftn" class=pun>();</span><span id="hvzpftn" class=pln>     <br>           </span><span id="hvzpftn" class=pun>}</span><span id="hvzpftn" class=pln>     <br>           m_pConnect</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>Close</span><span id="hvzpftn" class=pun>();</span><span id="hvzpftn" class=pln>     <br></span><span id="hvzpftn" class=pun>}</span><span id="hvzpftn" class=kwd>catch</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>_com_error  e</span><span id="hvzpftn" class=pun>)</span><span id="hvzpftn" class=com>///鎹曟崏寮傚父   </span><span id="hvzpftn" class=pln><br></span><span id="hvzpftn" class=pun>{</span><span id="hvzpftn" class=pln>     <br>           </span><span id="hvzpftn" class=typ>CString</span><span id="hvzpftn" class=pln>  errormessage</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln>     <br>           errormessage</span><span id="hvzpftn" class=pun>.</span><span id="hvzpftn" class=typ>Format</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=str>"榪炴帴鏁版嵁搴撳け璐?rn閿欒淇℃伅:%s"</span><span id="hvzpftn" class=pun>,</span><span id="hvzpftn" class=pln>e</span><span id="hvzpftn" class=pun>.</span><span id="hvzpftn" class=typ>ErrorMessage</span><span id="hvzpftn" class=pun>());</span><span id="hvzpftn" class=pln> <br> <br>           </span><span id="hvzpftn" class=typ>AfxMessageBox</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>errormessage</span><span id="hvzpftn" class=pun>);</span><span id="hvzpftn" class=pln> <br>           </span><span id="hvzpftn" class=kwd>return</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=pun>-</span><span id="hvzpftn" class=lit>1</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=pun>}</span><span id="hvzpftn" class=pln>            <br>             <br></span><span id="hvzpftn" class=lit>7</span><span id="hvzpftn" class=pun>.閬嶅巻涓涓〃涓殑鎵鏈夊瓧孌?/span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=typ>Field</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=pun>*</span><span id="hvzpftn" class=pln>      field  </span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=pln>  NULL</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln>                         <br>HRESULT      hr</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=typ>Fields</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=pun>*</span><span id="hvzpftn" class=pln>    fields  </span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=pln>  NULL</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln> <br>hr  </span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=pln>  m_pRecordset</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=pln>get_Fields  </span><span id="hvzpftn" class=pun>(</span>&<span id="hvzpftn" class=pln>fields</span><span id="hvzpftn" class=pun>);</span><span id="hvzpftn" class=pln>            </span><span id="hvzpftn" class=com>//寰楀埌璁板綍闆嗙殑瀛楁闆嗗拰             </span><span id="hvzpftn" class=pln><br>              <br></span><span id="hvzpftn" class=kwd>if</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>SUCCEEDED</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>hr</span><span id="hvzpftn" class=pun>))</span><span id="hvzpftn" class=pln>   <br>       fields</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=pln>get_Count</span><span id="hvzpftn" class=pun>(</span>&<span id="hvzpftn" class=typ>ColCount</span><span id="hvzpftn" class=pun>);</span><span id="hvzpftn" class=pln>             <br> <br></span><span id="hvzpftn" class=com>//寰楀埌璁板綍闆嗙殑瀛楁闆嗗悎涓殑瀛楁鐨勬諱釜鏁?            </span><span id="hvzpftn" class=pln><br></span><span id="hvzpftn" class=kwd>for</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>i</span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=lit>0</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln>iItem</span><span id="hvzpftn" class=pun>[</span><span id="hvzpftn" class=pln>i</span><span id="hvzpftn" class=pun>]-</span>><span id="hvzpftn" class=pln>get_Name</span><span id="hvzpftn" class=pun>(</span>&<span id="hvzpftn" class=pln>bstrColName</span><span id="hvzpftn" class=pun>);</span><span id="hvzpftn" class=pln>            </span><span id="hvzpftn" class=com>//寰楀埌璁板綍闆?/涓殑瀛楁鍚?</span><span id="hvzpftn" class=pln><br>           strColName</span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=pln>bstrColName</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln>             <br>           nameField  </span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=pln>  strColName</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln> <br>           m_FieldsList</span><span id="hvzpftn" class=pun>.</span><span id="hvzpftn" class=typ>AddString</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>nameField</span><span id="hvzpftn" class=pun>);</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=pun>}</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=kwd>if</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>SUCCEEDED</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>hr</span><span id="hvzpftn" class=pun>))</span><span id="hvzpftn" class=pln> <br>           fields</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>Release</span><span id="hvzpftn" class=pun>();</span><span id="hvzpftn" class=com>//閲婃斁鎸囬拡 </span><span id="hvzpftn" class=pln><br> <br></span><span id="hvzpftn" class=pun>闄?</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=lit>1</span><span id="hvzpftn" class=pun>銆?/span><span id="hvzpftn" class=pln>_variant_t <br></span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=lit>1</span><span id="hvzpftn" class=pun>)銆佷竴鑸紶緇欒繖</span><span id="hvzpftn" class=lit>3</span><span id="hvzpftn" class=pun>涓寚閽堢殑鍊奸兘涓嶆槸</span><span id="hvzpftn" class=pln>MFC</span><span id="hvzpftn" class=pun>鐩存帴鏀寔鐨勬暟鎹被鍨?鑰岃鐢?/span><span id="hvzpftn" class=pln>_variant_t</span><span id="hvzpftn" class=pun>杞崲涓涓?/span><span id="hvzpftn" class=pln> <br>_variant_t</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>XX</span><span id="hvzpftn" class=pun>)鍙互鎶婂ぇ澶氭暟綾誨瀷鐨勫彉閲忚漿鎹㈡垚閫傚悎鐨勭被鍨嬩紶鍏ワ細</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=lit>2</span><span id="hvzpftn" class=pun>)銆?/span><span id="hvzpftn" class=pln>_variant_t  </span><span id="hvzpftn" class=kwd>var</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln>_variant_t  </span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=kwd>long</span><span id="hvzpftn" class=pun>:</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=kwd>long</span><span id="hvzpftn" class=pun>)</span><span id="hvzpftn" class=kwd>var</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln> <br>_variant_t  </span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=typ>CString</span><span id="hvzpftn" class=pun>:</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=typ>CString</span><span id="hvzpftn" class=pln>  strValue  </span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>LPCSTR</span><span id="hvzpftn" class=pun>)</span><span id="hvzpftn" class=pln>_bstr_t</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=kwd>var</span><span id="hvzpftn" class=pun>);</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=typ>CString</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=pln>  _variant_t</span><span id="hvzpftn" class=pun>:</span><span id="hvzpftn" class=pln>  _variant_t</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>strSql</span><span id="hvzpftn" class=pun>);</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=lit>2</span><span id="hvzpftn" class=pun>銆?/span><span id="hvzpftn" class=pln>BSTR</span><span id="hvzpftn" class=pun>瀹藉瓧絎︿覆涓?/span><span id="hvzpftn" class=typ>CString</span><span id="hvzpftn" class=pun>鐩鎬簰杞崲</span><span id="hvzpftn" class=pln> <br> <br>BSTR  bstr</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=typ>CString</span><span id="hvzpftn" class=pln>  strSql</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=typ>CString</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=pln>  BSTR</span><span id="hvzpftn" class=pun>:</span><span id="hvzpftn" class=pln>  bstr  </span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=pln>  strSql</span><span id="hvzpftn" class=pun>.</span><span id="hvzpftn" class=typ>AllocSysString</span><span id="hvzpftn" class=pun>();</span><span id="hvzpftn" class=pln> <br>BSTR  </span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=typ>CString</span><span id="hvzpftn" class=pun>:</span><span id="hvzpftn" class=pln>  strSql  </span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>LPCSTR</span><span id="hvzpftn" class=pun>)</span><span id="hvzpftn" class=pln>bstr</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=lit>3</span><span id="hvzpftn" class=pun>銆?/span><span id="hvzpftn" class=pln>_bstr_t</span><span id="hvzpftn" class=pun>涓?/span><span id="hvzpftn" class=typ>CString</span><span id="hvzpftn" class=pun>鐩鎬簰杞崲</span><span id="hvzpftn" class=pln> <br> <br>_bstr_t  bstr</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=typ>CString</span><span id="hvzpftn" class=pln>  strSql</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=typ>CString</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=pln>  _bstr_t</span><span id="hvzpftn" class=pun>:</span><span id="hvzpftn" class=pln>  bstr  </span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>_bstr_t</span><span id="hvzpftn" class=pun>)</span><span id="hvzpftn" class=pln>strSql</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln> <br>_bstr_t  </span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=typ>CString</span><span id="hvzpftn" class=pun>:</span><span id="hvzpftn" class=pln>  strSql  </span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>LPCSTR</span><span id="hvzpftn" class=pun>)</span><span id="hvzpftn" class=pln>bstr</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=lit>4</span><span id="hvzpftn" class=pun>銆佸叧浜庢椂闂?/span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=typ>Access</span><span id="hvzpftn" class=pun>:琛ㄧず鏃墮棿鐨勫瓧絎︿覆</span><span id="hvzpftn" class=com>#2004-4-5# </span><span id="hvzpftn" class=pln><br></span><span id="hvzpftn" class=typ>Sql</span><span id="hvzpftn" class=pun>:琛ㄧず鏃墮棿鐨勫瓧絎︿覆</span><span id="hvzpftn" class=str>''</span><span id="hvzpftn" class=lit>2004</span><span id="hvzpftn" class=pun>-</span><span id="hvzpftn" class=lit>4</span><span id="hvzpftn" class=pun>-</span><span id="hvzpftn" class=lit>5</span><span id="hvzpftn" class=str>''</span><span id="hvzpftn" class=pln> <br></span><span id="hvzpftn" class=typ>DateField</span><span id="hvzpftn" class=pun>(鏃墮棿瀛楁)</span><span id="hvzpftn" class=pln>  select  </span><span id="hvzpftn" class=pun>*</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=kwd>from</span><span id="hvzpftn" class=pln>  my_table  where  </span><span id="hvzpftn" class=typ>DateField</span><span id="hvzpftn" class=pln>  </span>><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=com>#2004-4-10# </span><span id="hvzpftn" class=pln><br> <br> <br> <br>           </span><span id="hvzpftn" class=kwd>try</span><span id="hvzpftn" class=pln> <br>           </span><span id="hvzpftn" class=pun>{</span><span id="hvzpftn" class=pln> <br>                       m_pCommand</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>CommandText</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=pln>  </span><span id="hvzpftn" class=str>"INSERT  INTO  tTest(age)  VALUES('23f2')  "</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln> <br>                       m_pRecordset  </span><span id="hvzpftn" class=pun>=</span><span id="hvzpftn" class=pln>  m_pCommand</span><span id="hvzpftn" class=pun>-</span>><span id="hvzpftn" class=typ>Execute</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>NULL</span><span id="hvzpftn" class=pun>,</span><span id="hvzpftn" class=pln>NULL</span><span id="hvzpftn" class=pun>,</span><span id="hvzpftn" class=pln>  adCmdText</span><span id="hvzpftn" class=pun>);</span><span id="hvzpftn" class=pln>     <br>           </span><span id="hvzpftn" class=pun>}</span><span id="hvzpftn" class=pln> <br>           </span><span id="hvzpftn" class=kwd>catch</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>_com_error  e</span><span id="hvzpftn" class=pun>)</span><span id="hvzpftn" class=com>///鎹曟崏寮傚父 </span><span id="hvzpftn" class=pln><br>           </span><span id="hvzpftn" class=pun>{</span><span id="hvzpftn" class=pln> <br>                       </span><span id="hvzpftn" class=typ>CString</span><span id="hvzpftn" class=pln>  errormessage</span><span id="hvzpftn" class=pun>;</span><span id="hvzpftn" class=pln> <br>                       errormessage</span><span id="hvzpftn" class=pun>.</span><span id="hvzpftn" class=typ>Format</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=str>"榪炴帴鏁版嵁搴撳け璐?\r\n閿欒淇℃伅:%s"</span><span id="hvzpftn" class=pun>,</span><span id="hvzpftn" class=pln>e</span><span id="hvzpftn" class=pun>.</span><span id="hvzpftn" class=typ>ErrorMessage</span><span id="hvzpftn" class=pun>());</span><span id="hvzpftn" class=pln> <br>                       </span><span id="hvzpftn" class=typ>AfxMessageBox</span><span id="hvzpftn" class=pun>(</span><span id="hvzpftn" class=pln>errormessage</span><span id="hvzpftn" class=pun>);</span><span id="hvzpftn" class=com>///鏄劇ず閿欒淇℃伅 </span><span id="hvzpftn" class=pln><br>           </span><span id="hvzpftn" class=pun>}</span></div> <img src ="http://m.shnenglu.com/finehai/aggbug/90591.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/finehai/" target="_blank">Bluesea</a> 2009-07-20 10:59 <a href="http://m.shnenglu.com/finehai/archive/2009/07/20/90591.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>MFC瀛︿範鎬葷粨 (67涓妧宸?http://m.shnenglu.com/finehai/archive/2009/07/20/90586.htmlBlueseaBlueseaMon, 20 Jul 2009 02:31:00 GMThttp://m.shnenglu.com/finehai/archive/2009/07/20/90586.htmlhttp://m.shnenglu.com/finehai/comments/90586.htmlhttp://m.shnenglu.com/finehai/archive/2009/07/20/90586.html#Feedback0http://m.shnenglu.com/finehai/comments/commentRss/90586.htmlhttp://m.shnenglu.com/finehai/services/trackbacks/90586.html闃呰鍏ㄦ枃

Bluesea 2009-07-20 10:31 鍙戣〃璇勮
]]>
Char[] 鍜?String 鐨勮漿鎹?http://m.shnenglu.com/finehai/archive/2009/07/20/90584.htmlBlueseaBlueseaMon, 20 Jul 2009 02:26:00 GMThttp://m.shnenglu.com/finehai/archive/2009/07/20/90584.htmlhttp://m.shnenglu.com/finehai/comments/90584.htmlhttp://m.shnenglu.com/finehai/archive/2009/07/20/90584.html#Feedback0http://m.shnenglu.com/finehai/comments/commentRss/90584.htmlhttp://m.shnenglu.com/finehai/services/trackbacks/90584.html
瀹炵幇瀛楃涓茬殑鍙嶈漿錛?濡傝緭鍏?ABCDE錛岃繑鍥?EDCBA

public string reverse( string inputString)
    
{
        
if (inputString == null)
            
return null;
        
else
        
{
            
char[] tar = inputString.ToCharArray();          //string  to char array

            
for (int i = 0; i < tar.Length / 2; i++)
            
{
                
char temp = tar[i];
                tar[i] 
= tar[tar.Length - i - 1];
                tar[tar.Length 
- i - 1= temp;            
            }


            
string re = new string(tar);                           //char array to string
            return re;
        
        }
    
    }



Bluesea 2009-07-20 10:26 鍙戣〃璇勮
]]>
Win32紼嬪簭鍩烘湰姒傚康http://m.shnenglu.com/finehai/archive/2009/07/18/90447.htmlBlueseaBlueseaSat, 18 Jul 2009 11:27:00 GMThttp://m.shnenglu.com/finehai/archive/2009/07/18/90447.htmlhttp://m.shnenglu.com/finehai/comments/90447.htmlhttp://m.shnenglu.com/finehai/archive/2009/07/18/90447.html#Feedback0http://m.shnenglu.com/finehai/comments/commentRss/90447.htmlhttp://m.shnenglu.com/finehai/services/trackbacks/90447.html浠ヤ笅涓昏浠嬬粛錛歸in32 紼嬪簭寮鍙戞祦紼嬶紝瀵煎叆鍑芥暟搴擄紝windows鐨勮繍琛屾満鍒訛紝杈撳叆鍒嗙被錛屼俊鎭紝紿楀彛鍑芥暟絳夋蹇點?/p>

MFC microsoft foundation classes
API application programming interface
DLL dynamic link library
GUI graphics user interface
MDI multiple document interface
SDI sigle document interface
OLE object linking&embeded
SDM software development kit
UI user interface
WinApp windows application


windows紼嬪簭鏄俊鎭負鍩虹錛屼簨浠墮┍鍔?message based錛宔vent driven

windows紼嬪簭鍒嗕負紼嬪簭緙栫爜鍜孶I璧勬簮涓ら儴鍒嗭紝鐢╮c緙栬瘧鍣ㄩ泦鎴愪竴涓畬鏁寸殑exe鏂囦歡

win32 紼嬪簭寮鍙戞祦紼嬶細
璧勬簮鎻忚堪鏂囦歡.rc涓弿榪板悇縐峌I璧勬簮錛孯C緙栬瘧鍣≧C.EXE璇誨彇RC鏂囦歡鎻忚堪鐨勬墍鏈塙I璧勬簮

鏂囦歡闆嗕腑鍒朵綔涓涓?RES鏂囦歡錛屽啀鍜岀▼搴忕紪鐮佺粨鍚堝湪涓璧鳳紝鎴愪負涓涓畬鏁寸殑windows鍙?/p>

鎵ц鏂囦歡銆?/p>


WINDOWS紼嬪簭涓轟粈涔堝繀欏諱嬌鐢ㄥ鍏ュ嚱鏁板簱錛?br>windows紼嬪簭璋冪敤鐨勫嚱鏁板垎涓猴細c runtimes 浠ュ強 windows api涓ゅぇ閮ㄥ垎銆?br>windows api錛岀敱鎿嶄綔緋葷粺鏈韓鎻愪緵錛坵indows 涓夊ぇ妯″潡

GUI32.DLL,USER32.DLL,KERNEL32.DLL錛?
瀵煎叆鍑芥暟搴擄紝灝辨槸瀛樻斁鍦?a onclick="javascript:tagshow(event, '%C1%B4%BD%D3');" href="javascript:;" target=_self>閾炬帴鐨勬椂鍊欓渶瑕佷嬌鐢ㄤ粈涔堟牱鐨刣ll鏂囦歡錛屼互鍙婅繖浜涙枃浠跺瓨鏀?/p>

鐨勫湴鏂廣傝屼笁澶фā鍧楁墍瀵瑰簲鐨勫鍏ュ嚱鏁板簱鍒負

GUI32.LIB,USER32.LIB,KERNEL32.LIB.

涓鑸嚱鏁版槸瀛樻斁鍒頒簡涓婅竟鐨勪笁澶фā鍧椾腑錛岃繕鏈夋柊鐨刟pi鍑芥暟錛屾斁鍦╠ll鏂囦歡涓紝姣斿

COMMDLG.DLL,TOOLHELP.DLL,涓紝濡傛灉浣跨敤榪欎簺API錛岄摼鎺ユ椂榪樺緱鍔犱笂榪欎簺dll瀵瑰簲鐨?/p>

瀵煎叆鍑芥暟錛屾瘮濡侰OMDLG32.LIB鍜孴H32.LIB.

WINDOWS紼嬪簭闇瑕佷粈涔堝ご鏂囦歡錛?br>windows紼嬪簭蹇呴』鍖呭惈windows.h.瀹冨寘鍚殑鏄笁澶фā鍧楁墍鎻愪緵鐨刟pi鍑芥暟錛屽鏋滅敤鍒?/p>

鍏朵粬system dlls錛屾瘮濡侰OMMDLG.DLL,MAPI.DLL,TAPI.DLL,灝辮浣跨敤鐩稿搴旂殑澶存枃浠?/p>

COMMDLG.H MAPI.H TAPI.H絳夌瓑銆?/p>

windows鐨勮繍琛屾満鍒訛紵
淇℃伅涓哄熀紜錛屼互浜嬩歡椹卞姩銆?br>windows紼嬪簭榪愯渚濋潬澶栭儴鍙戠敓鐨勪簨浠舵潵椹卞姩鐨勩傜▼搴忕瓑寰呬換浣曞彲鑳界殑杈撳叆錛岀劧鍚庡垽

鏂紝鏈鍚庡仛鍑洪傚綋澶勭悊銆?br>杈撳叆鏄敱鎿嶄綔緋葷粺鎹曟崏鍒幫紝浠ヤ俊鎭艦寮忚繘鍏ョ▼搴忎箣涓?br>淇℃伅錛屽氨鏄痺indows鍐呰鐨勪竴縐嶆暟鎹粨鏋勩?/p>

杈撳叆鍒嗙被錛?br>紜歡璁劇疆鎵浜х敓鐨勪俊鎭細鏀懼埌緋葷粺闃熷垪錛坰ystem queue錛?br>windows緋葷粺鎴栨槸鍏朵粬windows紼嬪簭浼犻佽繃鏉ョ殑淇℃伅錛氭斁鍒扮▼搴忛槦鍒楋紙application

queue錛夈?/p>

淇℃伅錛?br>淇℃伅錛屽氨鏄痺indows鍐呰鐨勪竴縐嶆暟鎹粨鏋勩?br>typedef struct tagMSG
{
 HWND hwnd;
 UINT message;(WM_)
 WPARAM wParam;(WM_MOUSEMOVE,WM_SIZE,WM_LBUTTONDOWN)
 LPARM lParm;
 DWORD time;
 POINT pt;
}MSG;
鎺ュ彈騫跺鐞嗕俊鎭殑灝辨槸紿楀彛銆傛瘡涓獥鍙i兘鏈変竴涓嚱鏁拌礋璐e鐞嗕俊鎭紝榪欎釜鍑芥暟灝卞彨

紿楀彛鍑芥暟錛坵indow procedure錛寃indow function錛?/p>

紿楀彛娉ㄥ唽鍜岀獥鍙g殑璇炵敓錛?br>紿楀彛鍑芥暟灝辨槸紿楀彛鎺ユ敹淇℃伅鍚庣殑鍙嶅簲銆?br>浜х敓紿楀彛鍓嶇敤API鍑芥暟RegisterClass璁懼畾紿楀彛灞炴э紙灝辨槸娉ㄥ唽紿楀彛錛?/p>

紿楀彛鐨勬敞鍐岀敤鐨勬槸RegisterClass (琚皝瑁呭湪InitApplication鍑芥暟涓?
紿楀彛鐨勮癁鐢熸槸鐢–reateWindow(琚皝瑁呭湪InitInstance鍑芥暟涓?
InitApplication 鍜?InitInstance鍖哄埆錛?/p>

鍑芥暟娉ㄥ唽錛氱獥鍙g被鍙渶瑕佹敞鍐屼竴嬈★紝浠ュ悗鍙緵鍚屼竴紼嬪簭鐨勫悗緇ф瘡涓涓疄渚?/p>

錛坕nstance錛変嬌鐢紙鎵鏈夎繘紼嬪叕鍦ㄤ竴涓湴鍧絀洪棿涓級錛屽洜姝ゅ皢RegisterClass榪欎釜鍔?/p>

浣滄斁鍦?#8220;鍙湁絎竴涓疄渚嬫墠浼氳繘鍏?#8221;鐨処nitApplication鍑芥暟涓?br>涓涓繘紼嬫槸鍚︽槸鏌愪釜紼嬪簭鐨勭涓涓疄渚嬶紝鍙互鐢╓inMain鐨勫弬鏁癶PrevInstance鏉ュ垽

鏂?br>浜х敓紿楀彛錛欳reateWindow鏄換浣曞疄渚嬮兘鍙互榪涘叆錛屾斁鍒癐nitInstance鍑芥暟涓?/p>

 


淇℃伅寰幆錛?br>while(GetMessage(&msg,...))
{
 TranslateMessage(&msg);//涓轟簡灝嗛敭鐩樹俊鎭漿鍖?br> DispatchMessage(&msg);//灝嗕俊鎭紶緇欑獥鍙e嚱鏁板幓澶勭悊
}

 

紿楀彛鍑芥暟錛?/p>

DispatchMessage(&msg)鏄竴縐嶅洖璋冨嚱鏁幫紝灝辨槸浣犺嚜宸卞啓鐨勭▼搴忎腑鐨勮windows緋葷粺

璋冪敤鐨勫嚱鏁般?br>紿楀彛鍑芥暟褰㈠紡錛?br>LRESULT CALLBACK WndProc(HWND hWnd,
   UINT message,
   WPARAM wParam,
   LPARAM lParam)
璧勬簮瀹氫箟鏂囦歡(.RC)錛?br>.RC鏂囦歡鏄竴涓敤鏂囧瓧鎻忚堪璧勬簮鐨勫湴鏂廣傚父鐢ㄨ祫婧愭湁涔濋」錛欼CON錛堝浘鏍囷級,CURSOR錛?/p>

鎸囬拡錛?BITMAP錛堜綅鍥撅級,FONT錛堝瓧浣擄級,DIALOG錛堝璇濇錛?MENU錛堣彍

鍗曪級,ACCELERATOR錛堝姞閫熷櫒錛?STRING錛堝瓧絎︿覆錛?VERSIONINFO.

鏍稿績瀵硅薄錛?br>緋葷粺鐨勪竴縐嶈祫婧愶紝涓鏃︿駭鐢燂紝浠諱綍搴旂敤紼嬪簭閮藉彲浠ュ紑鍚茍浣跨敤榪欎釜瀵硅薄銆傜郴緇熺粰鏍?/p>

蹇冨璞?涓涓鏁板兼潵綆$悊瀹冦?br>鏍稿績瀵硅薄鍖呮嫭錛?nbsp;            浜х敓鏂規硶
event   CreateEvent
mutex   CreateMutex
semaphore  CreateSemphore
浠ヤ笂鐢ㄤ簬綰跨▼鍚屾鍖?br>file   CreateFile
file-mapping  CreateFileMapping 鐢ㄤ簬鍐呭瓨鏄犲皠鏂囦歡
process   CreateProcess
thread   CreateThread

榪涚▼鐨勮癁鐢熷拰姝?
shell涓互榧犳爣鍙屽嚮涓涓彲鎵ц鏂囦歡鍥炬爣錛屽氨鍙互鎵ц榪欎釜(姣斿)App.exe鐨勬祦紼嬶細
1shell璋冪敤CreateProcess鍚姩App.exe銆?#8216;
2緋葷粺浜х敓涓涓?#8220;榪涚▼鏍稿績瀵硅薄”錛岃鏁板間負1銆?br>3緋葷粺涓烘榪涚▼寤虹珛涓涓?GB鍦板潃絀洪棿
4杞藉叆鍣ㄥ皢蹇呰鐨勬暟鎹澆鍏ュ埌涓婅堪鍦板潃絀洪棿涓紝鍖呮嫭App.exe鐨勭▼搴忥紝鏁版嵁錛屼互鍙婃墍

闇瑕佺殑榪炴帴鍑芥暟搴擄紙DLL錛?杞藉叆鍣ㄦ槸鏍規嵁.idata section涓殑錛圥E鏂囦歡鏍煎紡錛夌殑璁?/p>

褰曟枃浠躲?br>5緋葷粺涓烘榪涚▼寤虹珛涓涓嚎紼嬶紝縐頒負涓葷嚎紼嬨傜嚎紼嬫墠鏄垎閰峜pu鏃墮棿鐨勫垎閰嶅璞°?br>6緋葷粺璋冪敤 C runtime鍑芥暟搴撶殑Startup code銆?br>7Startup code璋冪敤App紼嬪簭鐨刉inMain鍑芥暟銆?br>8App紼嬪簭榪愯寮濮?br>9浣跨敤鑰呭叧闂瑼pp涓葷獥鍙o紝鏄疻inMain涓殑淇℃伅寰幆緇撴潫鎺夛紝浜庢槸WinMain緇撴潫銆?br>10 榪斿洖鍒癝tartup code銆?br>11榪斿洖鍒扮郴緇燂紝緋葷粺璋冪敤ExitProcess緇撴潫榪涚▼銆?/p>


浜х敓瀛愯繘紼嬶紵
鐢–reateProcess

緇撴潫榪涚▼錛?br>VOID ExitProcess(UINT fuExitCode);

浜х敓棰濆鐨勭嚎紼?
CreateThread()

褰撹繘紼嬪緩绔嬭搗鏉ュ悗錛岀郴緇熶細瀹屾垚浠涔堬紙灝辨槸宸茬粡鏈変簡涓葷嚎紼嬶級錛?br>1閰嶇疆“綰跨▼瀵硅薄”錛屽叾handle灝嗘垚涓篊reateThread鐨勮繑鍥炲?br>2璁懼畾璁℃暟鍊間負1
3閰嶇疆綰跨▼鐨刢ontext錛堝伐浣滐級
4淇濈暀綰跨▼鐨勫爢鏍?br>5灝哻ontext涓殑鍫嗘爤鎸囬拡瀵勫瓨鍣紙ss錛夊拰鎸囦護鎸囬拡瀵勫瓨鍣紙ip錛夎瀹氬Ε褰?/p>

綰跨▼浼樺厛綰э紵
0錛?1 浠庝綆鍒伴珮錛?/p>

綰у埆       浠g爜    浼樺厛鏉冨?br>idle           IDLE_PRIORITY_CLASS  4
normal  NORMAL_PRIORITY_CLASS    9
high  HIGH_PRIORITY_CLASS  13
realtime REALTIME_PRIORITY_CLASS  24



Bluesea 2009-07-18 19:27 鍙戣〃璇勮
]]>
MFC鍏ぇ鍏抽敭鎶鏈箣浠跨湡http://m.shnenglu.com/finehai/archive/2009/07/18/90445.htmlBlueseaBlueseaSat, 18 Jul 2009 11:24:00 GMThttp://m.shnenglu.com/finehai/archive/2009/07/18/90445.htmlhttp://m.shnenglu.com/finehai/comments/90445.htmlhttp://m.shnenglu.com/finehai/archive/2009/07/18/90445.html#Feedback0http://m.shnenglu.com/finehai/comments/commentRss/90445.htmlhttp://m.shnenglu.com/finehai/services/trackbacks/90445.html浠涔堟槸application framework錛熷唴閮ㄨ繍浣滄満鍒舵槸浠涔堬紵

MFC鍏ぇ鍏抽敭鎶鏈槸浠涔堬紵
1MFC紼嬪簭鐨勫垵濮嬪寲榪囩▼
2RTTI 鍔ㄦ佺被鍨嬫爣璇?nbsp;
3Dynamic Creation  鍔ㄦ佺敓鎴?br>4Persistence  姘鎬箙淇濈暀
5Message Mapping  淇℃伅鏄犲皠
6Message Routing   淇℃伅浼犻?/font>


鎬庢牱鑷埗RTTI錛?br>鎴戜滑浣滀負綾誨簱鐨勮璁¤呰鍦ㄧ被鏋勯犺搗鏉ョ殑鏃跺欙紝璁板綍蹇呰鐨勪俊鎭紝浠ュ緩绔嬪瀷褰曘傚瀷褰曚腑鐨勭被鐨勪俊鎭紝鏈濂戒互閾捐〃鏂瑰紡榪炴帴璧鋒潵銆備竴鑸?#8220;綾誨埆鍨嬪綍”鏄竴涓粨鏋勶紝鍏朵腑鑷沖皯闇瑕佺被鍚嶅瓧錛岄摼琛ㄧ殑Next鎸囬拡錛屼互鍙婇摼琛ㄧ殑First鎸囬拡銆侳irst灞炰簬鏁翠綋鍙橀噺錛屼竴浠藉氨濂斤紝鎵浠ョ敤static淇グ銆?br>涓轟簡灝嗘瘡涓涓被閮借兘鎷ユ湁鎴愬憳鍙橀噺闆嗗悎錛屽茍涓旀渶濂芥湁涓瀹氱殑鍛藉悕瑙勫垯錛岀劧鍚庣粡鏌愮鎵嬫灝嗘暣涓被搴撴瀯閫犲ソ涔嬪悗錛?#8220;綾誨埆鍨嬪綍”錛堝氨鏄悇涓狢RuntimeClass瀵硅薄錛夊垯鑳藉憟鐜頒負錛?/p>


浠涔堟槸DECLARE_DYNAMIC/IMPLEMENT_DYNAMIC 瀹忥紵浣滅敤灝辨槸瀹屾垚RTTI鐨?#8220;綾誨埆鍨嬪綍”銆?/font>
涓轟簡灝嗕竴涓被瀵硅薄濉炲埌綾諱箣涓紝騫跺畾涔変竴涓彲浠ユ崟鎹夊埌璇ュ璞″湴鍧鐨勫嚱鏁幫紝瀹氫箟涓涓畯涓猴細
#define DECLARE_DYNAMIC(class_name)
public:
static CRuntimeClass class##class_name;
virtual CRuntimeClass* GetRuntimeClass()const;

姣斿鎴戜嬌鐢ㄤ簡DECLARE_DYNAMIC(CView)
緙栬瘧鍣ㄩ澶勭悊鍣ㄤ負鎴戝仛鍑虹殑浠g爜鏄細
public:
 static CRuntimeClass classCView;
 virtual CRuntimeClass * GetRuntimeClass()const;
涔熷氨鏄畾涔夌被鏃訛紝灝嗙被鏀懼叆DECLARE_DYNAMIC瀹忓氨鏄妸瑕佹斁鐨勫璞℃斁鍒頒簡閲岃竟銆傚叿浣撹繛鎺ュ伐浣滄槸鐢盜MPLEMENT_DYNAMIC瀹忔潵瀹炵幇錛?br>#define IMPLEMENT_DYNAMIC(class_name,base_class_name)
 _IMPLEMENT_RUNTIMECLASS(class_name,base_class_name,0xFFFF,NULL)
榪欓噷涓嶅仛鎵╁睍錛屾諱箣錛孖MPLEMENT_DYNAMIC鍐呭涓嶄粎鍒跺畾鍒濆鹼紝瀹冧嬌鐢ㄤ簡涓涓猻truct AFX_CLASSINIT {AFX_CLASSINTI(CRuntimeClass * pNewClass);};
(c++鐨剆truct鍜宑lass閮芥湁鏋勯犲嚱鏁?錛?br>AFX_CLASSINIT::AFX_CLASSINIT(CRuntimeClass*pNewClass)
{ pNewClass->m_NextClass = CRuntimeClass::pFirstClass;
  CRuntimeClass::pFirstClass = pNewClass;
}
灝辨槸涓婅竟鐨勮繖涓瀯閫犲嚱鏁板畬鎴愪簡榪炴帴宸ヤ綔銆?br>涓鑸嬌鐢ㄧ殑褰㈠紡鏄細
class CView:public CWnd
{
 DECLARE_DYNAMIC(CView)
 ...
};
// in implementation file
IMPLEMENT_DYNAMIC(CView CWnd)
榪欎袱涓畯灝卞畬鎴愪簡鏋勯犳暟鎹摼琛ㄧ殑宸ヤ綔銆?/p>

鎬庢牱鐢熸垚mfc灞傛緇撴瀯鐨勭被鍒瀷褰曪紵

.h鏂囦歡涓?br>class CObject{...};
class CCmdTarget:public CObject
{
 DECLARE_DYNCMIC (CCmdTarget)
 ...
};
class CWinThread:public CCmdTarget
{
 DECLARE_DYNAMIC (CWinThread)
 ...
};
class CWinApp:public CWinThread
{
 DECLARE_DYNAMIC (CWinApp)
 ...
};
class CDocument:public CCmdTarget
{
 DECLARE_DYNAMIC (CDocument)
 ... 
};
class CWnd:public CCmdTarget
{
 DECLARE_DYNAMIC (CWnd)
 ...
};
class CFrameWnd:public CWnd
{
 DECLARE_DYNAMIC (CFrameWnd)
 ...
};
class CView:public CWnd
{
 DECLARE_DYNAMIC (CView)
 ...
};
class CMyWinApp:public CWinApp
{...};
class CMyFrameWnd:public CFrameWnd
{...};
class CMyDoc:public CDocument
{...};
class CMyView:public CView
{...};


.cpp鏂囦歡涓?br>IMPLEMENT_DYNAMIC(CCmdTarget,CObject)
IMPLEMENT_DYNAMIC(CWinThread,CCmdTarget)
IMPLEMENT_DYNAMIC(CWinApp,CWinThread)
IMPLEMENT_DYNAMIC(CWnd,CCmdTarget)
IMPLEMENT_DYNAMIC(CView,CWnd)
IMPLEMENT_DYNAMIC(CFrameWnd,CWnd)
IMPLEMENT_DYNAMIC(CDocument,CCmdTarget)


IsKindOf鏄粈涔堬紵
瀹冩槸綾誨瀷璇嗗埆錛屽氨璇村湪寤虹珛浜?#8220;綾誨埆鍨嬪綍”緗戝悗錛屽湪鏌愪釜綾諱腑瀛樺湪榪欎釜鍑芥暟錛屽氨鏄湅榪欎釜鎸囬拡鏄笉鏄瓨鍦ㄦ煇涓被鐨勪笅鏀腑銆?br>姣斿錛?br>CMyDoc * pMyDoc = new CMyDoc;
CMyView * pMyView = new CMyView;

cout<<pMyDoc->IsKindOf(RUNTIME_CLASS(CMyDoc));//TURE
cout<<pMyDoc->IsKindOf(RUNTIME_CLASS(CDocument));//TURE
cout<<pMyDoc->IsKindOf(RUNTIME_CLASS(CCmdTarget));//TURE
cout<<pMyDoc->IsKindOf(RUNTIME_CLASS(CObject));//TURE
cout<<pMyDoc->IsKindOf(RUNTIME_CLASS(CWinApp));//FALSE


鎬庢牱 鑷埗Dynamic Create(鍔ㄦ佺敓鎴?錛?/font>

灝嗙被鐨勫ぇ灝忚褰曞湪綾誨埆鍨嬪綍涓紝鎶婃瀯閫犲嚱鏁頒篃璁板綍鍦ㄧ被鍒瀷褰曚腑錛屽綋紼嬪簭鍦ㄨ繍琛屾椂鏈熻幏寰椾竴涓被鍚嶅瓧錛屽畠灝卞彲浠ュ湪“綾誨埆鍨嬪綍緗?#8221;涓壘鍒板搴旂殑鍏冪礌錛岀劧鍚庢牴鎹被鐨勫ぇ灝忥紝璋冪敤鏋勯犲嚱鏁幫紝浜х敓鍑鴻瀵硅薄銆?/p>

榪欓噷浣跨敤鐨勬槸DECLARE_DYNCREATE/IMPLEMENT_DYNCREATE瀹?br>浣跨敤鍜屽畬鎴愮被鍒瀷褰曠殑鏂瑰紡宸笉澶氾細
class CFrameWnd:public CWnd
{
 DECLARE_DYNCREATE(CFrameWnd)
 ...
};(灝辨槸鍦ㄥご鏂囦歡涓?

// in implement 錛堝氨鏄湪cpp鏂囦歡涓疄鐜幫級
IMPLEMENT_DYNCREATE(CFrameWnd,CWnd)


鎬庢牱鑷埗Persistence錛堟案涔呬繚瀛橈級鏈哄埗錛?/font>
鍐欏埌鏂囦歡涓幓銆?br>鎶婃暟鎹啓鍒版枃浠朵腑銆傛柟娉曟槸錛氬湪Document/View緇撴瀯涓紝鏁版嵁閮芥斁鍦ㄤ竴浠絛ocument閲屽ご錛屾垜浠彧瑕佹妸鍏朵腑鐨勬垚鍛樺彉閲忛檰緇啓榪涙枃浠朵腑鍗沖彲銆傚鏋滄垚鍛樺彉閲忔槸涓璞★紝灝遍渶瑕佸厛璁拌澆綾葷殑鍚嶅瓧錛岀劧鍚庢墠鏄璞′腑鐨勬暟鎹?/p>


浠涔堟槸Serialize鏈哄埗錛?/font>
灝辨槸鎶婃枃浠跺悕鐨勯夋嫨銆佹枃浠剁殑璁塊棶銆佺紦鍐插尯鐨勫緩绔嬨佹暟鎹殑璇誨啓銆佽繍綆楃錛?gt;>錛夊拰榪愮畻絎?<<)鐨勯噸杞姐佸璞$殑鍔ㄦ佺敓鎴愰兘鍖呰璧鋒潵銆傚畠鐨勬暟鎹鍐欏拰瀵硅薄鐨勫姩浠g敓鎴愭槸鍏抽敭錛屽姩鎬佺敓鎴愬凡緇忓叿鏈夛紝榪欓噷灝遍噸鐐硅璁烘暟鎹殑璇誨啓鎿嶄綔銆?/p>

serialize鏈哄埗灝辨槸鑰冭檻鍒版瘡嬈¤褰曞璞″唴瀹圭殑鏃跺欙紝鍏堝啓鍏ヤ竴涓唬鐮侊紝琛ㄧず姝ゅ璞$被鏄惁鏇懼湪鏂囦歡涓褰曡繃浜嗐傚鏋滄槸鏂扮被錛屽氨璁板綍綾葷殑鍚嶅瓧錛屽鏋滄槸灝辯被錛屽氨鐢ㄤ唬鐮佽〃紺恒傝繕鏈夊氨鏄彲浠ユ帶鍒剁増鏈彿鐨勯棶棰樸傛湁涓涓笓闂ㄧ殑serialization鍑芥暟錛岀敤浜庤礋璐h繖浜涗換鍔°?br>姣忎竴涓彲鍐欏埌鏂囦歡鎴栧彲浠庢枃浠朵腑璇誨嚭鐨勭被錛岄兘搴旇鏈夊畠鑷繁鐨剆erailize鍑芥暟銆傝礋璐e畠鑷繁鏁版嵁璇誨啓鎿嶄綔錛屽茍涓斿簲璇ユ敼鍐?#8220;<<”“>>”,鎶婃暟鎹嫻佸archive涓?/p>


鎬庢牱瀹屾垚serialize錛?br>浣跨敤DECLARE_SERIAL/IMPLEMENT_SERIAL瀹忋傝繖涓畯鐨勫姛鑳芥槸灝?#8220;<<”鍜?#8220;>>”涓や釜榪愮畻絎﹂噸杞斤紝榪樺彲浠ュ皢serialize鍑芥暟鏀懼埌綾誨畾涔変腑銆傜被鑳藉榪涜鏂囦歡璇誨啓錛屽叾鍓嶆彁鏄嫢鏈夊姩鎬佺敓鎴愮殑鑳藉姏銆?br>#define DECLARE_SERIAL(class_name)
 DECLARE_DYNCREATE(class_name)
 friend CArchive& AFXAPI operator >>(CArchive& ar,class_name *&pOb)
#define IMPLEMENT_SERIAL(class_name,base_name,wSchema)
 CObject * PASCAL class_name::CreateObject()
 {return new class_name;}
 _IMPLEMENT_RUNTIMECLASS(class_name,base_class_name,wSchema,
  class_name::CreateObject)
 CArchive& AFXAPI operator>>(CArchive& ar,class_name *&pOb)
 {pOb = (class_name*)ar.ReadObject(RUNTIME_CLASS(class_name));
 return ar;}


涓涓璞″鐞嗕箣鍓嶏紝鍒ゆ柇鏄惁絎竴嬈″嚭鐜般佽褰曠増鏈彿銆佽褰曟枃浠跺悕鎬庢牱瀹炵幇錛?br>鐢–RuntimeClass涓殑涓や釜鍑芥暟Load鍜孲tore銆?br>struct CRuntimeClass
{
//attributes
 LPCSTR m_lpszClassName;
 int m_nObjectSize;
 UINT m_wSchema;//schema number of the loaded class
 CObject *(PASCAL * m_pfnCreateObject)();
 CRuntimeClass * m_pBaseClass;
  
 CObject *CreateObject();
 void Store (CArchive&ar)const;
 static CRuntimeClass * PASCAL Load(CArchive &ar,UINT *pwSchemaNum);
//CRuntimeClass objects linked together in simple list
 static CRuntimeClass * pFirstClass;//start of class list
 CRuntimeClass * m_pNextClass;//linked list of registered classes
};


涓轟簡璁╂暣涓猻erialization鏈哄埗榪愯璧鋒潵錛屽繀欏誨仛瀹氫箟涓猴細
.h鏂囦歡涓繀欏繪湁
class CScribDoc:public CDocument
{
 DECLARE_DYNCREATE(CScribDoc)
 ...
};
class CStroke:public CObject
{
 DECLARE_SERIAL(CStroke)
public:
 void Serialize(CArchive&);
...
};

class CRectangle :public CObject
{
 DECLARE_SERIAL(CRectangle)
public
 void Serialize(CArchive&)

};

class CCircle:public CObjcet
{
 DECLARE_SERIAL(CCircle)
public:
 void Seiralize(CArchive&);
...
};

.cpp鏂囦歡涓繀欏繪湁
IMPLEMENT_DYNCREATE(CScribDoc,CDocument)
IMPLEMENT_SERIAL(CStroke,CObjcet,2)
IMPLEMENT_SERIAL(CRectangle,CObjcet,1)
IMPLEMENT_SERIAL(CCircle,CObjcet,1)


鎬庢牱鑷埗Message Mapping(娑堟伅鏄犲皠)錛?/p>

褰撴垜浠殑綾誨簱鎴愮珛錛屽鏋滃叾涓笌淇℃伅鏈夊叧鐨勭被錛堝氨鏄?#8220;淇℃伅鏍囩殑綾?#8221;mfc涓氨鏄疌CmdTarget錛夐兘鏄竴鏉¢摼寮忓湴緇ф壙錛屾垜浠簲璇ヤ負姣忎竴涓?#8220;淇℃伅琛ㄧ殑綾?#8221;鍑嗗涓涓俊鎭槧灝勮〃錛屾瘮涓斿皢鍩虹被涓庢淳鐢熺被鐨勪俊鎭槧灝勮〃榪炴帴璧鋒潵銆傜劧鍚庯紝褰撶獥鍙e嚱鏁板仛淇℃伅鐨勬瘮杈冩椂錛屾垜浠氨鍙互鎯沖姙娉曞紩瀵煎畠娌跨潃榪欐潯璺蛋榪囧幓銆?/p>

瀹氫箟娑堟伅鏄犲皠鐨勬暟鎹粨鏋勶細
struct AFX_MSGMAP
{
 AFX_MSGMAP * pBaseMessagMap;
 AFX_MSGMAP_ENTRY *lpEntries;
};
鍏朵腑鐨凙FX_MSGMAP_ENTRY鍙堟槸鍙︿竴涓暟鎹粨鏋勶細
struct AFX_MSGMAP_ENTRY
{
 UINT nMessage;
 UINT nCode;
 UINT nID;
 UINT nLastID;
 UINT nSig;
 AFX_PMSG pfn;
}
鍏朵腑鐨凙FX_PMSG瀹氫箟涓哄嚱鏁版寚閽堬細
typedef void (CCmdTarget::*AFX_PMSG)(void);

涔嬪悗瀹氫箟鐨勫畯灝辨槸
#define DECLARE_MESSAGE_MAP();
static AFX_MSGMAP_ENTRY_ messageEntries[];
static AFX_MSGMAP messageMap;
virtual AFX_MSGMAP *GetMessageMap()const;

MFC瀵規秷鎭紶閫掔殑瑙勫畾鏄粈涔堬紵錛坢essage routing錛?br>濡傛灉鏄竴鑸殑windows淇℃伅錛圵M_xxx錛?涓瀹氭槸浠庢淳鐢熺被嫻佸悜鍩虹被銆?/p>

Bluesea 2009-07-18 19:24 鍙戣〃璇勮
]]>
[MFC]娑堟伅鏄犲皠http://m.shnenglu.com/finehai/archive/2009/07/18/90444.htmlBlueseaBlueseaSat, 18 Jul 2009 11:23:00 GMThttp://m.shnenglu.com/finehai/archive/2009/07/18/90444.htmlhttp://m.shnenglu.com/finehai/comments/90444.htmlhttp://m.shnenglu.com/finehai/archive/2009/07/18/90444.html#Feedback0http://m.shnenglu.com/finehai/comments/commentRss/90444.htmlhttp://m.shnenglu.com/finehai/services/trackbacks/90444.html涓轟粈涔堣鏈夋秷鎭槧灝勶紝瀹冪殑浣跨敤鏄庢牱鐨勶紵

MFC紼嬪簭鏄笉鍖呮嫭涓昏鍑芥暟鍜屾椂闂村驚鐜傛墍鏈夌殑浜嬩歡澶勭悊閮芥槸浣滀負CWinApp鐨勪竴閮ㄥ垎鍦ㄥ悗鍙板鐞嗙殑銆傝屾秷鎭槧灝勫氨鏄瘑鍒劅鍏磋叮鐨勪簨浠剁劧鍚庤皟鐢ㄥ嚱鏁版潵鍝嶅簲榪欎簺浜嬩歡銆?/p>

涓錛岄鍏堟槸姝e父鐨勭▼搴?/p>

// button1.cpp
銆銆#include
銆銆#define IDB_BUTTON 100
銆銆// Declare the application class
銆銆class CButtonApp : public CWinApp
銆銆{
銆銆public:
銆銆virtual BOOL InitInstance();
銆銆};
銆銆// Create an instance of the application class
銆銆CButtonApp ButtonApp;
銆銆// Declare the main window class
銆銆class CButtonWindow : public CFrameWnd
銆銆{
銆銆CButton *button;
銆銆public:
銆銆CButtonWindow();
銆銆};
銆銆// The InitInstance function is called once
銆銆// when the application first executes
銆銆BOOL CButtonApp::InitInstance()
銆銆{
銆銆m_pMainWnd = new CButtonWindow();
銆銆m_pMainWnd->ShowWindow(m_nCmdShow);
銆銆m_pMainWnd->UpdateWindow();
銆銆return TRUE;
銆銆}
銆銆// The constructor for the window class
銆銆CButtonWindow::CButtonWindow()
銆銆{
銆銆CRect r;
銆銆// Create the window itself
銆銆Create(NULL,
銆銆"CButton Tests",
銆銆WS_OVERLAPPEDWINDOW,
銆銆CRect(0,0,200,200));
銆銆// Get the size of the client rectangle
銆銆GetClientRect(&r);
銆銆r.InflateRect(-20,-20);
銆銆// Create a button
銆銆button = new CButton();
銆銆button->Create("Push me",
銆銆WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,
銆銆r,
銆銆this,
銆銆IDB_BUTTON);
銆銆}

褰撲綘榪愯浠g爜鏃訛紝浼氭敞鎰忓埌鎸夐挳鍝嶅簲浜嗙敤鎴蜂簨浠躲傛棦瀹冨姞浜簡銆傞櫎姝や箣澶栧畠娌℃湁鍋氫換浣曚簨鎯咃紝鍥犱負鎴戜滑榪樻病鏈夋暀瀹冩庢牱鍘誨仛銆傛垜浠渶瑕佺紪鍐欐秷鎭槧灝勬潵浣挎寜閽仛涓浜涙劅鍏磋叮鐨勪簨鎯呫?/font>

浜岋紝寤虹珛娑堟伅鏄犲皠

// button2.cpp
銆銆#include
銆銆#define IDB_BUTTON 100
銆銆// Declare the application class
銆銆class CButtonApp : public CWinApp
銆銆{
銆銆public:
銆銆virtual BOOL InitInstance();
銆銆};
銆銆// Create an instance of the application class
銆銆CButtonApp ButtonApp;
銆銆// Declare the main window class
銆銆class CButtonWindow : public CFrameWnd
銆銆{
銆銆CButton *button;
銆銆public:
銆銆CButtonWindow();
銆銆afx_msg void HandleButton(); //
銆銆DECLARE_MESSAGE_MAP()

銆銆};
銆銆// The message handler function
銆銆void CButtonWindow::HandleButton()
銆銆{
銆銆MessageBeep(-1);
銆銆}

銆銆// The message map
銆銆BEGIN_MESSAGE_MAP(CButtonWindow, CFrameWnd)
銆銆ON_BN_CLICKED(IDB_BUTTON, HandleButton)
銆銆END_MESSAGE_MAP()

/*鐢ㄥ畯鏉ュ緩绔嬫秷鎭槧灝勩傚湪浠g爜涓紝浣犲彲浠ョ湅瑙丅EGIN_MESSAGE_MAP瀹忔帴鏀朵袱鍚勫弬鏁般傜涓涓寚瀹氫簡浣跨敤娑堟伅鏄犲皠鐨勭被鐨勫悕縐般傜浜屼釜鏄熀綾匯傜劧鍚庢槸ON_BN_CLICKED瀹忥紝鎺ュ彈涓や釜鍙傛暟鎺у埗鐨処D鍜岃ID鍙戦佸懡浠ゆ秷鎭椂鎵璋冪敤鐨勫嚱鏁般傛渶鍚庯紝娑堟伅鏄犲皠鐢‥ND_MESSAGE_MAP鏉ョ粨鏉熴?/font>

褰撶敤鎴峰崟鍑繪寜閽椂錛屽畠鍚戝叾鍖呭惈璇ユ寜閽殑鐖剁獥鍙e彂閫佷簡涓涓寘鍚叾ID鐨勫懡浠ゆ秷鎭傞偅鏄寜閽殑緙虹渷琛屼負錛岃繖灝辨槸璇ヤ唬鐮佸伐浣滅殑鍘熷洜銆傛寜閽悜鍏剁埗紿楀彛鍙戦佹秷鎭紝鏄洜涓哄畠鏄瓙紿楀彛銆傜埗紿楀彛鎴彇璇ユ秷鎭茍鐢ㄦ秷鎭槧灝勬潵紜畾鎵瑕佽皟鐢ㄧ殑鍑芥暟銆侻FC鏉ュ畨鎺掞紝鍙鎸囧畾鐨勬秷鎭竴鍑虹幇錛岀浉搴旂殑鍑芥暟灝變細琚皟鐢ㄣ?br>銆銆ON_BN_CLICKED娑堟伅鏄疌Button鍙戦佺殑鍞竴鎰熷叴瓚g殑娑堟伅銆傚畠絳夊悓浜嶤Wnd涓殑ON_COMMAND娑堟伅錛屽彧鏄竴涓洿綆鍗曟柟渚跨殑鍚屼箟璇嶈屽凡銆?/
銆銆// The InitInstance function is called once
銆銆// when the application first executes
銆銆BOOL CButtonApp::InitInstance()
銆銆{
銆銆m_pMainWnd = new CButtonWindow();
銆銆m_pMainWnd->ShowWindow(m_nCmdShow);
銆銆m_pMainWnd->UpdateWindow();
銆銆return TRUE;
銆銆}
銆銆// The constructor for the window class
銆銆CButtonWindow::CButtonWindow()
銆銆{
銆銆CRect r;
銆銆// Create the window itself
銆銆Create(NULL,
銆銆"CButton Tests",
銆銆WS_OVERLAPPEDWINDOW,
銆銆CRect(0,0,200,200));
銆銆// Get the size of the client rectangle
銆銆GetClientRect(&r);
銆銆r.InflateRect(-20,-20);
銆銆// Create a button
銆銆button = new CButton();
銆銆button->Create("Push me",
銆銆WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,
銆銆r,
銆銆this,
銆銆IDB_BUTTON);
銆銆}

涓婅竟淇敼浜嗕袱涓湴鏂癸紝1澧炲姞浜嗕竴涓柊鐨勬垚鍛樺嚱鏁板拰涓涓柊鐨勮〃紺烘秷鎭槧灝勭殑瀹忋侶andleButton鍑芥暟鏄甯哥殑c++鍑芥暟錛屽畠閫氳繃afx_msg鏍囩紜畾涓烘秷鎭鐞嗗嚱鏁般傝鍑芥暟鏈変竴浜涚壒孌婄害鏉燂紝姣斿瀹冨繀欏繪槸void鍨嬪茍涓斾笉鑳芥帴鏀朵換浣曞弬鏁般?DECLARE_MESSAGE_MAP瀹忓緩绔嬩簡娑堟伅鏄犲皠銆傚嚱鏁板拰瀹忛兘蹇呴』鏄痯ublic鍨嬬殑銆?/font>

 

瀵規秷鎭槧灝勭殑鐞嗚В錛?/font>

娑堟伅鏄犲皠鏅鴻兘鐢ㄤ簬MFC銆備嬌鐢ㄦ秷鎭槧灝勭殑鍘熷洜鏄В鍐寵櫄鎷熷嚱鏁扮殑鍩烘湰闂銆?MFC鏂囦歡涓瑿Wnd綾伙紝瀹冨寘鍚?00澶氫釜鎴愬憳鍑芥暟錛屾墍鏈夋垚鍛樺嚱鏁板綋涓嶄嬌鐢ㄦ秷鎭槧灝勯兘鏄櫄鎷熺殑銆侻FC涓ぇ綰︽湁榪?0涓被鏄互CWnd涓哄熀綾葷殑銆傝繖鍖呮嫭鎵鏈夌殑鍙鎺у埗濡傛寜閽侀潤鎬佹爣絳懼拰鍒楄〃銆傛兂璞′竴涓嬶紝mfc浣跨敤铏氭嫙鍟婂拰浣犵啛錛屽茍涓斾綘寤虹珛浠ュ簲鐢ㄧ▼搴忓寘鍚?0涓帶鍒?CWnd涓?00涓櫄鎷熷嚱鏁頒腑姣忎釜閮介渶瑕佽嚜宸辯殑铏氭嫙鍑芥暟琛紝騫朵笖涓涓帶鍒剁殑姣忎釜渚嬬▼閮藉簲鏈変竴緇?00涓櫄鎷熷嚱鏁頒笌涔嬪叧鑱斻傚垯紼嬪簭鍙兘灝辨湁榪?000涓櫄鎷熷嚱鏁拌〃鍦ㄥ唴瀛樹腑錛岃繖瀵瑰唴瀛樻湁闄愮殑鍙婂叾鏉ヤ功鏄釜澶ч棶棰橈紝鍥犱負鍏朵腑鐨勫ぇ閮ㄥ垎鏄笉鐢ㄧ殑銆?/font>

娑堟伅鏄犲皠澶嶅埗浜嗚櫄鎷熷嚱鏁拌〃鐨勬搷浣滐紝浣嗘槸瀹冩槸鍩轟簬闇瑕佺殑鍩虹涔嬩笂鐨勩傛秷鎭槧灝勫氨鏄緋葷粺璇?#8220;褰撲綘鐪嬭涓涓壒孌婄殑娑堟伅鏃訛紝璇瘋皟鐢ㄥ埗瀹氱殑鍑芥暟”錛屽彧鏈夎繖浜涘嚱鏁板疄闄呬笂琚噸杞藉埌娑堟伅鏄犲皠涓紝灝辮妭鐪佷簩妤煎唴瀛樺拰cpu鐨勮礋鎷呫?/font>



Bluesea 2009-07-18 19:23 鍙戣〃璇勮
]]>
[MFC]CButtonST浣跨敤鎶宸э紙浜岋級http://m.shnenglu.com/finehai/archive/2009/07/17/90325.htmlBlueseaBlueseaFri, 17 Jul 2009 04:42:00 GMThttp://m.shnenglu.com/finehai/archive/2009/07/17/90325.htmlhttp://m.shnenglu.com/finehai/comments/90325.htmlhttp://m.shnenglu.com/finehai/archive/2009/07/17/90325.html#Feedback0http://m.shnenglu.com/finehai/comments/commentRss/90325.htmlhttp://m.shnenglu.com/finehai/services/trackbacks/90325.html 

涓婁竴綃囨枃绔犮?a target=_blank>CButtonST浣跨敤鎶宸э紙涓錛?/a>銆嬩粙緇嶄簡CButtonST浣跨敤鐨?縐嶆妧宸э紝鏈瘒涓昏鍖呮嫭浜嗕互涓嬬殑鏁堟灉錛?br>
1. 鏀瑰彉榧犳爣榪涘叆鎸夐挳鏃剁殑褰㈢姸(瓚呴摼鎺ユ晥鏋?
2. 鑿滃崟鎸夐挳
3. 浣嶅浘鎸夐挳
4. 鎸夐挳鐒︾偣
5. CheckBox鎸夐挳
6. 閫忔槑鎸夐挳(鎸夐挳鑳屾櫙鍜岀獥鍙h儗鏅竴鏍?
7. 鐗規畩鐨凱ictureBox

鏁堟灉涓錛氭敼鍙橀紶鏍囪繘鍏ユ寜閽椂鐨勫艦鐘?瓚呴摼鎺ユ晥鏋?
鍋囪鎸夐挳ID涓篒DC_BUTTON1
1. 娣誨姞鎴愬憳鍙橀噺
CButtonST    m_btn;
2. 娣誨姞Icon璧勬簮錛岃鍏禝D璁句負IDI_ICON1
3. 鍦∣nInitDialog鍑芥暟涓垵濮嬪寲鎸夐挳
m_btn.SubclassDlgItem(IDC_BUTTON1,this);
m_btn.SetIcon(IDI_ICON1);
m_btn.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);
m_btn.SetURL("www.scut.edu.cn");
m_btn.SetTooltipText("www.scut.edu.cn");
m_btn.SetBtnCursor(IDC_CURSOR1);

鏁堟灉浜岋細鑿滃崟鎸夐挳


鍋囪鎸夐挳ID涓篒DC_BUTTON1
1.娣誨姞鎴愬憳鍙橀噺
CButtonST    m_btn;
2. 娣誨姞Icon璧勬簮錛岃鍏禝D璁句負IDI_ICON1
3. 娣誨姞Menu錛孖D璁句負IDR_MENU
4. 鍦∣nInitDialog鍑芥暟涓垵濮嬪寲鎸夐挳
m_btn.SubclassDlgItem(IDC_BUTTON1,this);
m_btn.SetIcon(IDI_ICON1);
m_btn.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);
m_btn.SetMenu(IDR_MENU, m_hWnd);
娉ㄦ剰:鑿滃崟鐨勬晥鏋滅被浼間笌鍙抽敭鑿滃崟錛屾墍鏈夊湪璁劇疆鑿滃崟閫夐」鏃跺彧璁劇疆涓鍒楀氨澶熶簡銆傚彟澶栬彍鍗曠殑瀹藉害涓庤彍鍗曠殑鏂囧瓧闀垮害鏈夊叧錛屽彲浠ョ敤絀烘牸鍗犱綅鐨勫姙娉曚互杈懼埌鏈浣蟲晥鏋溿?br>
鍦ㄨ彍鍗曚腑寮曞叆浣嶅浘鐨勬柟娉?/strong>

1.娣誨姞ToolBar錛屼緷嬈′嬌鐢∕enu鑿滃崟欏笽D浣滀負ToolBar鎸夐挳鐨処D銆?br>2.ToolBar涓婄殑鎸夐挳鍥炬爣灝嗘樉紺哄湪鐩稿簲鐨勮彍鍗曢」涓?br>灝嗕笂闈唬鐮佷腑鐨刴_btn.SetMenu(IDR_MENU, m_hWnd);
鏀逛負m_btn.SetMenu(IDR_MENU, m_hWnd, TRUE, IDR_TOOLBAR);
IDR_TOOLBAR涓虹浉搴擳oolBar鐨処D銆?br>
鏁堟灉涓夛細浣嶅浘鎸夐挳
鍋囪鎸夐挳ID涓篒DC_BUTTON1
1.娣誨姞鎴愬憳鍙橀噺
CButtonST    m_btn;
2.娣誨姞浣嶅浘璧勬簮錛孖D璁句負IDB_BITMAP1
3.鍦∣nInitDialog鍑芥暟涓垵濮嬪寲鎸夐挳
m_btn.SubclassDlgItem(IDC_BUTTON1,this);
m_btn.SetBitmaps(IDB_BITMAP1,RGB(0,0,0));
m_btn.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);
鎻愮ず: 涓婇潰鐨凷etBitmaps鍑芥暟浼氬皢鍥劇墖涓鑹插間負RGB(0,0,0)鐨勭偣璁句負閫忔槑銆?br>
鏁堟灉鍥涳細鎸夐挳鐒︾偣

鍋囪鎸夐挳ID涓篒DC_BUTTON1
1.娣誨姞鎴愬憳鍙橀噺
CButtonST    m_btn;
2. 娣誨姞Icon璧勬簮錛岃鍏禝D璁句負IDI_ICON1
3. 鍦∣nInitDialog鍑芥暟涓垵濮嬪寲鎸夐挳
m_btn.SubclassDlgItem(IDC_BUTTON1,this);
m_btn.SetIcon(IDI_ICON1);
m_btn.SetAlign(CButtonST::ST_ALIGN_VERT);
m_btn.DrawFlatFocus(TRUE);

鏁堟灉浜旓細CheckBox鎸夐挳

鍋囪鎸夐挳ID涓篒DC_BUTTON1
1.娣誨姞鎴愬憳鍙橀噺
CButtonST    m_btn;
2. 娣誨姞Icon璧勬簮錛孖D璁句負IDI_ICON1鍜孖DI_ICON2
3.鍦∣nInitDialog鍑芥暟涓垵濮嬪寲鎸夐挳
m_btn.SubclassDlgItem(IDC_CHECK1,this);
m_btn.SetIcon(IDI_ICON1,IDI_ICON2);
m_btn.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);
鎻愮ず:
IDI_ICON1涓洪変腑鏃跺欐樉紺虹殑鍥炬爣
IDI_ICON2涓轟負閫変腑鏃跺欑殑鍥炬爣

鏁堟灉鍏細閫忔槑鎸夐挳

鍋囪鎸夐挳ID涓篒DC_BUTTON1
1.娣誨姞鎴愬憳鍙橀噺
CButtonST    m_btn;
2. 娣誨姞Icon璧勬簮錛孖D璁句負IDI_ICON1
3.鍦∣nInitDialog鍑芥暟涓垵濮嬪寲鎸夐挳
m_btn.SubclassDlgItem(IDC_BUTTON1,this);
m_btn.SetIcon(IDI_ICON1);
m_btn.DrawTransparent(TRUE);

鏁堟灉涓冿細鐗規畩鐨凱ictureBox


鍒╃敤CButtonST鐨勭壒孌婃樉紺洪鏍鹼紝瀹屽叏鍙互鎶婂畠褰撲綔涓涓狿ictureBox鎺т歡浣跨敤銆傝繖鏃朵竴鑸細鎶婃寜閽殑灞炴ц緗負disable銆?br>瀹炰緥錛氭紨紺虹▼搴忕殑About欏典腑浣跨敤浜咰ButtonST鏉ヤ唬鏇縋ictureBox銆?

Bluesea 2009-07-17 12:42 鍙戣〃璇勮
]]>
[MFC]CButtonST浣跨敤鎶宸э紙涓錛?/title><link>http://m.shnenglu.com/finehai/archive/2009/07/17/90324.html</link><dc:creator>Bluesea</dc:creator><author>Bluesea</author><pubDate>Fri, 17 Jul 2009 04:41:00 GMT</pubDate><guid>http://m.shnenglu.com/finehai/archive/2009/07/17/90324.html</guid><wfw:comment>http://m.shnenglu.com/finehai/comments/90324.html</wfw:comment><comments>http://m.shnenglu.com/finehai/archive/2009/07/17/90324.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/finehai/comments/commentRss/90324.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/finehai/services/trackbacks/90324.html</trackback:ping><description><![CDATA[<p align=center><a href="mailto:duxiuxing@163.net"><font color=#0000ff><u></u></font></a> </p> <p><a ><font color=#0000ff><u>涓嬭澆CButtonST紺轟緥婧愪唬鐮?/u></font></a><br><a ><u><font color=#0000ff>涓嬭澆CButtonST綾葷殑婧愪唬鐮?/font></u></a><br><br>鏈瘒涓昏鍖呮嫭浜嗕互涓嬬殑鏁堟灉錛?br>1. <a ><u><font color=#0000ff>鍦ㄦ寜閽笂鍔犲叆Icon錛屼嬌Icon鍜屾枃瀛楀悓鏃舵樉紺?/font></u></a><br>2. <a ><u><font color=#0000ff>鏄劇ず騫抽潰鎸夐挳</font></u></a><br>3. <a ><u><font color=#0000ff>浣挎寜閽笂鐨勫浘鏍囧彲鍙?/font></u></a><br>4. <a ><u><font color=#0000ff>璁劇疆鎸夐挳鍦ㄤ笉鍚岀姸鎬佷笅鐨勫簳鑹插拰鏂囧瓧棰滆壊</font></u></a><br>5. <a ><u><font color=#0000ff>璁劇疆鍥炬爣鍜屾枃瀛楃殑浣嶇疆</font></u></a><br>6. <a ><u><font color=#0000ff>鏍規嵁Icon鐨勫艦鐘惰緗寜閽殑褰㈢姸</font></u></a><br>7. <a ><u><font color=#0000ff>娣誨姞Tooltips</font></u></a><br><br>浠ヤ笅鏄疊asic Features鐨勬紨紺虹晫闈細<br><img height=325 src="http://www.vckbase.com/document/journal/vckbase17/images/CButtonST2.gif" width=486><br><a name=F1></a><br><img height=16 src="http://www.vckbase.com/document/image/paragraph.gif" width=14> <strong>鏁堟灉涓錛氬湪鎸夐挳涓婂姞鍏con錛屼嬌Icon鍜屾枃瀛楀悓鏃舵樉紺?</strong><br><br>鍋囪鎸夐挳ID涓篒DC_BUTTON1<br>1. 娣誨姞鎴愬憳鍙橀噺 </p> <pre>CButtonST m_btn;</pre> <p>2. 娣誨姞Icon璧勬簮錛岃鍏禝D璁句負IDI_ICON1<br>3. 鍦∣nInitDialog鍑芥暟涓垵濮嬪寲鎸夐挳 </p> <pre>m_btn.SubclassDlgItem(IDC_BUTTON1,this); m_btn.SetIcon(IDI_ICON1); m_btn.SetFlat(FALSE);</pre> <p>娉ㄦ剰:涓鴻揪鍒版渶濂芥晥鏋滐紝璇鋒牴鎹甀con鐨勫ぇ灝忚皟鏁存寜閽殑澶у皬銆?br>瀹炰緥錛氭紨紺虹▼搴忎腑鐨凷tandar 鎸夐挳銆?br><a name=F2></a><br><img height=16 src="http://www.vckbase.com/document/image/paragraph.gif" width=14> <strong>鏁堟灉浜岋細鏄劇ず騫抽潰鎸夐挳</strong><br>鍙渶瑕佸湪鏁堟灉涓鐨勫熀紜涓婃妸m_btn.SetFlat(FALSE);璇彞鍘繪帀銆?br><a id=F3 name=F3></a><br><img height=16 src="http://www.vckbase.com/document/image/paragraph.gif" width=14> <strong>鏁堟灉涓夛細浣挎寜閽笂鐨勫浘鏍囧彲鍙?/strong><br>鍋囪鎸夐挳ID涓篒DC_BUTTON1<br>1. 娣誨姞鎴愬憳鍙橀噺</p> <pre>CButtonST m_btn;</pre> <p>2. 娣誨姞涓や釜Icon璧勬簮錛孖D璁句負IDI_ICON1鍜孖DI_ICON2<br>IDI_ICON1鏄櫘閫氱姸鎬佺殑鍥炬爣錛孖DI_ICON2鏄寜涓嬫椂鐨勫浘鏍?br><br>3. 鍦∣nInitDialog鍑芥暟涓垵濮嬪寲鎸夐挳</p> <pre>m_btn.SubclassDlgItem(IDC_BUTTON1,this); m_btn.SetIcon(IDI_ICON2,IDI_ICON1);</pre> <p>瀹炰緥錛氭紨紺虹▼搴忎腑鐨凥alloween 鎸夐挳銆?<br><a id=F4 name=F4></a><br><img height=16 src="http://www.vckbase.com/document/image/paragraph.gif" width=14> <strong>鏁堟灉鍥涳細璁劇疆鎸夐挳鍦ㄤ笉鍚岀姸鎬佷笅鐨勫簳鑹插拰鏂囧瓧棰滆壊</strong> <br><br>鍋囪鎸夐挳ID涓篒DC_BUTTON1<br>1. 娣誨姞鎴愬憳鍙橀噺 </p> <pre>CButtonST m_btn;</pre> <p>2. 娣誨姞Icon璧勬簮錛岃鍏禝D璁句負IDI_ICON1<br>3. 鍦∣nInitDialog鍑芥暟涓垵濮嬪寲鎸夐挳</p> <pre>m_btn.SubclassDlgItem(IDC_BUTTON1,this); m_btn.SetIcon(IDI_ICON1); m_btn.SetColor(CButtonST::BTNST_COLOR_BK_OUT, RGB(208,208,208)); m_btn.SetColor(CButtonST::BTNST_COLOR_BK_FOCUS, RGB(208,208,208)); m_btn.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);</pre> <p>鎻愮ず錛歋etColor鍑芥暟鍜孫ffsetColor鍑芥暟鐨勭涓涓弬鏁拌〃紺烘寜閽殑鍚勪釜鐘舵侊紝鍓嶆櫙鑹插氨鏄枃瀛楃殑棰滆壊錛屽畠浠殑鍙栧艱〃紺猴細</p> <pre>BTNST_COLOR_BK_IN //榧犳爣鏀懼湪鎸夐挳鍐呮椂鐨勮儗鏅壊 BTNST_COLOR_FG_IN, //榧犳爣鏀懼湪鎸夐挳鍐呮椂鐨勫墠鏅壊 BTNST_COLOR_BK_OUT, //鏅氱姸鎬佹椂鐨勮儗鏅壊 BTNST_COLOR_FG_OUT, //鏅氱姸鎬佹椂鐨勫墠鏅壊 BTNST_COLOR_BK_FOCUS, //鎸夐挳琚寜涓嬪悗鐨勮儗鏅壊 BTNST_COLOR_FG_FOCUS, //鎸夐挳琚寜涓嬪悗鐨勫墠鏅壊</pre> <p>瀹炰緥錛氭紨紺虹▼搴忎腑鐨?8×48 icon 鎸夐挳銆乑ip鎸夐挳絳夈?br><a id=F5 name=F5></a><br><img height=16 src="http://www.vckbase.com/document/image/paragraph.gif" width=14> <strong>鏁堟灉浜旓細璁劇疆鍥炬爣鍜屾枃瀛楃殑浣嶇疆</strong><br><br>鍋囪鎸夐挳ID涓篒DC_BUTTON1<br>1.娣誨姞鎴愬憳鍙橀噺 </p> <pre>CButtonST m_btn;</pre> <p>2.娣誨姞Icon璧勬簮錛孖D璁句負IDI_ICON1<br>3.鍦∣nInitDialog鍑芥暟涓垵濮嬪寲鎸夐挳</p> <pre>m_btn.SubclassDlgItem(IDC_BUTTON1,this); m_btn.SetIcon(IDI_ICON1); m_btn.SetAlign(CButtonST::ST_ALIGN_VERT); </pre> <p>鎻愮ず錛歋etAlign鍑芥暟鐨勭涓涓弬鏁拌〃紺轟綅緗俊鎭紝緙虹渷鎯呭喌涓嬶紝鏂囧瓧鍦ㄥ浘鏍囧彸杈?/p> <pre>ST_ALIGN_HORIZ // 鏂囧瓧鍦ㄥ彸 ST_ALIGN_VERT //鏂囧瓧鍦ㄤ笅 ST_ALIGN_HORIZ_RIGHT// 鏂囧瓧鍦ㄥ乏 </pre> <p>瀹炰緥錛氭紨紺虹▼搴忎腑鐨凷earch 鎸夐挳銆?br><a id=F6 name=F6></a><br><img height=16 src="http://www.vckbase.com/document/image/paragraph.gif" width=14> <strong>鏁堟灉鍏細鏍規嵁Icon鐨勫艦鐘惰緗寜閽殑褰㈢姸</strong><br><br>鍋囪鎸夐挳ID涓篒DC_BUTTON1<br>1.娣誨姞鎴愬憳鍙橀噺 </p> <pre>CButtonST m_btn;</pre> <p>2.娣誨姞Icon璧勬簮錛岃鍏禝D璁句負IDI_ICON1<br>3.鍦∣nInitDialog鍑芥暟涓垵濮嬪寲鎸夐挳</p> <pre>m_btn.SubclassDlgItem(IDC_BUTTON1,this); m_btn.SetIcon(IDI_ICON1); m_btn.DrawBorder(FALSE); m_btn.SetColor(CButtonST::BTNST_COLOR_BK_OUT, RGB(208,208,208)); m_btn.SetColor(CButtonST::BTNST_COLOR_BK_IN, RGB(208,208,208)); m_btn.SetColor(CButtonST::BTNST_COLOR_BK_FOCUS, RGB(208,208,208));</pre> <p>娉ㄦ剰:涓鴻揪鍒版渶濂芥晥鏋滐紝璇鋒牴鎹甀con鐨勫ぇ灝忚皟鏁存寜閽殑澶у皬銆?br>騫舵牴鎹疄闄呮儏鍐佃緗儗鏅鑹層傝浜嬪厛灝嗘寜閽殑鏂囧瓧鍘繪帀銆?br><a id=F7 name=F7></a><br><img height=16 src="http://www.vckbase.com/document/image/paragraph.gif" width=14> <strong>鏁堟灉涓冿細娣誨姞Tooltips</strong><br><br>鍋囪鎸夐挳ID涓篒DC_BUTTON1<br>1.娣誨姞鎴愬憳鍙橀噺</p> <pre>CButtonST m_btn;</pre> <p>2.娣誨姞Icon璧勬簮錛岃鍏禝D璁句負IDI_ICON1<br>3. 鍦∣nInitDialog鍑芥暟涓垵濮嬪寲鎸夐挳</p> <pre>m_btn.SubclassDlgItem(IDC_BUTTON1,this); m_btn.SetIcon(IDI_ICON1); m_btn.SetTooltipText(_T("This is a tooltip.\r\nMultiline!"));</pre> <p><br><br> </p> <img src ="http://m.shnenglu.com/finehai/aggbug/90324.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/finehai/" target="_blank">Bluesea</a> 2009-07-17 12:41 <a href="http://m.shnenglu.com/finehai/archive/2009/07/17/90324.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[VS]娣誨姞娑堟伅鏃訛細the code element is read onlyhttp://m.shnenglu.com/finehai/archive/2009/07/17/90323.htmlBlueseaBlueseaFri, 17 Jul 2009 04:40:00 GMThttp://m.shnenglu.com/finehai/archive/2009/07/17/90323.htmlhttp://m.shnenglu.com/finehai/comments/90323.htmlhttp://m.shnenglu.com/finehai/archive/2009/07/17/90323.html#Feedback0http://m.shnenglu.com/finehai/comments/commentRss/90323.htmlhttp://m.shnenglu.com/finehai/services/trackbacks/90323.html鍦╒S2005涓婁嬌鐢–++寮鍙戦亣鍒扮殑涓涓棶棰橈細閫氳繃MFC娣誨姞娑堟伅/浜嬩歡錛屼駭鐢熼敊璇彁紺?鏃犳硶鎵ц娣誨姞/縐婚櫎鎿嶄綔,鍥犱負浠g爜鍏冪礌鏄彧璇葷殑"銆?/p>

鏌ヤ簡寰堝璧勬枡錛屼篃璇曚簡寰堝鍔炴硶錛岄兘瑙e喅涓嶄簡銆傜洰鍓嶅彧鑳介氳繃鎵嬪姩娣誨姞錛岃繖瀹炲湪涓嶆槸濂藉姙娉曘?nbsp;

涓嬮潰鏄綉涓婃敹闆嗙殑瑙e喅鍔炴硶錛岃В鍐蟲柟妗堬細
1銆侀噸鍚疺C/VS2005;

2銆佹墦寮Resource.h鏂囦歡鐪嬬湅錛屾湁浜涘畾涔夐噸澶嶄簡錛屽彲浠ユ墜鍔ㄦ敼鎺夛紝淇濆瓨錛岀紪杈戝櫒閲嶆柊鍔犺澆;

3銆佸叧闂В鍐蟲柟妗堬紝鍒犻櫎ncb鏂囦歡閲嶆柊娣誨姞鍗沖彲;錛堣繖涓瘯榪囷紝鏄彲浠ョ殑錛?/p>

4銆佸疄鍦ㄤ笉琛屽氨鎵嬪姩娣誨姞娑堟伅澶勭悊;

5銆佹煡鐪?h鍜?cpp鏂囦歡鐨勫睘鎬?鏈夊彲鑳芥槸鍙鐨?淇敼灞炴у悗灝卞彲浠ヤ簡;

6銆佹妸浣犺娣誨姞浜嬩歡鐨勫璇濇鐩稿簲鐨勭被鏂囦歡錛?.h鍜?.cpp錛夌粰鍏充簡灝卞彲浠ヤ簡;  



Bluesea 2009-07-17 12:40 鍙戣〃璇勮
]]>
[MFC]Web Browsehttp://m.shnenglu.com/finehai/archive/2009/07/17/90321.htmlBlueseaBlueseaFri, 17 Jul 2009 04:38:00 GMThttp://m.shnenglu.com/finehai/archive/2009/07/17/90321.htmlhttp://m.shnenglu.com/finehai/comments/90321.htmlhttp://m.shnenglu.com/finehai/archive/2009/07/17/90321.html#Feedback0http://m.shnenglu.com/finehai/comments/commentRss/90321.htmlhttp://m.shnenglu.com/finehai/services/trackbacks/90321.html銆銆涓昏鍔熻兘錛?br>銆銆絎竴錛氭祻瑙堢綉欏?br>銆銆鍒╃敤鎺т歡鐨凬avigate鎺ュ彛錛屽師鍨嬪涓嬶細
銆銆void CWebBrowser2::Navigate(LPCTSTR URL, VARIANT* Flags, VARIANT* TargetFrameName, VARIANT* PostData, VARIANT* Headers)
銆銆鍙絎竴涓弬鏁板~涓奾tml鏂囦歡鐨勫叏璺緞鍚?img class=zoominoBgImage style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BACKGROUND-POSITION: -18px -23px; BORDER-TOP: medium none; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: medium none; WIDTH: 12px; PADDING-TOP: 0px; BORDER-BOTTOM: medium none; HEIGHT: 14px; cssFloat: none" src="http://static.zoomino.cn/static-ox/images/blank.gif">錛堜笉鑳戒嬌鐢ㄧ浉瀵硅礬寰勫悕錛?鍏朵綑鐨勫弬鏁板彲浠ヤ負NULL銆?br>銆銆璇磋搗鏉ヨ繖鏄竴涓緢鏅氱殑鍔熻兘錛屼絾鏄湁鏃跺欑伒媧諱嬌鐢ㄥ嵈涔熶細鏀跺埌寰堝鎰忔兂涓嶅埌鐨勬晥鏋滐紝姣斿錛?br>銆銆>>緹庡寲鐣岄潰錛氳璁′竴寮犲緢閰風殑緗戦〉鐢ㄨ繖涓帶浠舵樉紺哄嚭鏉ュ彲浠ュ鍔犵晫闈㈢殑緹庢劅
銆銆>>鎾斁闊充箰錛氬湪緗戦〉涓挱鏀鵑煶涔愶紙mid鎴杦av錛夛紝鍚屾椂鎶婃帶浠墮殣钘忚搗鏉ワ紝鍒欏彲浠ュ疄鐜扮▼搴忚儗鏅煶涔愮殑鎾斁銆傜ず渚媓tml鏂囦歡錛?br>銆銆<html>
銆銆<bgsound src="bksound.mid" loop="-1">
銆銆<body></body>
銆銆</html>
銆銆>>鎾斁瑙嗛錛氬彲浠ユ敮鎸乤sf鍜宮peg鏍煎紡
銆銆>>鏄劇ず鍥劇墖錛氬埄鐢╳eb嫻忚鍣ㄥ彲浠ョ畝鍗曞湴鏄劇ずgif銆乯peg銆乥mp絳夊浘鐗囥傜ず渚媓tml鏂囦歡
銆銆<html>
銆銆<body><img src="image.jpg"></body>
銆銆</html>
銆銆>>嫻忚doc鏂囨。銆?zmkey class=zoomino-searchword style="FONT-WEIGHT: bold; FLOAT: none; CURSOR: pointer; MARGIN-RIGHT: 3px; BORDER-BOTTOM: #ff6c00 2px dotted; cssFloat: none" offset="12" path="body > div:eq(0) > div:eq(3) > table:eq(2) > tbody:eq(0) > tr:eq(0) > td:eq(0) > div:eq(0) > #content:eq(0) > br:eq(18)" anchorType="previous" jQuery1247801028578="7">pdf鏂囦歡錛氬埄鐢ㄦ帶浠剁殑Navigate鎺ュ彛錛屽彲浠ユ祻瑙坵ord鏂囨。鍜宲df鏂囦歡錛屽彧瑕佺涓鍙傛暟濉笂鏂囦歡鐨勫叏璺緞鍚嶏紝鍚庨潰鐨勫弬鏁伴兘鍙互涓篘ULL
銆銆絎簩錛氭墦鍗?br>銆銆閫氳繃鎺т歡鐨凟xecWB鎺ュ彛鍙互灝嗘帶浠朵腑鏄劇ず鐨勫唴瀹規墦鍗板嚭鏉ワ紝騫朵笖鑳藉寰堢畝鍗曞湴瀹炵幇鎵撳嵃棰勮錛屽拰綰稿紶澶у皬璁劇疆銆?br>銆銆//m_WebBrowse涓烘帶浠跺搴旂殑鍙橀噺
銆銆m_WebBrowse.ExecWB(OLECMDID_PRINT,OLECMDEXECOPT_PROMPTUSER,NULL,NULL); //鎵撳嵃
銆銆//浣跨敤OLECMDEXECOPT_PROMPTUSER鍙傛暟鍒欐墦鍗頒箣鍓嶄細寮瑰嚭瀵硅瘽妗嗭紝璁╃敤鎴烽夋嫨鎵撳嵃鏈恒侀〉闈㈠竷灞絳夎緗紝浣?br>銆銆//鐢∣LECMDEXECOPT_DONTPROMPTUSER鍒欎笉浼氬脊鍑?br>銆銆m_ WebBrowse.ExecWB(OLECMDID_PRINTPREVIEW,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL); //鎵撳嵃棰勮
銆銆m_ WebBrowse.ExecWB(OLECMDID_PAGESETUP,OLECMDEXECOPT_PROMPTUSER,NULL,NULL); //綰稿紶灝哄璁劇疆
銆銆絎笁錛氭埅鑾鋒彁浜ょ殑鏁版嵁錛岃繘涓姝ヨ繕鍙互浣跨敤DHTML鏄劇ず鎻愪氦鐨勬暟鎹?br>銆銆瀹炵幇榪欎簺鍔熻兘涓昏閫氳繃淇敼鎺т歡瀵規秷鎭疊eforeNavigate2鐨勫鐞嗭紝鍘熷瀷濡備笅錛?br>銆銆OnBeforeNavigate2Explorer1( //璇ュ嚱鏁板湪HTML鐨勮繛鎺ュ墠璋冪敤
銆銆 LPDISPATCH pDisp,
銆銆 VARIANT FAR* URL, //鍑嗗嫻忚鐨刄RL錛屼慨鏀瑰畠鍙互瀹炵幇杞悜
銆銆 VARIANT FAR* Flags,
銆銆 VARIANT FAR* TargetFrameName,
銆銆 VARIANT FAR* PostData,
銆銆 VARIANT FAR* Headers,
銆銆 BOOL FAR* Cancel)//TRUE錛氬仠姝?FALSE錛氱戶緇?

Bluesea 2009-07-17 12:38 鍙戣〃璇勮
]]>
[MFC]CComboBox鍩烘湰鐢ㄦ硶http://m.shnenglu.com/finehai/archive/2009/07/16/90257.htmlBlueseaBlueseaThu, 16 Jul 2009 09:33:00 GMThttp://m.shnenglu.com/finehai/archive/2009/07/16/90257.htmlhttp://m.shnenglu.com/finehai/comments/90257.htmlhttp://m.shnenglu.com/finehai/archive/2009/07/16/90257.html#Feedback0http://m.shnenglu.com/finehai/comments/commentRss/90257.htmlhttp://m.shnenglu.com/finehai/services/trackbacks/90257.html浠ヤ笅浠g爜涓昏鎬葷粨浜嗗緇勫悎妗嗘坊鍔犱笅鎷夐夐」銆侀夋嫨鏌愪竴閫夐」鐨勫熀鏈簲鐢ㄣ?br>

   void CNewcomCosScriptView::DoDataExchange(CDataExchange* pDX)
{
    CFormView::DoDataExchange(pDX);
    DDX_Control(pDX, IDC_Card, m_card);
}


//娣誨姞ComboBox涓嬫媺閫夐」
//ComboBox灞炴ц緗腑鏈変釜sort閫夐」錛岃嫢涓篢rue鍒欐寜棣栧瓧姣嶉『搴忔坊鍔狅紝涓篎alse鍒欐瘡嬈℃坊鍔犲埌鍒楄〃鏈鍚?/span>
void CNewcomCosScriptView::OnCbnDropdownCard()
{
    m_card.ResetContent();

    m_card.AddString(
"SD");
    m_card.AddString(
"PCSC");
}


//閫夋嫨ComboBox閫夐」
void CNewcomCosScriptView::OnCbnSelchangeCard()
{
    UpdateData(FALSE);
    
    
int nCount = m_card.GetCount();                       //鑾峰彇ComboBox涓厓绱犱釜鏁?br>// int nTmp = m_card.SetCurSel(nCount - 1);       //璁劇疆褰撳墠閫夐」涓烘渶鍚庝竴涓厓绱?nbsp;   

    
//鑾峰彇ComboBox鐨勫綋鍓嶅?/span>
    int iPos = m_card.GetCurSel();                             //褰撳墠閫変腑鐨勫厓绱犵儲寮?/span>
    CString str;
    m_card.GetLBText(m_card.GetCurSel(),str);    
//褰撳墠閫変腑鐨勫瓧絎︿覆
    
    
char *pa = (char*)((LPCTSTR)str);

//涓夌鍒ゆ柇鍧囧彲錛?br>//    if(!strcmp(pa,"SD"))
//    if (str == "SD")
    if (iPos == 1){
        
    }

    
else if (iPos == 0){
        
    }

}

 



Bluesea 2009-07-16 17:33 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              久久狠狠一本精品综合网| 亚洲欧美大片| 欧美日精品一区视频| 久久综合久久美利坚合众国| 亚洲天堂av综合网| 日韩视频在线你懂得| 日韩亚洲在线观看| 99精品久久久| 宅男66日本亚洲欧美视频| 日韩一级黄色av| 在线亚洲自拍| 久久精品视频在线看| 久久午夜色播影院免费高清| 久久蜜桃精品| 欧美国产视频在线| 欧美日韩亚洲激情| 国产精品久久久久久久久久三级| 最新国产成人av网站网址麻豆 | 欧美超级免费视 在线| 久久久青草婷婷精品综合日韩| 久久一本综合频道| 欧美激情中文字幕在线| 99成人在线| 欧美亚洲视频在线观看| 看片网站欧美日韩| 欧美日韩成人一区| 国产综合精品一区| 亚洲精品一区二区三区樱花| 亚洲一区二区三区免费观看| 美女脱光内衣内裤视频久久影院| 9l国产精品久久久久麻豆| 欧美自拍丝袜亚洲| 欧美日韩在线一区二区三区| 在线看视频不卡| 亚洲综合欧美| 欧美激情亚洲另类| 亚洲女性喷水在线观看一区| 免费不卡在线观看av| 国产精品色网| 一本色道久久综合精品竹菊| 久久亚洲影院| 亚洲砖区区免费| 欧美日本免费一区二区三区| 黑人巨大精品欧美一区二区| 亚洲欧美日韩国产综合| 亚洲精品免费一区二区三区| 久久天堂成人| 国产欧美日韩综合一区在线观看| 亚洲成人自拍视频| 亚洲国产裸拍裸体视频在线观看乱了中文 | 久久久中精品2020中文| 99国内精品久久| 欧美91大片| 在线观看日韩av电影| 久久成人精品一区二区三区| 中文亚洲欧美| 欧美精品一区二区三区高清aⅴ| 一区国产精品| 久久在线91| 欧美永久精品| 国产精品网站在线观看| 亚洲性图久久| 亚洲精品乱码久久久久久| 欧美黑人在线播放| 久久裸体艺术| 樱花yy私人影院亚洲| 午夜亚洲性色福利视频| 一区二区三区国产在线观看| 米奇777在线欧美播放| 亚洲大片在线观看| 久久五月天婷婷| 久久久噜噜噜久噜久久| 国产欧美一区二区三区久久人妖| 亚洲男女毛片无遮挡| 日韩西西人体444www| 一区二区三区蜜桃网| 国产精品久99| 亚洲一级黄色av| 先锋亚洲精品| 国产日产欧美精品| 噜噜噜久久亚洲精品国产品小说| 亚洲欧美国产三级| 狠狠88综合久久久久综合网| 久久精品视频在线免费观看| 久久久久成人网| 一区二区在线观看视频在线观看| 欧美国产一区二区| 另类av一区二区| 中文国产一区| 中文在线资源观看视频网站免费不卡| 国产精品视频免费| 香蕉久久久久久久av网站| 久久久久国产精品人| 91久久精品网| 亚洲天堂久久| 国产三区二区一区久久| 欧美国产一区二区三区激情无套| 美女91精品| 国产老肥熟一区二区三区| 久久国产精品久久久| 亚洲免费观看| 精品成人免费| 欧美一区二区三区四区在线观看| 久久久久久穴| 亚洲精品少妇30p| 午夜伦欧美伦电影理论片| 国产综合自拍| 欧美亚洲在线播放| 国产亚洲毛片在线| 久久精品人人爽| 久久影院亚洲| 午夜在线a亚洲v天堂网2018| 欧美一区二区在线| 日韩一级精品视频在线观看| 亚洲一区三区视频在线观看| 国产亚洲欧美一区二区三区| 亚洲第一福利视频| 久久国产99| 亚洲精品综合在线| 久久精品在这里| 99视频在线观看一区三区| 久久精品五月| 日韩视频精品在线观看| 久久久久久久久久久久久9999| 99精品久久免费看蜜臀剧情介绍| 久久激情一区| 亚洲亚洲精品三区日韩精品在线视频| 蜜桃伊人久久| 久久国产精彩视频| 国产精品综合| 亚洲精品网站在线播放gif| 亚洲福利免费| 亚洲视频图片小说| 亚洲视频在线观看| 久久在线免费观看| 久久综合国产精品| 国产精品久久久久久久久果冻传媒 | 国产精品视频yy9099| 日韩亚洲欧美中文三级| 狠狠久久婷婷| 久久久福利视频| 先锋影音久久久| 国产精品无码专区在线观看| 亚洲精品自在久久| 亚洲少妇诱惑| 欧美精品在线播放| 亚洲精品国产精品乱码不99 | 男女视频一区二区| 国产精品日韩欧美大师| 中文国产成人精品| 亚洲免费精彩视频| 免费久久精品视频| 美日韩免费视频| 国产精品九九久久久久久久| 一本色道久久综合| aa国产精品| 欧美理论大片| 亚洲激情影视| 亚洲欧洲日产国产网站| 美脚丝袜一区二区三区在线观看| 亚洲第一在线综合网站| 亚洲国产精品黑人久久久| 免费人成精品欧美精品| 欧美电影免费观看高清完整版| 亚洲精品乱码| 欧美精品色网| 欧美一区二区网站| 性做久久久久久久免费看| 亚洲一区二区网站| 欧美亚男人的天堂| 99视频一区| 久久婷婷丁香| 欧美日韩免费在线观看| 亚洲一区二区不卡免费| 亚洲欧美一级二级三级| 国产日本欧美在线观看| 久久综合色综合88| 亚洲国产高清aⅴ视频| 亚洲免费在线看| 国产日韩欧美一区在线 | 久久亚洲春色中文字幕| 欧美大片免费观看在线观看网站推荐| 亚洲国产专区| 国产精品一页| 午夜精品久久久久久久久| 欧美激情综合| 亚洲天堂av在线免费观看| 精品91免费| 欧美日本亚洲| 久久午夜电影网| 亚洲久久在线| 欧美成人一二三| 一区二区三区 在线观看视频| 狠狠狠色丁香婷婷综合激情| 欧美精品一区二区久久婷婷| 久久久久国色av免费看影院| 你懂的国产精品永久在线| 亚洲综合99| 最新成人在线| 国产精品亚洲综合天堂夜夜|