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

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>
            99re6热只有精品免费观看| 欧美日韩在线一区| 精品91久久久久| 久久午夜电影网| 免费在线观看精品| 99在线精品视频| 亚洲午夜91| 韩曰欧美视频免费观看| 欧美福利视频在线| 欧美日韩亚洲高清一区二区| 亚洲一区二区三区免费在线观看 | 久久成人在线| 久久久久亚洲综合| 在线午夜精品| 欧美中文在线字幕| 9国产精品视频| 亚洲欧美在线高清| 亚洲国产精品va在线看黑人动漫| 亚洲国产老妈| 国产精品成人在线观看| 久久精品女人天堂| 欧美国产日韩在线| 久久国产精品久久久久久| 欧美gay视频激情| 亚洲欧美一区二区三区在线| 久久婷婷影院| 午夜精品999| 欧美二区视频| 久久精品视频免费播放| 欧美激情综合亚洲一二区| 久久久久九九九九| 欧美视频在线观看免费| 欧美成人精品h版在线观看| 国产精品大片免费观看| 男男成人高潮片免费网站| 欧美视频一区二区三区| 欧美激情一级片一区二区| 国产精品揄拍500视频| 亚洲日产国产精品| 在线免费观看日本一区| 亚洲欧美日韩直播| 亚洲小少妇裸体bbw| 免费日韩精品中文字幕视频在线| 久久超碰97人人做人人爱| 欧美日本韩国在线| 欧美高清在线观看| 永久域名在线精品| 午夜日韩在线| 欧美一区午夜精品| 欧美视频免费在线观看| 亚洲青涩在线| 日韩视频永久免费| 久久综合网络一区二区| 久久久另类综合| 国产日韩欧美精品在线| 亚洲免费一在线| 亚洲欧美综合另类中字| 欧美特黄一级大片| 99国产精品99久久久久久| 日韩视频欧美视频| 欧美日韩国产欧| 亚洲三级色网| 中文在线资源观看视频网站免费不卡| 免费在线看成人av| 亚洲国产精品电影| 99精品国产在热久久| 欧美激情在线有限公司| 亚洲欧洲久久| 国产精品99久久久久久久久久久久| 欧美国产免费| 亚洲肉体裸体xxxx137| 一区二区精品在线| 国产精品福利网| 亚洲一区二区三区欧美| 欧美制服丝袜第一页| 国产一区二区主播在线| 久久久久国产精品厨房| 欧美福利在线| 一区二区三区精品视频| 国产精品久久久久久久久久三级| 亚洲欧美第一页| 麻豆精品一区二区av白丝在线| 亚洲电影观看| 欧美日韩亚洲系列| 午夜一区在线| 欧美激情精品久久久久久免费印度| 亚洲精品一线二线三线无人区| 欧美精品黄色| 欧美在线视频全部完| 欧美激情视频在线免费观看 欧美视频免费一 | 日韩视频在线一区| 久久福利影视| 亚洲三级网站| 国产精品性做久久久久久| 久久亚洲午夜电影| 一区二区三区四区精品| 久久久精品国产一区二区三区 | 亚洲欧美日韩精品在线| 精品va天堂亚洲国产| 欧美久久久久久久| 性欧美video另类hd性玩具| 亚洲大胆在线| 欧美在线免费视频| 日韩一级片网址| 国产日韩亚洲欧美精品| 欧美激情一区二区三级高清视频| 亚洲香蕉成视频在线观看| 欧美不卡在线视频| 欧美一区亚洲二区| 一区二区三区四区国产精品| 国产自产v一区二区三区c| 欧美日韩国产在线| 久久综合九色99| 亚洲一区二区3| 亚洲精品无人区| 欧美大色视频| 久久久久久久久久久久久女国产乱| 一区二区欧美激情| 亚洲国产视频一区| 国产在线视频不卡二| 国产精品捆绑调教| 欧美精品一区二区三区在线播放| 久久久久久有精品国产| 午夜精品一区二区三区在线| 9l视频自拍蝌蚪9l视频成人 | 亚洲视频中文字幕| 日韩一级精品| 亚洲伦理在线| 亚洲国内精品在线| 在线看视频不卡| 狠狠色综合网站久久久久久久| 国产精品社区| 国产精品久久久久9999| 欧美日韩免费观看一区| 欧美激情一二区| 欧美久久久久中文字幕| 欧美国产一区视频在线观看| 免费av成人在线| 欧美freesex交免费视频| 欧美α欧美αv大片| 久久综合九色综合久99| 久久人人爽人人爽爽久久| 久久蜜桃精品| 麻豆国产精品va在线观看不卡| 久久网站免费| 欧美韩国一区| 欧美日韩八区| 国产精品www网站| 国产欧美精品日韩精品| 国产日韩欧美三区| 一区二区在线看| 亚洲级视频在线观看免费1级| 亚洲第一网站免费视频| 日韩一级网站| 亚洲欧美在线一区二区| 久久精品综合一区| 欧美成人自拍| 99国产精品99久久久久久粉嫩| 一本色道久久综合亚洲91| 亚洲欧美国产高清| 久久福利一区| 欧美大片免费观看在线观看网站推荐 | 久久久美女艺术照精彩视频福利播放| 久久久精品久久久久| 欧美国产日韩免费| 99re热这里只有精品视频| 亚洲自拍啪啪| 久久夜色精品国产欧美乱极品| 欧美激情成人在线视频| 国产精品久久夜| 伊人久久大香线蕉av超碰演员| 亚洲黑丝在线| 欧美一区二区观看视频| 欧美大片在线观看| 亚洲图中文字幕| 久久午夜色播影院免费高清| 欧美日韩亚洲高清| 影音先锋久久久| 亚洲性视频h| 欧美成人免费视频| 亚洲免费在线视频| 欧美国产91| 黄色日韩网站| 亚洲一区二区三区中文字幕在线| 久久久精品国产免大香伊 | 久久精品国产欧美激情| 亚洲成人在线网站| 午夜在线一区| 欧美日韩三级电影在线| 一区二区三区在线免费观看| 一本久道久久综合婷婷鲸鱼| 久久久久综合网| 国产精品99久久久久久久vr| 久久亚洲色图| 国产亚洲一区二区在线观看 | 亚洲欧美日韩在线一区| 亚洲国产高清在线观看视频| 欧美一区二区三区久久精品茉莉花 | 欧美激情第1页| 久久久精品国产99久久精品芒果|