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

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久久久久久宅男 | 樱桃成人精品视频在线播放| 西西人体一区二区| 亚洲一二三区视频在线观看| 国产精品少妇自拍| 久久成人综合视频| 久久国内精品自在自线400部| 国产三级欧美三级| 美女视频网站黄色亚洲| 美女任你摸久久| 99re8这里有精品热视频免费| 亚洲麻豆av| 国产午夜精品麻豆| 欧美激情在线观看| 欧美视频在线观看 亚洲欧| 香蕉免费一区二区三区在线观看| 午夜国产精品视频| 亚洲精品国产精品乱码不99按摩| 国精品一区二区三区| 老**午夜毛片一区二区三区| 美女主播一区| 亚洲男人的天堂在线aⅴ视频| 午夜视频一区| 91久久在线观看| 亚洲视频香蕉人妖| 在线观看福利一区| 一区二区福利| 一区免费观看视频| 99国内精品久久| 韩国免费一区| 一区二区三区欧美视频| 激情伊人五月天久久综合| 日韩视频永久免费| 伊人一区二区三区久久精品| 一二三四社区欧美黄| 亚洲二区在线| 小辣椒精品导航| 99热这里只有精品8| 欧美一级午夜免费电影| 99ri日韩精品视频| 久久国产精品久久久| 一本久久知道综合久久| 久久久久久欧美| 亚洲一区二区三区精品视频| 国产精品一区二区视频| 亚洲人成高清| 国内精品久久久久久影视8| 亚洲美女av网站| 亚洲国产天堂网精品网站| 午夜精品国产精品大乳美女| 一区二区三区导航| 欧美成人午夜影院| 欧美高清视频一区| 激情伊人五月天久久综合| 午夜精品影院在线观看| 亚洲在线观看视频网站| 欧美区一区二区三区| 欧美国产在线观看| 在线观看亚洲精品视频| 欧美在线视频a| 久久精品首页| 国产色爱av资源综合区| 日韩亚洲一区在线播放| 日韩午夜在线播放| 欧美国产一区二区三区激情无套| 免费看av成人| 亚洲国产精品久久久久秋霞蜜臀| 欧美在线精品免播放器视频| 久久国产精品毛片| 国产综合色产| 久久久91精品国产| 免费久久99精品国产| 激情欧美一区| 另类天堂av| 欧美激情视频在线免费观看 欧美视频免费一 | 亚洲国产毛片完整版 | 美玉足脚交一区二区三区图片| 久久精品一区二区三区中文字幕 | 欧美一区精品| 久久精品国产第一区二区三区最新章节| 国产精品乱子久久久久| 亚洲一区二区免费视频| 久久精品99无色码中文字幕 | 欧美激情成人在线视频| 亚洲欧洲综合另类在线| 亚洲卡通欧美制服中文| 欧美日本簧片| 亚洲欧美在线免费| 蜜臀a∨国产成人精品 | 国产精品久久77777| 午夜欧美视频| 欧美激情bt| 亚洲乱码国产乱码精品精| 欧美国产日韩精品| 亚洲一区中文字幕在线观看| 久久精品亚洲国产奇米99| 亚洲激情自拍| 国产精品福利网站| 久久国产免费看| 91久久精品国产91久久| 性xx色xx综合久久久xx| 亚洲大胆视频| 国产精品免费电影| 久久伊人精品天天| 中文成人激情娱乐网| 久久中文字幕导航| 亚洲一区免费看| 亚洲高清久久久| 国产精品一区久久久| 久久综合色一综合色88| 欧美成人小视频| 亚洲一区二区精品在线观看| 欧美大片免费久久精品三p | 在线观看欧美日韩| 欧美日韩久久| 久久精品99| 亚洲午夜精品一区二区| 亚洲福利一区| 久久嫩草精品久久久精品| 亚洲永久精品国产| 亚洲激情在线观看视频免费| 国产欧美一区二区三区视频| 欧美激情中文不卡| 久久久久综合| 欧美一区国产一区| 亚洲一区国产精品| 亚洲免费电影在线| 亚洲国产成人精品久久久国产成人一区| 性欧美大战久久久久久久免费观看 | 亚洲午夜高清视频| 亚洲欧洲一区二区在线播放| 久久亚洲欧美国产精品乐播| 亚洲欧美综合另类中字| 亚洲精品一区二区三| 精品动漫一区| 国产一区二区毛片| 国产日韩欧美| 国产美女在线精品免费观看| 欧美极品aⅴ影院| 美女日韩欧美| 久久婷婷久久| 久久久国产午夜精品| 久久国产精品久久国产精品| 欧美影院精品一区| 欧美在线视频观看| 性欧美精品高清| 欧美影院在线| 久久久久国产免费免费| 久久这里只有精品视频首页| 久久精品中文字幕一区二区三区| 欧美在线免费观看| 欧美在线精品一区| 久久久久久亚洲精品不卡4k岛国| 久久九九久精品国产免费直播 | 亚洲国产日韩欧美| 亚洲黄色影院| 夜夜嗨av色一区二区不卡| 一本色道久久88精品综合| 亚洲图片欧美日产| 午夜一区在线| 久久人体大胆视频| 欧美国产日韩在线| 欧美四级在线| 国产亚洲人成a一在线v站| 激情五月综合色婷婷一区二区| 亚洲第一页中文字幕| 日韩视频在线永久播放| 亚洲免费在线精品一区| 久久精品国产第一区二区三区最新章节 | 浪潮色综合久久天堂| 欧美国产综合视频| 一本久久综合亚洲鲁鲁| 西瓜成人精品人成网站| 久久网站免费| 国产精品成人观看视频国产奇米| 国产人妖伪娘一区91| 亚洲国产成人91精品| 在线一区欧美| 久久精品视频在线观看| 亚洲欧洲日本国产| 性高湖久久久久久久久| 欧美高清视频一区二区| 国产精品制服诱惑| 亚洲精选视频免费看| 久久精品欧美日韩| 亚洲看片一区| 久久人人97超碰人人澡爱香蕉| 欧美日韩一区二区三区四区五区| 国产一区视频在线看| 一本色道**综合亚洲精品蜜桃冫| 欧美中文字幕在线播放| 亚洲人成网站777色婷婷| 午夜视频一区在线观看| 欧美区国产区| 亚洲国产精品久久精品怡红院| 午夜精品久久久久影视 | 久久综合狠狠综合久久综合88| 日韩一级在线观看| 久久综合九九|