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

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>
            久久成人18免费观看| 久久综合伊人77777蜜臀| 久久精品国产77777蜜臀| 亚洲永久免费av| 一本色道久久88综合亚洲精品ⅰ | 免费成人黄色av| 久久久青草婷婷精品综合日韩| 久久爱www| 久久综合久久久久88| 欧美成人日本| 91久久久久久国产精品| 亚洲黄一区二区三区| 亚洲日本一区二区三区| 亚洲一区二区三区四区视频 | 久久久久久久久久久成人| 久久久999精品视频| 久久久久综合网| 欧美精品久久久久久久久老牛影院| 欧美久久久久免费| 国产精品一区二区三区四区五区| 国产美女一区| 亚洲福利视频专区| 99在线热播精品免费| 午夜精品久久久久久久99热浪潮| 久久xxxx| 亚洲人体一区| 性色av一区二区三区在线观看| 久久亚洲一区二区| 欧美视频专区一二在线观看| 国产精品一级二级三级| 一区二区在线观看视频在线观看| av成人激情| 久久亚洲欧美| 中文国产成人精品| 久久免费观看视频| 国产精品久久久久99| 尤物在线观看一区| 欧美一区国产在线| 亚洲欧洲美洲综合色网| 西西裸体人体做爰大胆久久久| 免费中文日韩| 国产一区二区三区不卡在线观看| 日韩亚洲精品视频| 亚洲一区二区成人| 美女啪啪无遮挡免费久久网站| 欧美在线免费观看亚洲| 欧美精品1区| 国产亚洲在线| 亚洲少妇最新在线视频| 欧美二区乱c少妇| 香蕉乱码成人久久天堂爱免费| 午夜免费日韩视频| 国产精品海角社区在线观看| 亚洲国产欧美一区二区三区丁香婷| 欧美一区二区三区婷婷月色| 亚洲国产福利在线| 久久精品女人天堂| 国产日韩欧美| 午夜精品久久| 亚洲一区二区三区视频播放| 欧美午夜宅男影院| 亚洲综合不卡| 亚洲开发第一视频在线播放| 久久综合色播五月| 亚洲第一福利在线观看| 美国十次了思思久久精品导航| 亚洲女同在线| 国产欧美日本在线| 欧美综合国产精品久久丁香| 亚洲一区二区在线视频| 国产日韩欧美一二三区| 久久成人羞羞网站| 久久精品国产免费看久久精品 | 国产偷国产偷精品高清尤物| 亚洲欧美日韩国产综合| 亚洲免费综合| 国产一区二区三区丝袜| 久久精品中文| 久久另类ts人妖一区二区| 国产亚洲综合性久久久影院| 久久福利资源站| 久久激情五月激情| 亚洲精品1234| 99精品国产一区二区青青牛奶| 欧美三级午夜理伦三级中视频| 亚洲一区二区三区四区五区午夜| 一卡二卡3卡四卡高清精品视频| 欧美日韩妖精视频| 午夜精品在线观看| 久久精品盗摄| 亚洲精美视频| 一区二区三区产品免费精品久久75| 国产精品美女www爽爽爽| 久久精品人人爽| 欧美成人一区二区三区| 亚洲伊人色欲综合网| 亚洲尤物影院| 在线观看欧美激情| 一本一道久久综合狠狠老精东影业 | 欧美在线视频日韩| 99re6热只有精品免费观看| 国产精品久久午夜| 久久网站免费| 欧美激情一区二区三区不卡| 亚洲男人天堂2024| 久久国产夜色精品鲁鲁99| 99re热这里只有精品免费视频| 亚洲小说欧美另类社区| 在线精品国精品国产尤物884a| 99xxxx成人网| 亚洲成人资源网| 中文亚洲字幕| 亚洲精品免费在线播放| 欧美一区二区高清在线观看| 99热精品在线| 久久免费视频一区| 午夜精品视频网站| 欧美国产日本在线| 久久免费黄色| 欧美三级乱码| 欧美大胆成人| 国产一区二区毛片| 亚洲欧美日本精品| 亚洲性线免费观看视频成熟| 麻豆成人综合网| 久久国产精品99久久久久久老狼| 欧美日韩成人在线播放| 欧美成人精品在线视频| 国产欧美日韩综合一区在线观看 | 亚洲高清视频在线| 午夜一区不卡| 午夜精品99久久免费| 欧美日本韩国一区二区三区| 欧美成人一区二区| 在线免费观看日本一区| 欧美在线免费观看| 久久人人爽人人爽| 国产欧美精品一区二区色综合| 一区二区三区毛片| 亚洲一区二区久久| 欧美午夜一区| 亚洲视频你懂的| 亚洲免费视频观看| 欧美性事免费在线观看| 亚洲人午夜精品| 亚洲免费观看高清完整版在线观看熊| 久久aⅴ国产紧身牛仔裤| 欧美影视一区| 国产午夜精品麻豆| 久久久久久色| 欧美成人嫩草网站| 亚洲啪啪91| 欧美日本国产一区| 亚洲午夜精品一区二区三区他趣| 亚洲少妇中出一区| 国产精品精品视频| 午夜精品区一区二区三| 欧美一区二区三区视频免费| 国产一区二三区| 久久精品国产一区二区三区免费看| 久久久亚洲国产天美传媒修理工 | 亚洲在线不卡| 国产精品久久久久9999| 亚洲一区二区精品| 欧美一区二区三区久久精品茉莉花 | 91久久国产综合久久| 在线亚洲电影| 国产精品视频成人| 久久久人人人| 亚洲国产mv| 亚洲欧美日韩视频二区| 国内外成人在线| 欧美国产一区视频在线观看| 一区二区三区精密机械公司| 欧美亚洲视频一区二区| 在线播放一区| 欧美日韩你懂的| 欧美专区在线播放| 亚洲精品国产精品国自产观看| 欧美一区二区三区精品| 91久久综合| 国产精品永久入口久久久| 麻豆精品在线播放| 亚洲伊人网站| 欧美激情一区二区三区蜜桃视频 | 中文日韩在线视频| 欧美福利影院| 欧美一区二区精品久久911| 亚洲国产日韩美| 国产精品国产成人国产三级| 久久人人97超碰国产公开结果| 亚洲免费av片| 免费成人在线视频网站| 亚洲永久在线| 亚洲国产成人久久综合| 国产精品综合久久久| 欧美激情一区在线观看| 久久国产精品久久久| 亚洲图片激情小说| 最近中文字幕mv在线一区二区三区四区 |