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

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 閱讀(5520) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   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>
            99精品久久久| 午夜精品久久久久久久久久久久久 | 99精品国产高清一区二区| 欧美成人免费全部观看天天性色| 亚洲第一精品福利| 亚洲精品乱码久久久久久| 老司机67194精品线观看| 日韩亚洲欧美一区二区三区| 亚洲精品乱码久久久久久蜜桃麻豆| 欧美看片网站| 欧美一区视频| 久久综合电影| 亚洲一区二区三区中文字幕在线 | 亚洲一区二区毛片| 国产精品综合网站| 快播亚洲色图| 欧美日韩国产综合视频在线| 欧美一区二区三区四区在线 | 亚洲精品在线看| 国产精品久久久久三级| 久久美女艺术照精彩视频福利播放| 久久久久.com| 亚洲一区日韩在线| 久久国产视频网站| 中文欧美在线视频| 久久爱91午夜羞羞| 亚洲免费精彩视频| 性色av一区二区三区| 亚洲精品中文字幕女同| 西西裸体人体做爰大胆久久久| 亚洲国产精品va在线观看黑人| 亚洲美女淫视频| 在线播放不卡| 亚洲综合精品| 一本久道久久综合中文字幕| 欧美伊人久久| 亚洲在线国产日韩欧美| 另类图片综合电影| 欧美在线免费观看| 欧美日韩一级视频| 欧美成人精品福利| 国产精品视频福利| 亚洲精品一区二区网址| 在线观看免费视频综合| 翔田千里一区二区| 亚洲伊人久久综合| 欧美日韩精品一区二区三区| 欧美成人免费播放| 激情欧美一区二区三区| 欧美一区二区三区免费看| 亚洲视频一二三| 欧美精品国产一区二区| 欧美成人a视频| 红桃视频欧美| 久久电影一区| 久久五月激情| 红桃视频成人| 久久精品一区二区三区四区| 久久久久国产精品人| 国产精品亚洲综合天堂夜夜| 999在线观看精品免费不卡网站| 亚洲欧洲一区| 欧美成人视屏| 日韩视频在线观看| 中日韩美女免费视频网站在线观看| 欧美mv日韩mv亚洲| 亚洲经典在线| 亚洲视频电影图片偷拍一区| 欧美日韩国产精品专区| 亚洲精品国产精品国自产在线 | aa级大片欧美| 欧美日韩国内| 亚洲午夜久久久久久久久电影院 | 亚洲视频在线一区观看| 欧美午夜一区| 亚洲欧美伊人| 久久久美女艺术照精彩视频福利播放| 国产亚洲女人久久久久毛片| 香蕉久久精品日日躁夜夜躁| 久久精品日韩| 亚洲电影天堂av| 欧美成人久久| 这里只有精品视频在线| 久久国产婷婷国产香蕉| 狠狠爱www人成狠狠爱综合网 | 亚洲精品日韩久久| 亚洲一区中文| 国产综合视频在线观看| 久久亚洲精品一区| 亚洲茄子视频| 欧美在线三区| 亚洲人www| 国产精品国产三级国产aⅴ入口| 亚洲综合视频在线| 欧美不卡一区| 亚洲自啪免费| 好男人免费精品视频| 欧美肥婆在线| 性色av一区二区三区红粉影视| 欧美成人国产| 香港成人在线视频| 亚洲国产精品久久久久婷婷884| 欧美日韩播放| 久久久久国产成人精品亚洲午夜| 亚洲欧洲美洲综合色网| 欧美一区亚洲二区| 在线成人小视频| 欧美亚洲第一区| 美国十次成人| 午夜精品久久久久久99热| 亚洲二区视频| 久久最新视频| 午夜免费电影一区在线观看| 亚洲黄色一区| 国产一级精品aaaaa看| 欧美日本在线播放| 久久这里有精品视频| 亚洲一区视频在线| 91久久在线播放| 欧美怡红院视频一区二区三区| 亚洲精品免费一区二区三区| 国产一区二区中文字幕免费看| 欧美调教视频| 欧美高清hd18日本| 久久人人超碰| 久久狠狠婷婷| 午夜影院日韩| 亚洲一区二区高清| 在线午夜精品| 夜夜嗨av色综合久久久综合网| 米奇777在线欧美播放| 久久精品91| 欧美一区91| 欧美中文在线观看| 先锋资源久久| 亚洲欧美综合| 午夜在线不卡| 久久成人一区| 久久er精品视频| 性做久久久久久久免费看| 亚洲嫩草精品久久| 午夜精品久久久久久久99黑人| 一区二区久久久久久| 日韩午夜在线电影| 99精品视频免费观看视频| 亚洲黄色影片| 一区二区欧美在线观看| 中国av一区| 亚洲综合不卡| 欧美中文字幕在线观看| 欧美中文在线观看国产| 久久久久久夜| 女生裸体视频一区二区三区| 欧美**字幕| 亚洲欧洲综合另类在线| 亚洲蜜桃精久久久久久久| 亚洲精品日韩欧美| 亚洲小视频在线| 性伦欧美刺激片在线观看| 欧美一区二区视频在线| 久久深夜福利免费观看| 欧美黄网免费在线观看| 欧美婷婷久久| 国产一区二区中文字幕免费看| 伊人春色精品| 一本综合久久| 欧美在线视频一区二区| 蜜臀a∨国产成人精品| 亚洲黄一区二区| 亚洲一区二区在线看| 久久久久久久网站| 欧美激情一区二区久久久| 国产精品青草综合久久久久99| 韩国av一区二区三区四区| 亚洲精品国产欧美| 午夜精品亚洲一区二区三区嫩草| 久久国产精品久久国产精品| 欧美电影打屁股sp| 99在线精品观看| 久久精品免视看| 欧美视频在线看| 极品尤物久久久av免费看| 夜夜嗨av一区二区三区中文字幕 | 一区二区三区精品在线| 久久激情五月婷婷| 亚洲茄子视频| 久久精品日韩| 国产精品国产三级国产| 1024成人网色www| 性色一区二区三区| 亚洲欧洲日产国产综合网| 欧美在线精品免播放器视频| 欧美伦理在线观看| 国内精品久久久久伊人av| 亚洲午夜在线视频| 亚洲国产婷婷| 久久夜精品va视频免费观看| 国产日韩欧美精品一区| 亚洲美女一区| 蜜桃av一区|