资源简介
基于vs2008,采用vc++编写的一款简单的MFC 文本编辑器。
代码片段和文件信息
// ChildView.cpp : CChildView 类的实现
//
#include “stdafx.h“
#include “Typer.h“
#include “ChildView.h“
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CChildView
CChildView::CChildView()
{
caretPos.x = 1;
caretPos.y =0;
cursor = AfxGetApp()->LoadStandardCursor(IDC_IBEAM);
}
CChildView::~CChildView()
{
}
BEGIN_MESSAGE_MAP(CChildView CWnd)
ON_WM_PAINT()
ON_WM_SETFOCUS()
ON_WM_KILLFOCUS()
ON_WM_LBUTTONUP()
ON_WM_CHAR()
ON_WM_SETCURSOR()
ON_WM_KEYDOWN()
ON_WM_SIZE()
END_MESSAGE_MAP()
// CChildView 消息处理程序
BOOL CChildView::PreCreateWindow(CREATESTRUCT& cs)
{
if (!CWnd::PreCreateWindow(cs))
return FALSE;
cs.dwExstyle |= WS_EX_CLIENTEDGE;
cs.style &= ~WS_BORDER|WS_VISIBLE|WS_MAXIMIZE;
cs.lpszClass = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS
::LoadCursor(NULL IDC_ARROW) reinterpret_cast(COLOR_WINDOW+1) NULL);
return TRUE;
}
void CChildView::OnPaint()
{
CPaintDC dc(this); // 用于绘制的设备上下文
// 不要为绘制消息而调用 CWnd::OnPaint()
}
//取得视图工作区的输入焦点
void CChildView::OnSetFocus(CWnd *pOldWnd)
{
CWnd::OnSetFocus(pOldWnd);
::CreateCaret(*this(HBITMAP)NULL120);
SetCaretPos(caretPos);
ShowCaret();
}
//失去输入焦点
void CChildView::OnKillFocus(CWnd* pNewWnd)
{
CWnd::OnKillFocus(pNewWnd);
//隐藏光标
HideCaret();
//删除文本光标
DestroyCaret();
}
//放开鼠标左键
void CChildView::OnLButtonUp(UINT nFlags CPoint point)
{
CWnd::OnLButtonUp(nFlagspoint);
caretPos = point;
//将光标移到鼠标所单击的位置
SetCaretPos(caretPos);
}
//输入文字
void CChildView::OnChar(UINT nChar UINT nRepCnt UINT nFlags)
{
GetClientRect(rect);
nWidth = rect.Width();
if(nChar!=VK_BACK && nChar!=VK_RETURN)
{
CWnd::OnChar(nCharnRepCntnFlags);
TCHAR str[2];
CSize size;
CSize size2;
str[0] = (TCHAR)nChar;
str[1] = 0;
HideCaret();
CClientDC dc(this);
size = dc.GetTextExtent(str1);//计算字符串在屏幕上的长宽点数
size2 = dc.GetTextExtent(str1) +dc.GetTextExtent(str1);
if(caretPos.x >=nWidth )
{
caretPos.y += size.cy;
caretPos.x = 1;
}
dc.TextOut(caretPos.xcaretPos.ystr);
caretPos.x += size.cx;
SetCaretPos(caretPos);
ShowCaret();
}
}
BOOL CChildView::OnSetCursor(CWnd* pWnd UINT nHitTest UINT message)
{
BOOL bCursor;
bCursor = CWnd::OnSetCursor(pWndnHitTestmessage);
if((bCursor==FALSE)&&(nHitTest==HTCLIENT))
{
SetCursor(cursor);
}
return bCursor;
}
//键盘消息函数
void CChildView::onkeydown(UINT nChar UINT nRepCnt UINT nFlags)
{
GetClientRect(rect);
nWidth = rect.Width();
TCHAR str[2];
CSize size;
CSize size2;
str[0] = (TCHAR)‘ ‘;
str[1] = 0;
HideCaret();
CClientDC dc(this);
//计算字符串在屏幕上的长宽点数
size = dc.GetTextExtent(str1);
size2 = dc.GetTextExtent(str1) +dc.GetTextExtent(str1);
switch(nChar)
{
case VK_BACK:
if(caretPos.x <= 0)
{
caretPos.x = nWidth ;
caretPos.y -= size.cy;
}
caretPos.x -= size2.cx ;
dc.TextOut(caretPos.xcaretPos.yL“ “);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-07-05 20:18 Typer\
文件 3898 2012-07-05 17:02 Typer\ChildView.cpp
文件 858 2012-07-05 16:06 Typer\ChildView.h
文件 1 2006-11-20 16:11 Typer\ClassDiagram1.cd
目录 0 2012-07-05 20:18 Typer\Debug\
文件 5998 2012-07-05 17:02 Typer\Debug\BuildLog.htm
文件 35204 2012-07-05 17:02 Typer\Debug\ChildView.obj
文件 34821 2012-07-05 16:06 Typer\Debug\MainFrm.obj
文件 65 2012-07-05 17:02 Typer\Debug\mt.dep
文件 466146 2012-07-05 12:15 Typer\Debug\stdafx.obj
文件 1196 2012-07-05 12:15 Typer\Debug\Typer.exe.em
文件 1260 2012-07-05 12:15 Typer\Debug\Typer.exe.em
文件 1120 2012-07-05 17:02 Typer\Debug\Typer.exe.intermediate.manifest
文件 35074 2012-07-05 16:06 Typer\Debug\Typer.obj
文件 25100288 2012-07-05 12:15 Typer\Debug\Typer.pch
文件 25564 2012-07-05 12:15 Typer\Debug\Typer.res
文件 912384 2012-07-05 17:02 Typer\Debug\vc90.idb
文件 2174976 2012-07-05 17:02 Typer\Debug\vc90.pdb
文件 2513 2012-07-05 15:42 Typer\MainFrm.cpp
文件 834 2012-07-05 10:22 Typer\MainFrm.h
文件 2947 2012-07-05 10:22 Typer\ReadMe.txt
目录 0 2012-07-05 20:18 Typer\res\
文件 481 2012-07-05 10:22 Typer\Resource.h
文件 598 2003-07-24 09:52 Typer\res\Toolbar.bmp
文件 21630 2003-07-24 09:52 Typer\res\Typer.ico
文件 361 2012-07-05 10:22 Typer\res\Typer.rc2
文件 136 2012-07-05 10:22 Typer\stdafx.cpp
文件 1796 2012-07-05 10:22 Typer\stdafx.h
文件 1030 2012-07-05 10:22 Typer\targetver.h
文件 63408 2012-07-05 12:12 Typer\Typer.aps
文件 2587 2012-07-05 12:13 Typer\Typer.cpp
............此处省略4个文件信息
- 上一篇:51单片机C编程100例
- 下一篇:训练SVM分类器 VS2013 C++
相关资源
- MFC实现可编辑Excel文件
- USB2.0接口数据采集卡
- 计算BMP24位真彩色图像PSNR的C++小程序
- 基于VC MFC的数据分析系统
- MFC DLL调用(包含调用和DLL自身源代码
- mfc 串行化的简单使用
- 公交车模拟
- VC读取shapefile文件源码,处理点线面
- MFC函数库手册
- Socket编写的一个基于MFC的聊天程序源
- mfc打开并显示BMP图片
- Programming Windows with MFC随书光盘源代码
- 能随鼠标移动的放大镜
- MultiThread(VS2013 MFC多线程-含源码-含个
- VC++6.0 MFC串口编程上位机程序代码.
- VC6中使用MFC自动化Excel数据写入和图表
- 超市库存管理系统的MFC实现
- 圆检测和方形检测图像处理
- MFC 下写的SVM类
- MFC+OpenGL三维建模与动画显示
- VC++记事本完整源程序
- MFC基于对话框GDI+简单绘图
- MFC编程技巧与范例详解PDF(无水印 带
- 各种Kalman滤波的比较程序——C++/MFC版
- MFC vc++ 银行业务模拟系统
- mfc根据窗口大小自动调整所有控件大
- MFC 自定义位图按钮加文字
- 灰色预测模型资料和程序.rar
- MFC绘制的移动小车,包含了图形的平
- 使用MFC实现真实感图形绘制
评论
共有 条评论