小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

關(guān)于CListCtrl條目的字符數(shù)限制-

 浮 生 2010-05-02

關(guān)于CListCtrl條目的字符數(shù)限制


這幾天寫(xiě)個(gè)程序,用到ListCtrl,當(dāng)對(duì)其中進(jìn)行長(zhǎng)字符串寫(xiě)入時(shí)發(fā)現(xiàn),只能寫(xiě)很少一點(diǎn)(好像是128),
于是干脆重載了ListCtrl,
并且重載了函數(shù)SetIteText

BOOL CMyListCtrl::SetItemText(int nItem, int nSubItem, LPCTSTR lpszText)//
{

 ASSERT(::IsWindow(m_hWnd));
 ASSERT((GetStyle() & LVS_OWNERDATA)==0);
 LVITEM lvi;
 lvi.iSubItem = nSubItem;
 lvi.pszText = (LPTSTR)lpszText;
 ::SendMessage(m_hWnd, LVM_SETITEMTEXT, nItem, (LPARAM)&lvi);

 return (BOOL) ::SendMessage(m_hWnd, LVM_SETITEMTEXT, nItem, (LPARAM)&lvi);
}

原來(lái)以為是lvi. cchTextMax
;長(zhǎng)度太小,所以特意設(shè)了個(gè),但發(fā)現(xiàn)沒(méi)用.
因?yàn)?從ListCtrl中讀取的文字還是不是寫(xiě)入的.
突然想到,是不是獲取文本時(shí)出了問(wèn)題,
然后打開(kāi)了GetItemText 一看,果然.
默認(rèn)的長(zhǎng)度竟然只有128位
重載之,搞定:

CString CMyListCtrl::GetItemText(int nItem, int nSubItem)
{
 ASSERT(::IsWindow(m_hWnd));
 LVITEM lvi;
 memset(&lvi, 0, sizeof(LVITEM));
 lvi.iSubItem = nSubItem;
 CString str;
 int nLen = 640;//重載該函數(shù),默認(rèn)為128,這里改為640
 int nRes;
 do
 {
  nLen *= 2;
  lvi.cchTextMax = nLen;
  lvi.pszText = str.GetBufferSetLength(nLen);
  nRes  = (int)::SendMessage(m_hWnd, LVM_GETITEMTEXT, (WPARAM)nItem,
   (LPARAM)&lvi);
 } while (nRes == nLen-1);
 str.ReleaseBuffer();
 return str;
}

全文結(jié)束

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多