3.4.2 具体实现(11)

2013-10-07 15:56:11 · 作者: · 浏览: 72

3.4.2  具体实现(11)

定义函数OnEraseBkgnd(),用于清除背景颜色,具体代码如下:

  1. BOOL CTelnetView::OnEraseBkgnd(CDC* pDC)   
  2. {  
  3. CRect clip;  
  4. pDC->GetClipBox(clip);  
  5. CMainFrame *frm = (CMainFrame*)GetTopLevelFrame();  
  6. pDC->FillSolidRect(clip, cBackgroundColor);  
  7. return TRUE;  
  8. }  

定义函数Find(),用于查找指定的字符,具体代码如下:
  1. //查找字符  
  2. int CTelnetView::Find(CString str, char ch)  
  3. {  
  4. char *data = str.GetBuffer(0);  
  5. int len = str.GetLength();  
  6. int i = 0;  
  7. for(i=0; i<len; i++){  
  8. if(data[i] == ch)  
  9. break;  
  10. }  
  11. str.ReleaseBuffer();  
  12. return i;  
  13. }  

定义函数OnKeyDown(),用于实现方向键处理,具体代码如下:
  1. //方向键处理  
  2. void CTelnetView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)   
  3. {  
  4. unsigned char myChar[3];  
  5. // TODO: Add your message handler code here and/or call default  
  6. //左方向键  
  7. if (nChar == 37)  
  8. {  
  9. myChar[0] = 27;  
  10. myChar[1] = 91;  
  11. myChar[2] = 68;  
  12.  
  13. DispatchMessage(myChar);  
  14. }  
  15. //右方向键  
  16. else if (nChar == 39)  
  17. {  
  18. myChar[0] = 27;  
  19. myChar[1] = 91;  
  20. myChar[2] = 67;  
  21. DispatchMessage(myChar);  
  22. }  
  23. //上方向键  
  24. else if (nChar == 38)  
  25. {  
  26. myChar[0] = 27;  
  27. myChar[1] = 91;  
  28. myChar[2] = 65;  
  29. DispatchMessage(myChar);  
  30. }  
  31. //下方向键  
  32. else if (nChar == 40)  
  33. {  
  34. myChar[0] = 27;  
  35. myChar[1] = 91;  
  36. myChar[2] = 66;  
  37. DispatchMessage(myChar);  
  38. }  
  39. CView::OnKeyDown(nChar, nRepCnt, nFlags);  
  40. //MessageBox((char*)nChar);  
  41. }  

定义函数ClearWindows (),用于清除屏幕元素,具体代码如下:
  1. //清除屏幕  
  2. void CTelnetView::ClearWindows(CDC *pDc)  
  3. {  
  4.     for(int x=0; x<80; x++)  
  5.     {  
  6.         for(int y=0; y<bufferLines; y++)  
  7.         {  
  8.             cText[x][y] = ' ';  
  9.         }  
  10.     }  
  11.     DoDraw(pDc);  
  12.     CurrentYY = 0;  
  13.     CurrentXX = 0;  
  14. }  
  15.