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

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>
            亚洲在线免费观看| 亚洲天堂免费观看| 免费亚洲网站| 亚洲精选成人| 这里只有精品电影| 国产精品网站在线| 快she精品国产999| 欧美精品一区二区三区在线播放| 日韩午夜免费视频| 亚洲永久精品大片| 在线欧美福利| 这里只有精品视频| 黑丝一区二区三区| 亚洲精品综合久久中文字幕| 国产乱码精品一区二区三区忘忧草| 欧美自拍偷拍| 欧美成人性生活| 亚洲欧美日本伦理| 久久米奇亚洲| 亚洲影视综合| 麻豆成人av| 欧美一级淫片aaaaaaa视频| 久久久av网站| 亚洲欧美制服中文字幕| 两个人的视频www国产精品| 亚洲伊人久久综合| 免费观看成人| 久久精品91久久久久久再现| 欧美大片免费观看| 久久婷婷麻豆| 国产精品蜜臀在线观看| 亚洲二区精品| 国产欧美一区二区三区在线老狼| 欧美国产亚洲精品久久久8v| 国产精品视频男人的天堂| 欧美高清不卡在线| 国产一区日韩一区| 亚洲视频二区| 亚洲最新在线| 美女视频黄a大片欧美| 欧美在线一二三区| 欧美性大战久久久久久久蜜臀| 欧美国产一区二区| 精品动漫一区| 性欧美暴力猛交另类hd| 亚洲欧美日韩区| 欧美激情精品久久久| 欧美r片在线| 精品白丝av| 欧美资源在线| 久久久久一区二区| 国产亚洲毛片| 欧美一区二区性| 久久精品国产99国产精品澳门| 欧美视频一区二区三区在线观看| 亚洲黄色三级| 99精品视频免费观看| 牛牛精品成人免费视频| 欧美高清日韩| 亚洲区中文字幕| 欧美不卡一区| 亚洲精品国产日韩| 中国亚洲黄色| 欧美午夜精品久久久久免费视| 亚洲精品日韩激情在线电影| 一区二区三区 在线观看视| 欧美黑人多人双交| 9人人澡人人爽人人精品| 亚洲视频在线观看网站| 国产精品久久久久久久9999| 亚洲一区欧美| 久久久久久有精品国产| 影院欧美亚洲| 欧美国产日韩精品| 亚洲毛片一区二区| 欧美一区二区三区在线观看视频| 国产精品永久在线| 久久久久成人精品| 亚洲国产精品热久久| 亚洲视频在线观看三级| 国产伦精品一区二区三区在线观看| 亚洲性感美女99在线| 久久精品日韩欧美| 亚洲激情网站免费观看| 欧美日韩精品在线| 欧美一二三区精品| 亚洲福利视频一区二区| 亚洲淫性视频| 亚洲第一黄色网| 欧美日韩在线精品一区二区三区| 亚洲综合色网站| 蜜臀久久99精品久久久画质超高清| 亚洲日本aⅴ片在线观看香蕉| 国产精品成人观看视频国产奇米| 欧美一二三区精品| 亚洲精品视频中文字幕| 欧美中文字幕精品| 亚洲精品视频在线观看网站 | 免费成人高清视频| 日韩视频三区| 国内偷自视频区视频综合| 欧美国产视频一区二区| 亚洲欧美激情精品一区二区| 麻豆国产精品777777在线 | 国产精品视频久久一区| 久久尤物电影视频在线观看| 一区二区三区不卡视频在线观看| 久久亚洲一区二区三区四区| 在线亚洲电影| 亚洲日本成人| 韩国精品一区二区三区| 国产精品福利久久久| 欧美jizzhd精品欧美巨大免费| 亚洲欧美日韩系列| 亚洲精品一二| 亚洲福利视频网站| 久久免费高清| 羞羞漫画18久久大片| 99精品国产在热久久| 在线观看视频欧美| 国产亚洲在线| 国产精品你懂的| 欧美视频精品一区| 欧美日韩伦理在线| 男女激情视频一区| 久久综合婷婷| 久久久久在线观看| 欧美在线视频免费观看| 亚洲欧美国产高清| 亚洲欧美国产日韩中文字幕| 在线亚洲欧美专区二区| 亚洲精品日本| 亚洲精品国产精品国自产在线 | 欧美夜福利tv在线| 亚洲欧美日韩网| 亚洲欧美一级二级三级| 亚洲综合国产精品| 亚洲专区免费| 香蕉久久夜色精品| 欧美在线欧美在线| 久久av一区二区| 久久久亚洲人| 久久嫩草精品久久久精品| 久久久国产亚洲精品| 久久免费黄色| 欧美激情一区在线观看| 亚洲国产精品成人综合色在线婷婷 | 亚洲第一区在线| 亚洲国产cao| 亚洲国产综合视频在线观看| 亚洲国产视频直播| aa亚洲婷婷| 亚洲欧美激情视频| 久久成人精品电影| 久久亚洲精品视频| 另类av导航| 欧美激情一区在线观看| 日韩一区二区免费看| 亚洲先锋成人| 久久xxxx| 欧美va亚洲va日韩∨a综合色| 欧美激情一区二区三区全黄| 欧美午夜电影网| 狠狠色噜噜狠狠色综合久| 亚洲国产高清一区| 亚洲天堂网站在线观看视频| 欧美一区二区三区播放老司机| 久久久亚洲欧洲日产国码αv| 欧美大片在线影院| 在线亚洲精品福利网址导航| 久久精品视频一| 欧美区二区三区| 国产午夜精品久久久| 亚洲日本久久| 欧美中文字幕精品| 亚洲黄页一区| 久久都是精品| 欧美亚洲成人精品| 亚洲第一中文字幕| 午夜欧美精品久久久久久久| 欧美国产视频在线观看| 99精品福利视频| 久久一区中文字幕| 国产欧美日韩综合精品二区| 亚洲娇小video精品| 久久国产免费看| 日韩视频一区二区| 你懂的成人av| 国内精品久久久久影院 日本资源| 一区二区三区四区国产精品| 久久久中精品2020中文| 亚洲午夜av电影| 欧美成人小视频| 在线欧美福利| 久久噜噜亚洲综合| 午夜精品视频在线| 国产精品成人观看视频国产奇米| 亚洲精品乱码久久久久久久久| 久久精品一区二区三区不卡| 中文久久精品|