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

kenlistian

厚積薄發(fā). 勤為槳,思為帆

   :: 首頁(yè) :: 新隨筆 ::  :: 聚合  :: 管理 ::
  73 隨筆 :: 4 文章 :: 22 評(píng)論 :: 0 Trackbacks

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

對(duì)于采用GetLine()調(diào)用,其函數(shù)說(shuō)明有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;//想要獲取的行號(hào)
   nLineNum=0;
   m_ctlEditTest.GetLine(nLineNum,str);

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

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

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.

所以,上面的代碼段得用一個(gè)值取得實(shí)際長(zhǎng)度,把多余的截取掉,但我在用getline1時(shí)老是返回0,不知道為何?不過(guò)改成getline2,指定copy9個(gè)字節(jié)時(shí),同時(shí)對(duì)第10個(gè)字節(jié)設(shè)置為null則正常返回,沒(méi)有亂碼的出現(xiàn)。如下

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

  str[10] = '\0'; 

即可。

。。。。。。。

在cedit中還有個(gè)linelength函數(shù),

int LineLength(
   int nLine = -1 
) const;

該函數(shù)是應(yīng)該返回指定行的長(zhǎng)度,但是如果不仔細(xì)看msdn的說(shuō)明,很容易誤解nLine是指cedit行中的某一行行數(shù)而代入其中,并得到錯(cuò)誤的結(jié)論。

而在msdn中,nLine的說(shuō)明是:

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.

就是說(shuō)nLine是字符串的字符索引,在多行情況下所以它必須通過(guò)LineIndex函數(shù)來(lái)獲取。在msdn中如下描述,

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

而LineIndex函數(shù)說(shuō)明如下:

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中的某一行列。也就是我們通過(guò)getlinecount()獲取到cedit的行數(shù)后,在到每一行中去找一個(gè)character index,再才能確定一行的長(zhǎng)度。

有時(shí),覺(jué)得mfc是不是有點(diǎn)對(duì)個(gè)簡(jiǎn)單的問(wèn)題把彎子繞得太遠(yuǎn)了點(diǎn)吧。

。。。。

下面摘抄另一種解決方案,采用CString方式來(lái)copy一行的長(zhǎng)度,我在自己機(jī)子測(cè)試過(guò),通過(guò)GetLine函數(shù)1沒(méi)有通過(guò),返回的是個(gè)空串,而采用GetLine2指定返回一個(gè)最大長(zhǎng)度時(shí),卻能copy回所要的數(shù)據(jù),不過(guò)當(dāng)采用最大長(zhǎng)度時(shí),由于拷貝回來(lái)的是一個(gè)不帶null終結(jié)符的串,則存在亂碼。由于工作時(shí)間緊張,問(wèn)題只能采用指定大小的char串處理,但是采用CString串如果不指定大小的方法做一個(gè)mark。下列代碼供測(cè)試參考。

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

。。。。。。

總而言之,感覺(jué)vc中mfc太過(guò)于細(xì)節(jié),莫免麻煩。但是感覺(jué)經(jīng)歷過(guò)一次后,就不再是磕腳的石頭,而是心態(tài)的放心。也許,這是心理作用而已。

posted on 2008-02-15 21:17 kenlistian 閱讀(5524) 評(píng)論(0)  編輯 收藏 引用

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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| 嫩模写真一区二区三区三州| 欧美一二三区精品| 欧美激情亚洲视频| 麻豆精品在线观看| 国产在线精品成人一区二区三区 | 性色av一区二区三区| 中文一区字幕| 欧美精品一区二区精品网| 老司机久久99久久精品播放免费| 国产精品视频午夜| 一本久久a久久精品亚洲| 亚洲免费大片| 乱人伦精品视频在线观看| 久久久久久久尹人综合网亚洲| 欧美性片在线观看| 99精品热视频| 在线综合亚洲欧美在线视频| 欧美精品七区| 99re6这里只有精品| 99精品视频免费全部在线| 欧美国产免费| 最新高清无码专区| 亚洲免费观看在线观看| 欧美a级片网站| 亚洲人成网站影音先锋播放| 亚洲三级电影全部在线观看高清| 久久亚洲春色中文字幕| 免费亚洲网站| 亚洲美女淫视频| 欧美日韩黄色大片| 亚洲色无码播放| 欧美一区二区三区久久精品茉莉花| 国产精品日本| 亚洲欧美影院| 久久免费99精品久久久久久| 精品二区视频| 欧美+亚洲+精品+三区| 91久久精品国产91久久性色| 日韩午夜中文字幕| 国产精品电影在线观看| 午夜精品久久久久99热蜜桃导演| 久久成人人人人精品欧| 一区二区亚洲精品国产| 欧美成人午夜免费视在线看片| 亚洲品质自拍| 欧美亚洲视频在线看网址| 国产日韩欧美电影在线观看| 久久性天堂网| 一区二区欧美亚洲| 久久亚洲视频| 日韩午夜剧场| 国产日韩欧美二区| 免费观看成人| 宅男噜噜噜66国产日韩在线观看| 久久精品国产精品亚洲综合| 亚洲国产成人久久综合一区| 欧美日韩中文字幕在线视频| 性欧美激情精品| 亚洲国产欧美一区| 性色av香蕉一区二区| 亚洲电影免费观看高清完整版在线观看 | 亚洲欧美日韩国产一区二区三区 | 99人久久精品视频最新地址| 久久精品99国产精品日本| 亚洲人成毛片在线播放| 国产精品男人爽免费视频1 | 亚洲综合国产激情另类一区| 久久综合色播五月| 亚洲一区二区三区在线播放| 黄色成人免费观看| 欧美午夜精品理论片a级大开眼界| 香蕉成人伊视频在线观看| 亚洲国产99精品国自产| 欧美中文字幕视频| 在线视频中文亚洲| 亚洲激情网站| 国产偷国产偷亚洲高清97cao| 欧美精品一区二区精品网| 久久精品亚洲一区二区三区浴池| 亚洲午夜极品| 亚洲人www| 欧美国产另类| 狼人天天伊人久久| 欧美专区亚洲专区| 亚洲在线一区二区| 日韩一级网站| 亚洲国产日韩一区| 国精品一区二区三区| 国产精品久久久久久久免费软件| 欧美电影电视剧在线观看| 久久精品国产免费| 欧美制服第一页| 亚洲欧美国产日韩天堂区| 日韩亚洲欧美一区二区三区| 亚洲人成毛片在线播放| 欧美激情一区二区三区不卡| 麻豆精品精华液| 另类国产ts人妖高潮视频| 欧美专区亚洲专区| 久久福利毛片| 久久爱91午夜羞羞| 久久激五月天综合精品| 欧美一区二区三区在线免费观看| 亚洲欧美一区二区三区久久| 亚洲一级电影| 亚洲一区二区三区乱码aⅴ蜜桃女| 日韩一区二区精品视频| 亚洲六月丁香色婷婷综合久久| 亚洲激情av| 日韩视频一区二区三区| 日韩视频一区二区三区在线播放免费观看 | 在线一区二区三区做爰视频网站 | 麻豆免费精品视频| 美女视频网站黄色亚洲| 美女久久网站| 欧美韩日亚洲| 欧美日韩一区二区视频在线| 国产精品久久久久久久久久久久| 国产精品午夜国产小视频| 国产精品制服诱惑| 国产精品专区h在线观看| 国产精品有限公司| 精品二区视频| 日韩视频二区| 午夜久久久久久| 久久久精品动漫| 欧美大胆成人| 99re在线精品| 香蕉成人久久| 欧美成人第一页| 欧美视频一区二区在线观看| 国产日韩欧美中文| 亚洲国产精品久久人人爱蜜臀| 亚洲精选国产| 午夜精品婷婷| 欧美成人综合网站| 中日韩午夜理伦电影免费| 午夜精品影院| 欧美国产一区视频在线观看 | 国产亚洲欧美另类中文| 在线观看日韩| 亚洲午夜一区二区| 久久久欧美精品| 亚洲精品美女91| 亚洲欧美日韩视频一区| 久久综合久色欧美综合狠狠| 欧美视频日韩视频| 亚洲国产cao| 99riav久久精品riav| 久久精品国产99精品国产亚洲性色 | 亚洲午夜电影| 美玉足脚交一区二区三区图片| 亚洲每日更新| 久久手机精品视频| 国产精品嫩草久久久久| 亚洲激情视频在线播放| 欧美综合77777色婷婷| 亚洲欧洲一区二区三区在线观看 | 麻豆精品在线播放| 国产精品一区二区男女羞羞无遮挡| 亚洲高清精品中出| 欧美影院视频| 一本色道久久综合狠狠躁的推荐| 久久久精品免费视频| 国产精品日本精品| 一本色道久久加勒比88综合| 免费视频久久| 久久大香伊蕉在人线观看热2| 国产精品久久| 一级成人国产| 亚洲国产精品久久久久秋霞蜜臀 | 欧美午夜a级限制福利片| 在线观看日韩| 久久深夜福利免费观看| 亚洲一区二区三区在线播放| 欧美精品系列| 亚洲精品日韩在线观看| 免费黄网站欧美| 欧美在线啊v| 国内精品久久久久久| 欧美一区二区三区在线看| 国产精品99久久久久久久vr | 亚洲精品一区二区三区在线观看 | 欧美在线资源| 亚洲欧美日韩国产综合精品二区| 欧美日韩视频专区在线播放| 亚洲看片一区| 免费欧美视频| 一区二区高清在线| 欧美激情一区二区三区在线视频观看 | 亚洲视频国产视频| 亚洲欧洲日韩女同| 欧美激情一二三区| 日韩午夜在线播放| 99av国产精品欲麻豆| 欧美日韩专区在线| 亚洲一区二区在线| 亚洲网站视频福利|