友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
C语言实例教程(PDF格式)-第54部分
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!
{
m_text。AddTail(str);
}
}
}
由于不存在索引的概念,列表使用类型为POSITION的32位值来标识列
表中的数据的位置。在上面的代码中,CList的成员函数
GetHeadPosition返回列表中第一个元素的位置。成员函数GetNext以
一个对POSITION变量的引用为参数,除了返回指定位置的元素外,
GetNext还将传递给它的POSITION变量引用的值置为所返回元素的下
一个元素的位置,如果该引用的值被置为NULL,则说明已遍历至列表
尾。
使用列表时添加元素的方法也与数组有所不同。CList类模板中并没
有名为Add的成员函数,取而代之的是两个成员函数AddHead和
AddTail。它们分别把指定的元素添加到列表的首部和尾部,并返回
所添加元素在列表中的位置,这是一个POSITION类型的值。另外,成
员函数InsertBefore和InsertAfter分别将新的元素插入到指定位置
之前或之后。前面已经说过,由于列表相对于数组具有特殊的结构,
在列表中插入或删除元素并不需要移动插入点之后的元素,因此在列
表中插入和删除元素要比对数组进行同样的操作快上很多,尤其是对
于较大的集合对象。
…………………………………………………………Page 455……………………………………………………………
按下面的清单修改CTextView类的OnDraw成员函数。
void CTextViewerView::OnDraw(CDC* pDC)
{
CTextViewerDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CList & text=pDoc…》m_text;
TEXTMETRIC tm;
pDC…》GetTextMetrics(&tm);
CRect rect;
GetClientRect(&rect);
pDC…》DPtoLP(&rect);
int cpl=rect。Width()/tm。tmAveCharWidth;
int h=int(tm。tmHeight*1。5);
int cl=0;
POSITION pos=text。GetHeadPosition();
while (pos!=NULL)
{
CString str=text。GetNext(pos);
LPCTSTR pHead=str。LockBuffer();
LPCTSTR pTail=LPCTSTR(str)+str。GetLength();
LPCTSTR pCur=pHead;
do
{
while(pCur…pHeadTabbedTextOut(0; (cl++)*h; pHead;
int(pCur…pHead); 0; NULL; 0);
}
else
{
while(pDC…》GetTabbedTextExtent(pHead;
int(pCur…pHead); 0; NULL)。cx》rect。Width())
{
pCur=_tcsdec(pHead;pCur);
}
pDC…》TabbedTextOut(0; (cl++)*h; pHead;
int(pCur…pHead); 0; NULL; 0);
}
…………………………………………………………Page 457……………………………………………………………
pHead=pCur;
}while(pCurdata_string访问保存nChar的
数据串。
现在实现对数据的采集工作,已经变的相当轻松。只需要利用MFC库
…………………………………………………………Page 463……………………………………………………………
中的类的现成功能即可,直接将该字符同串相加。将nChar中的字符
加到pDoc…》data_string上,只需要下面一行:
void CKeyView::OnChar(UINT nChar; UINT nRepCnt; UINT nFlags)
{
CKeyDoc *pDoc=GetDocument();
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!