青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

kenlistian

厚積薄發. 勤為槳,思為帆

   :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理 ::
  73 隨筆 :: 4 文章 :: 22 評論 :: 0 Trackbacks

    MFC中CEdit多行情況下,調用GetLine()時,發現老是后面跟有亂碼。即使你把str初始化也是如此。

對于采用GetLine()調用,其函數說明有2種。

1.int GetLine(
   int nIndex,
   LPTSTR lpszBuffer 
) const;
2.int GetLine(
   int nIndex,
   LPTSTR lpszBuffer,
   int nMaxLength 
) const;

  代碼如下:

   char str[10] = {'\0'};
   int nLineNum;//想要獲取的行號
   nLineNum=0;
   m_ctlEditTest.GetLine(nLineNum,str);

Remarks : The copied line does not contain a null-termination character.

看了下msdn,一句話說得很明白,getline做了copy后是不給你加null結束符的。因此需要自己在定義的char字符串末尾添加。而一次實際上會copy回多少個字節。則在該函數的說明中,在msdn中清晰表達為:

Return Value

  The number of bytes actually copied. The return value is 0 if the line number specified by nIndex is greater than the number of lines in the edit control.

所以,上面的代碼段得用一個值取得實際長度,把多余的截取掉,但我在用getline1時老是返回0,不知道為何?不過改成getline2,指定copy9個字節時,同時對第10個字節設置為null則正常返回,沒有亂碼的出現。如下

  int iLen =  m_ctlEditTest.GetLine(nLineNum,str, 9);

  str[10] = '\0'; 

即可。

。。。。。。。

在cedit中還有個linelength函數,

int LineLength(
   int nLine = -1 
) const;

該函數是應該返回指定行的長度,但是如果不仔細看msdn的說明,很容易誤解nLine是指cedit行中的某一行行數而代入其中,并得到錯誤的結論。

而在msdn中,nLine的說明是:

nLine

Specifies the character index of a character in the line whose length is to be retrieved. If this parameter is –1, the length of the current line (the line that contains the caret) is returned, not including the length of any selected text within the line. When LineLength is called for a single-line edit control, this parameter is ignored.

就是說nLine是字符串的字符索引,在多行情況下所以它必須通過LineIndex函數來獲取。在msdn中如下描述,

   Use the LineIndex member function to retrieve a character index for a given line number within a multiple-line edit control.

而LineIndex函數說明如下:

all this function to retrieve the character index of a line within a multiple-line edit control.

int LineIndex(
   int nLine = -1 
) const;

nLine

Contains the index value for the desired line in the text of the edit control, or contains –1. If nLine is –1, it specifies the current line, that is, the line that contains the caret.

該nLine才是真正的CEdit中的某一行列。也就是我們通過getlinecount()獲取到cedit的行數后,在到每一行中去找一個character index,再才能確定一行的長度。

有時,覺得mfc是不是有點對個簡單的問題把彎子繞得太遠了點吧。

。。。。

下面摘抄另一種解決方案,采用CString方式來copy一行的長度,我在自己機子測試過,通過GetLine函數1沒有通過,返回的是個空串,而采用GetLine2指定返回一個最大長度時,卻能copy回所要的數據,不過當采用最大長度時,由于拷貝回來的是一個不帶null終結符的串,則存在亂碼。由于工作時間緊張,問題只能采用指定大小的char串處理,但是采用CString串如果不指定大小的方法做一個mark。下列代碼供測試參考。

CString strTemp;
int nLineNum;
nLineNum=0;
m_ctlEditTest.GetLine(nLineNum,strTemp.GetBufferSetLength(m_ctlEditTest.LineLength(m_ctlEditTest.LineIndex(nLineNum))));
strTemp.ReleaseBuffer();

。。。。。。

總而言之,感覺vc中mfc太過于細節,莫免麻煩。但是感覺經歷過一次后,就不再是磕腳的石頭,而是心態的放心。也許,這是心理作用而已。

posted on 2008-02-15 21:17 kenlistian 閱讀(5513) 評論(0)  編輯 收藏 引用
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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成人在线| 亚洲一区视频在线| 久久九九免费视频| 国语自产精品视频在线看8查询8 | 欧美综合国产| 国内成人精品视频| 巨乳诱惑日韩免费av| 久久精品色图| 在线观看中文字幕不卡| 欧美成人免费一级人片100| 免费人成网站在线观看欧美高清 | 欧美成人日韩| 亚洲最快最全在线视频| 一区二区三区高清视频在线观看| 欧美午夜不卡| 久久精品官网| 美女国产精品| 亚洲神马久久| 午夜精品成人在线视频| 伊人蜜桃色噜噜激情综合| 亚洲高清不卡一区| 欧美成人按摩| 亚洲永久免费视频| 久久精品一级爱片| 日韩午夜av在线| 亚洲制服av| 亚洲肉体裸体xxxx137| 国产精品99久久99久久久二8| 国内外成人免费激情在线视频网站| 老司机精品久久| 欧美日韩精品欧美日韩精品一| 香蕉久久夜色精品国产使用方法| 久久久青草婷婷精品综合日韩 | 欧美二区不卡| 午夜精品一区二区在线观看 | 国产美女扒开尿口久久久| 男人天堂欧美日韩| 国产精品xxxxx| 噜噜噜91成人网| 欧美午夜不卡影院在线观看完整版免费| 亚洲欧美中文日韩在线| 美日韩精品免费观看视频| 午夜一区二区三视频在线观看| 麻豆精品视频在线观看| 欧美主播一区二区三区| 欧美国产日韩精品| 男女激情视频一区| 国产欧美一区二区精品仙草咪| 亚洲福利在线看| 极品少妇一区二区三区| 亚洲色图在线视频| 日韩一级视频免费观看在线| 久久久精品一区二区三区| 午夜视频在线观看一区| 欧美日韩免费区域视频在线观看| 麻豆久久精品| 激情亚洲网站| 久久精品官网| 久久精品国亚洲| 国产精品久久久久久模特| 亚洲欧洲日本国产| 亚洲高清资源| 久久人人爽人人爽| 久久理论片午夜琪琪电影网| 国产精品一区久久久久| 一区二区三区成人精品| 亚洲午夜精品| 欧美午夜免费| 一区二区三区产品免费精品久久75| 亚洲毛片网站| 欧美片第1页综合| 亚洲人成免费| 夜久久久久久| 欧美日韩国产成人精品| 日韩视频在线免费观看| 一二三区精品福利视频| 欧美日韩在线播放三区四区| 亚洲三级影片| 亚洲综合成人在线| 国产精品天天摸av网| 午夜亚洲福利在线老司机| 欧美资源在线观看| 国产综合av| 久久综合给合久久狠狠色| 免费人成网站在线观看欧美高清| 亚洲国产精品久久久久秋霞影院| 欧美超级免费视 在线| 亚洲日本一区二区| 亚洲一区在线视频| 国产精一区二区三区| 香蕉免费一区二区三区在线观看| 久久综合久色欧美综合狠狠 | 欧美激情影院| 亚洲视频在线观看视频| 久久精品在线播放| 亚洲高清123| 国产精品v欧美精品v日韩| 欧美一区二区三区四区夜夜大片| 猛干欧美女孩| 国产精品99久久99久久久二8| 亚洲二区免费| 亚洲私人影院| 国产一区二区三区在线播放免费观看| 老司机亚洲精品| 一区二区电影免费观看| 久久这里有精品15一区二区三区| 日韩一区二区精品视频| 国产精品亚洲欧美| 欧美xxxx在线观看| 亚洲一区日本| 亚洲福利国产| 欧美中文字幕精品| 亚洲精品中文字幕有码专区| 国产精品美女主播在线观看纯欲| 老鸭窝毛片一区二区三区| 一区二区三区国产在线| 免费观看亚洲视频大全| 亚洲欧美久久久| 亚洲欧洲一区二区三区| 亚洲国产成人av好男人在线观看| 国产精品视频一二三| 久久久久久色| 亚洲无线一线二线三线区别av| 久久资源在线| 欧美在线视频导航| 一区二区三区**美女毛片| 一区二区三区在线免费观看| 国产精品久久久久77777| 欧美v国产在线一区二区三区| 亚洲一区二区三| 91久久视频| 久久中文久久字幕| 久久久91精品国产| 亚洲一区二区三区精品在线观看 | 亚洲视频大全| 亚洲人成人99网站| 蜜臀91精品一区二区三区| 午夜亚洲激情| av不卡在线| 在线观看欧美视频| 在线观看av一区| 国模精品一区二区三区| 国产精品一级| 国产精品美女一区二区在线观看| 欧美美女福利视频| 欧美岛国激情| 欧美日韩免费观看一区| 欧美激情2020午夜免费观看| 久久欧美中文字幕| 久久久夜色精品亚洲| 久久久99精品免费观看不卡| 亚洲欧美怡红院| 亚洲一级二级| 亚洲欧美日韩国产一区| 亚洲——在线| 午夜精品亚洲一区二区三区嫩草| 午夜欧美精品| 欧美中日韩免费视频| 香蕉久久一区二区不卡无毒影院 | 久久一区国产| 久久五月激情| 欧美黄色成人网| 亚洲人成在线观看| 91久久在线观看| 亚洲欧洲日韩综合二区| 夜夜爽99久久国产综合精品女不卡| 亚洲精品国产拍免费91在线| 亚洲美女中文字幕| 亚洲视频在线播放| 亚欧成人在线| 久久精彩视频| 欧美高清视频在线播放| 欧美三日本三级少妇三2023| 国产精品一二三| 精品69视频一区二区三区| 亚洲精品美女91| 亚洲午夜精品一区二区三区他趣| 欧美一区影院| 欧美成人午夜激情视频| 亚洲日本在线观看| 午夜久久久久久| 久久午夜av| 欧美性理论片在线观看片免费| 国产精品永久免费观看| 在线日本成人| 亚洲欧美日韩第一区 | 亚洲精品在线视频| 亚洲欧美日韩在线观看a三区| 久久精品国产99国产精品| 老牛国产精品一区的观看方式| 久久人人爽爽爽人久久久| 亚洲精品国精品久久99热一| 亚洲欧美国产精品va在线观看 | 亚洲国产乱码最新视频| 午夜在线精品| 欧美日韩亚洲一区二区| 狠狠综合久久| 亚洲图片欧洲图片日韩av| 久久九九热re6这里有精品| 99国产精品久久久久久久成人热|