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

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 閱讀(5513) 評(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| 亚洲第一黄网| 日韩视频免费在线观看| 中文在线资源观看视频网站免费不卡| 中文欧美日韩| 久久精品午夜| 欧美96在线丨欧| 欧美激情久久久| 欧美三区免费完整视频在线观看| 欧美激情国产高清| 国产日韩亚洲| 在线观看一区| 亚洲理论电影网| 亚洲人成在线观看| 99国产精品视频免费观看一公开| 亚洲精品自在久久| 一本色道久久综合一区| 在线一区二区三区做爰视频网站| 在线综合亚洲欧美在线视频| 亚洲欧美另类在线观看| 欧美一区二区免费| 久久久水蜜桃| 亚洲第一区在线观看| 日韩视频在线观看| 午夜精品福利在线观看| 久久免费99精品久久久久久| 欧美久久精品午夜青青大伊人| 国产精品白丝av嫩草影院| 国产最新精品精品你懂的| 亚洲全部视频| 欧美一区二区成人6969| 欧美成人嫩草网站| 一区二区三区 在线观看视频| 午夜欧美电影在线观看| 欧美成人免费观看| 国产精品一区免费视频| 亚洲国产天堂久久综合| 亚洲欧美一级二级三级| 欧美成人免费全部| 亚洲无线观看| 免费日韩av| 国产欧美日韩亚洲一区二区三区| 亚洲电影av| 在线观看亚洲a| 亚洲日本一区二区| 9久re热视频在线精品| 亚洲一区观看| 亚洲女女做受ⅹxx高潮| 久久av二区| 久久永久免费| 久久久久久久一区二区| 国产欧美一区二区精品忘忧草 | 欧美理论电影在线播放| 国产视频一区免费看| 亚洲私人影吧| 亚洲大胆人体视频| 欧美一区1区三区3区公司| 欧美精品久久久久久久| 狠狠色综合色综合网络| 中文国产亚洲喷潮| 亚洲国产精品成人| 久久九九久久九九| 国产日韩亚洲欧美精品| 亚洲欧美久久久久一区二区三区| 亚洲国产综合91精品麻豆| 欧美一区二区私人影院日本 | 国产日韩专区| 亚洲专区一区| 日韩视频中文字幕| 欧美成人免费大片| 亚洲国产欧美一区| 美国成人毛片| 久久婷婷国产麻豆91天堂| 国模精品一区二区三区| 欧美一区二区视频在线观看2020| 夜夜嗨av一区二区三区四区| 久久精品一区蜜桃臀影院| 欧美日韩一区二区三区在线视频| 激情小说亚洲一区| 日韩视频三区| 欧美激情网站在线观看| 狂野欧美激情性xxxx欧美| 精品动漫3d一区二区三区免费版| 久久av免费一区| 欧美一级网站| 樱桃视频在线观看一区| 免费亚洲一区| 欧美巨乳在线| 亚洲午夜未删减在线观看| 亚洲一区二区三区在线看 | 欧美国产欧美亚州国产日韩mv天天看完整| 久久成人这里只有精品| 激情av一区| 亚洲第一福利在线观看| 欧美经典一区二区三区| 亚洲视频一区在线| 亚洲淫性视频| 精品51国产黑色丝袜高跟鞋| 欧美国产欧美亚洲国产日韩mv天天看完整| 欧美国产日韩一区| 亚洲一区尤物| 久久精品一本| 亚洲私人影吧| 久久精品国产久精国产一老狼| 久久精品在线免费观看| 免费在线观看精品| 久久久久一区二区| 国产欧美日韩综合一区在线播放| 亚洲国产毛片完整版 | 午夜欧美大片免费观看| 在线观看欧美激情| 日韩午夜电影在线观看| 国产亚洲亚洲| 亚洲精品国产欧美| 国产日韩精品久久| 亚洲大片在线| 国产一区二区三区四区在线观看 | 国产精品久久久久久久久搜平片| 久久成人国产精品| 欧美福利视频网站| 欧美永久精品| 欧美区国产区| 免费人成网站在线观看欧美高清| 欧美日韩中文字幕在线| 欧美电影美腿模特1979在线看| 国产精品久久久久久av下载红粉 | 蜜臀av一级做a爰片久久| 欧美另类一区二区三区| 久久在线免费观看视频| 国产精品啊v在线| 亚洲三级毛片| 亚洲盗摄视频| 欧美专区日韩专区| 午夜天堂精品久久久久| 欧美激情成人在线| 快射av在线播放一区| 国产免费成人av| 一区二区欧美日韩| 在线视频欧美精品| 欧美激情国产日韩精品一区18| 免费成人美女女| 国产一区二区无遮挡| 亚洲自拍偷拍网址| 亚洲综合日韩中文字幕v在线| 欧美高潮视频| 91久久精品国产91久久| 91久久精品美女高潮| 久久综合九色99| 欧美+亚洲+精品+三区| 国内精品视频在线观看| 亚洲免费观看高清完整版在线观看熊| 国产精品美女久久久久久久| 亚洲精品国精品久久99热一| 亚洲精品自在在线观看| 亚洲一级高清| 亚洲精品久久| 久久激情五月婷婷| 久久夜色精品一区| 黄色av成人| 久久综合网络一区二区| 欧美www在线| 亚洲第一中文字幕| 欧美激情导航| 一区二区三区四区精品| 亚洲欧美国产高清| 欧美一级播放| 欧美freesex交免费视频| 欧美成人xxx| 亚洲视频一二| 国产精品无码永久免费888| 亚洲免费在线观看| 亚洲第一区在线| 中文久久精品| 亚洲影院色无极综合| 免费av成人在线| aa成人免费视频| 韩国美女久久| 欧美电影打屁股sp| 一本大道久久a久久精品综合| 久久阴道视频| 一本色道精品久久一区二区三区| 国产视频一区在线| 欧美黑人多人双交| 亚洲一区二区久久| 亚洲狼人综合| 久久精品91| 亚洲欧美在线一区| 亚洲国产欧美日韩| 国产精品久久久久久久久久免费看 | 久久爱另类一区二区小说| 日韩一区二区高清| 久久综合婷婷|