C++编译的文本编辑器
行绘制,文本框的大小改变等会导致文本编辑区的重绘,所以在改变文本框时必须调用函数对文本框中的内容进行保存,相关代码如下所示: BOOL CBmpEdit::OnEraseBkgnd(CDC* pDC) { }
void CBmpEdit::OnChange() { }
HBRUSH CBmpEdit::CtlColor(CDC* pDC, UINT nCtlColor) { }
void CBmpEdit::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar * pScrollBar) { }
void CBmpEdit::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) {
CDC memDC;
memDC.CreateCompatibleDC(pDC);//创建内存设备上下文 memDC.SelectObject(&m_Bitmap);//将位图选入设备上下文 BITMAP m_Bmp; //声明位图控件
m_Bitmap.GetBitmap(&m_Bmp); //获得位图信息 int x = m_Bmp.bmWidth; //获取图片宽度 int y = m_Bmp.bmHeight; //获取图片高度 CRect rect; //声明矩形区域对象
GetClientRect(rect); //获取编辑区大小矩形框
pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&memDC,0,0,x,y,SRCCOPY); memDC.DeleteDC();//释放内存设备上下文
return TRUE; //return CEdit::OnEraseBkgnd(pDC);
//伸展铺上图片
Invalidate(); //刷新用户界面
pDC->SetBkMode(TRANSPARENT); //设置文字背景透明 return NULL;
CEdit::OnVScroll(nSBCode, nPos, pScrollBar); //判断滚动条是否滑动 Invalidate(); //刷新用户界面
int n1,n2;