当前位置: 首页 > 图文教程 > 开发语言 > VC++ > 可以替代系统记事本的程序

VC++
如何有效地使用对话框
一个定制CFileDialog对话框的实例
XP风格复活节彩蛋的实现
程序界面多模式显示的实现
改变视图单调的背景
使窗体拥有透明效果的API
《电子尺》V1.02程序开发实例
美化你的应用程序的外观界面
个人考勤软件开发实例
使用VC6.0实现窗口的任意分割
如何让一个打开的文档成为活动文档
创建非矩形窗口的简单方法
轻松实现类VC界面
视图的缩放的完整论述
如何获得另一个应用程序窗口中的文本
如何发送命令到文档对象
动画窗口的实现-VC++实例一则
如何在其他程序的窗口上创建按钮并使之能响应
如何在基于对话框的程序中动态设置鼠标指针
扩展COleDropTarget类来支持任意窗口拖放 - 作者:王加宝

VC++ 中的 可以替代系统记事本的程序


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 96 ::
收藏到网摘: n/a

可以替代系统记事本的程序
作者:杨立刚

下载示例工程

代码运行效果图如下:


本人在网上搜VC制作记事本的源代码时,发现没有VC做的,看来不能偷懒,只能自己来做。至于为什么非得自己做个替代系统的记事本,待我做完再说。本人模仿的是Win2K下的记事本。

首先建立基于类CEditView的单文档的工程Notepad,注意在MFC-AppWizard Step-4的Advanced中设定扩展名为txt。去掉工具栏(系统记事本里也没有),菜单按照系统的记事本来设计,并且ID用VC自带的设置,如“复制”ID为ID_EDIT_COPY。自己要加入字体的设置:
向CNotepadeView之中添加CFont类型的成员变量m_Font。为WM_CREATE消息添加映射函数。为记事本视图设置默认字体,代码如下:

CEdit& edit = GetEditCtrl();	//定义指向视图的Cedit控件if (m_Font.m_hObject == NULL){ m_Font.CreatePointFont(120,"Fixedsys");}if (m_Font.m_hObject != NULL)	edit.SetFont (&m_Font);edit.SetTabStops (16);
在格式菜单的字体里,使用通用字体对话框CfontDialog类,代码如下:
void CNotepadeView::OnFormatFont() {	LOGFONT lf;	CFont *font=this->GetEditCtrl().GetFont(); //得到当前字体	if(font==NULL)	//当前无字体,创建默认的字体	{	font =new CFont;	font->CreatePointFont(120,"Fixedsys");	font->GetLogFont(&lf);	delete font;	}	else	{	font->GetLogFont(&lf);	}	CFontDialog cf(&lf);	if(cf.DoModal()==IDOK)	{	this->m_Font.DeleteObject();	this->m_Font.CreateFontIndirect(&lf);	this->SetFont(&this->m_Font);	}}
接下来,就是要系统的记事本下岗,在CNotepadeApp::InitInstance()里修改注册表,关联TXT文件。运行一下,与系统的好像一样哎。剩下的就是做帮助菜单里的关于对话框和图标一些修饰的工作,大家可以参考源程序。
至于本人为什么要替换系统的记事本,主要是我在绑定两个文件的时候(别往歪里想,不含木马),发现金山毒霸2003总是报发现病毒(本来就是没有),于是就想到了很小的记事本,在资源里加入另外的文件......,爱搞破坏的读者别往歪里想哦。希望本程序能对大家有所帮助。