这是学习VC时的一个大作业,超级记事本,突然发现了,传上来供大家学习参考!
一. 功能需求:
1. 能在原有像记事本程序的基础上添加更多功能:
1).能够改变背景颜色。
2).能够改变字体颜色。
3).能够改变字体。
4). 能够对段落进行对齐等。
二. 总体设计计:
首先要的申明的是:本程序继承自CRichEditView。
1.添加“格式(O)”菜单项:
(1) .添加“字体(F)”子菜单。
(2).添加“背景颜色(B)”子菜单。
(3). 添加“字体颜色(T)”子菜单。
2. 添加一个新的工具栏:
(1).增添“加粗”按钮。
(2).增添“斜体”按钮。
(3).增添“下划线”按钮。
(4).增添“左对齐”、“居中”和“右对齐”按钮。
(5).增添“文本颜色”与“背景颜色“按钮。
3.状态栏显示时间:
能够实时显示系统时间。
4.改变应用程序图标:
5. 添加单击右键的弹出式菜单。
三. 详细设计:
1.添加“格式(O)”菜单项:
(1) .添加“字体(F)”子菜单:
添加完菜单后,在视图类中添加其消息响应函数。在此函数中调用通用对话框CFontDialog类,进行字体的改变。
代码如下:
void CMyWordView::OnFormatFont() //设置字体
{
//TODO: Add your command handler code here
CMyWordDoc*pDoc=GetDocument();
ASSERT_VALID(pDoc);
CFontDialogcfd(&pDoc->m_lf,CF_SCREENFONTS|CF_INITTOLOGFONTSTRUCT);
if(cfd.DoModal()==IDOK) //若点击确定,设置字体
{
CHARFORMATcf;
cf.cbSize = sizeof (CHARFORMAT);
cf.dwMask = CFM_FACE | CFM_SIZE;
::lstrcpy (cf.szFaceName, cfd.GetFaceName());
cf.yHeight= cfd.GetSize()*2;
SetCharFormat (cf);
}
}
(2).添加“背景颜色(B)”