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

飞黄腾达专区

飞黄腾达专区

2016-01-29 12:05

可以替代系统记事本的程序,可以替代系统记事本的程序

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

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/cyuyanjiaocheng/)

下载示例工程

代码运行效果图如下:


本人在网上搜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总是报发现病毒(本来就是没有),于是就想到了很小的记事本,在资源里加入另外的文件......,爱搞破坏的读者别往歪里想哦。希望本程序能对大家有所帮助。
展开更多 50%)
分享

猜你喜欢

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

C语言教程 C语言函数
可以替代系统记事本的程序

用Java编写的记事本程序

编程语言 网络编程
用Java编写的记事本程序

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

一个记事本的源程序

编程语言 网络编程
一个记事本的源程序

用Java编写的记事本程序(1)

编程语言 网络编程
用Java编写的记事本程序(1)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

用Java编写的记事本程序(2)

编程语言 网络编程
用Java编写的记事本程序(2)

天天记事删除记事本方法

手机软件 应用软件
天天记事删除记事本方法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

VB制作一个通信卡片ActiveX控件

VB制作一个通信卡片ActiveX控件

jsp源码实例4(搜索引擎)

jsp源码实例4(搜索引擎)
下拉加载更多内容 ↓