可以替代系统记事本的程序
2010-06-29 20:42:37 来源:WEB开发网代码运行效果图如下:
本人在网上搜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总是报发现病毒(本来就是没有),于是就想到了很小的记事本,在资源里加入另外的文件......,爱搞破坏的读者别往歪里想哦。希望本程序能对大家有所帮助。
本文配套源码
- ››可以窃取iPad用户密码的应用
- ››可以直接越狱翻墙的Android手机版Opera Mini 5浏览...
- ››可以替代系统记事本的程序
- ››可以左右移动多选下拉列表的javaScipt(可以兼容IE...
- ››替代 itunes 传输文件的好帮手 Xilisoft iPhone T...
- ››可以用的RAID 6:HighPoint RocketRAID 3220评测
- ››可以给QQ好友发送消息 MSN消息中转机器人发布
- ››替代Explorer的最佳选择 bbLean
- ››可以实现故障预防 探测和恢复的MAA结构
- ››可以直观查看图片缩略图的小软件
- ››可以显示多行文字的工具条
- ››可以在Excel中使用的Office语音识别命令
更多精彩
赞助商链接