3.4.2 具体实现(11)
⑱定义函数OnEraseBkgnd(),用于清除背景颜色,具体代码如下:
- BOOL CTelnetView::OnEraseBkgnd(CDC* pDC)
- {
- CRect clip;
- pDC->GetClipBox(clip);
- CMainFrame *frm = (CMainFrame*)GetTopLevelFrame();
- pDC->FillSolidRect(clip, cBackgroundColor);
- return TRUE;
- }
⑲定义函数Find(),用于查找指定的字符,具体代码如下:- //查找字符
- int CTelnetView::Find(CString str, char ch)
- {
- char *data = str.GetBuffer(0);
- int len = str.GetLength();
- int i = 0;
- for(i=0; i<len; i++){
- if(data[i] == ch)
- break;
- }
- str.ReleaseBuffer();
- return i;
- }
定义函数OnKeyDown(),用于实现方向键处理,具体代码如下:- //方向键处理
- void CTelnetView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
- {
- unsigned char myChar[3];
- // TODO: Add your message handler code here and/or call default
- //左方向键
- if (nChar == 37)
- {
- myChar[0] = 27;
- myChar[1] = 91;
- myChar[2] = 68;
-
- DispatchMessage(myChar);
- }
- //右方向键
- else if (nChar == 39)
- {
- myChar[0] = 27;
- myChar[1] = 91;
- myChar[2] = 67;
- DispatchMessage(myChar);
- }
- //上方向键
- else if (nChar == 38)
- {
- myChar[0] = 27;
- myChar[1] = 91;
- myChar[2] = 65;
- DispatchMessage(myChar);
- }
- //下方向键
- else if (nChar == 40)
- {
- myChar[0] = 27;
- myChar[1] = 91;
- myChar[2] = 66;
- DispatchMessage(myChar);
- }
- CView::OnKeyDown(nChar, nRepCnt, nFlags);
- //MessageBox((char*)nChar);
- }
定义函数ClearWindows (),用于清除屏幕元素,具体代码如下:- //清除屏幕
- void CTelnetView::ClearWindows(CDC *pDc)
- {
- for(int x=0; x<80; x++)
- {
- for(int y=0; y<bufferLines; y++)
- {
- cText[x][y] = ' ';
- }
- }
- DoDraw(pDc);
- CurrentYY = 0;
- CurrentXX = 0;
- }
-