资源简介
基于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的TCP调试助手源码95706
- 基于mfc的多线程文件传输
- MFC数字钟(基于VC6.0)
- VC++MFC小游戏实例教程(实例)+MFC类库
- ChartCtrl控件库(可在VS2019中使用)
- 商品库存管理系统 C++ MFC
- qt texteditor(富文本编辑器)
- qt登录富文本编辑器和文档打印设计
- mfc 调用redis
- MFC视频播放器源码(支持avi/wma/mp3等格
- mfc绘图大全(画直线、矩形、椭圆)
- MFC控件重绘
- hook,捕获所有案件,查找所有窗口,
- (学习)VS2010之MFC入门到精通教程
- MFC文档_视图_框架_模板结构体系深入
- 简单员工管理系统(适合初学MFC)
- MFC五子棋游戏
- MFC UDP编程
- MFC的异步网络通讯应用程序
- C++MFC模块讲解,黑发程序员课程整理
- qt写的记事本
- 一个简单而强大的基于MFC的web server源
- 基于MFC的VC++仿QQ浏览器源码(雏形)
- MFCaccess.rar
- VC++MFC课程设计的学生成绩管理系统
- MFC 日历控件 万年历 Calendar自绘
- CrystalDiskInfo-HDD/SSD硬盘信息,SMART信息
- MFC自定义界面HUI,高效简单,含详细
- 仿射密码-Affine cipher
- c++MFC车牌自动识别定位,只能定位和
评论
共有 条评论