文件地址:d:\notes\bookmark.html
打开vc++→文件→新建→工程→MFC AppWizard[exe]→工程名称:records;
如上图所示,确定→勾选“基本对话框”→下一步→下一步→确定;
控件右击→class wizard→Member variables→选中控件ID→add variable→变量名、类别;
命令控件双击→OK→添加函数代码
void CRecordsDlg::OnButton1()
{
CString m_link;
UpdateData(1);
CEdit *edit3=(CEdit*)GetDlgItem(IDC_RICHEDIT3);
edit3->GetWindowText(m_link);
m_link.TrimLeft();
m_link.TrimRight();
CString m_title;
UpdateData(1);
CEdit *edit2=(CEdit*)GetDlgItem(IDC_RICHEDIT2);
edit2->GetWindowText(m_title);
m_title.TrimLeft();
m_title.TrimRight();
m_address.TrimLeft();
m_address.TrimRight();
CString http="http:" ;
CString https="https:" ;
int indexn=m_address.Find(http);
int indexn2=m_address.Find(https);
bool flagb=FALSE;
if((indexn >=0)||(indexn2 >=0))
{
flagb=TRUE;
}
FILE *fp;
if((fp=fopen(m_fname,"a+"))==NULL)
{
printf("\n 文件notes.html不能打开!\n");
exit(0);
}
if(m_address=="" && m_link=="")
{
m_status="链接href(如http://www.baidu.com)、链接文本linkedText不能为空!";
m_address=="" ;
edit3->SetWindowText("");
GetDlgItem(IDC_RICHEDIT1)->SetFocus();
}
else
{
if (m_address !="")
{
if (m_link !="")
{
if(flagb)
{
fputs("<li><a href=\"",fp);
fputs(m_address,fp);
fputs("\"",fp);
fputs("title=\"",fp);
fputs(m_title,fp);
fputs("\">",fp);
fputs(m_link,fp);
fputs("</a></li>",fp);
fputs("\n\r",fp);
m_address="" ;
edit3->SetWindowText("");
edit2->SetWindowText("");
m_status="链接已插入" + m_fname ;
GetDlgItem(IDC_RICHEDIT1)->SetFocus();
}
else
{
m_status="href请以http://或https://开头!" ;
m_address="" ;
}
}
else
{
m_status="链接文本linkedText不能为空!";
GetDlgItem(IDC_RICHEDIT3)->SetFocus();
}
}
else
{
m_status="链接address不能不空!";
GetDlgItem(IDC_RICHEDIT1)->SetFocus();
}
}
UpdateData(0);
fclose(fp);
}
组建→执行,即可得到Records.exe文件;
将网页地址、提示文本、链接文本复制到上述文本框内,点击插入链接按钮即可在d:\notes\bookmark.html内自动添加链接;
7.1 VC++6界面简单说明
工作区切换class、Resource、File三个选项卡,点击相应的文件,文档区显示相应文件的内容;
类class;
资源Resorce:主要是图形界面文件,如菜单、工具栏图标、控件等;
文件File:主要是头文件和CPP文件。控件对应数据和方法,类实例化的对象及其所对应的数据和方法;
7.2 编辑框和富文本编辑框rich edit
edit type | category | variable type | remark |
编辑框 | value | CString\int | 定义的控件变量可以直接赋值; |
编辑框 | control | Cedit | 可以调用CEdit类中的一些函数;定义的变量不能直接赋值; |
rich edit | value | CString\int | 定义的控件变量可以直接赋值; |
rich edit | Control | CRichEidtCtrl | 可以调用CEdit类中的一些函数;定义的变量不能直接赋值; |
7.3 富文本编辑框
在mfc中使用工具栏里的RichEdit 控件时,应该在程序初始化时加入AfxInitRichEdit(),或者AfxInitRichEdit2(),否则的话程序会起不来.也没有任何错误信息。这俩函数是加载 Riched20.dll(Riched32.dll)的.
富编辑框ID:IDC_EDIT2
富编辑框变量类型:CRichEditCtrl,名称:m_link
//必须是CRichEditCtrl数据类型,如果是CString类型,不能用下面的方面清空和获取文本;
CEdit *edit1=(CEdit*)GetDlgItem(IDC_EDIT2);edit1->GetWindowText(m_text);
edit1->SetWindowText("");
7.4 控件内容与控件变量的数据交换
UpdateData(1):将控件上的数据读取到变量中;
UpdateData(0):将变量中的数据写到控件中;
-End-
超链接就是你在网页上点一个按钮,它会自动跳转到其他页面或自动进行下载。
超链接的标签是 a 标签 ,一般的超链接语法是这样的:<a href属性=“链接”>按钮名称,例如:
注意事项:添加超链接时,被链接的文件类型如果可以被浏览器识别则自动打开,如果不能被识别,会直接下载。
1、外部跳转:外部跳转就是类似上面那个,点击后跳转到其他页面。
<body>
<!--超链接标签-->
<a href="https://www.baidu.com">点击跳转到百度</a>
</body>
2、内部跳转:内部跳转的意思就是,点击完后跳转到这个网页目录下的某个文件,用法如下:
<body>
<!--内部跳转:假设要跳转到当前路径下的 test.html 文件,可以这样写-->
<a href="test.html">内部html文件</a>
<!--或者这样写-->
<a href="d:/html/test.html">内部html文件</a>
</body>
3、下载超链接:这个意思就是点击按钮后开始下载,下载就是跳转到某个文件上,例如:
篇介绍了html 中文本格式及段落等标签,今天说下列表,什么是列表?它就是一种数据排列方式,以条列式的方式显示文本,使读者一目了然。列表主要有以下三种:
无序列表在每行开始位置显示一个符号,语法如下:
<html>
<body>
<h4>一个无序列表:</h4>
<ul>
<li>咖啡</li>
<li>茶</li>
<li>牛奶</li>
</ul>
</body>
</html>
显示效果:
无序列表的符号可以通过在ul 标签上设置 type 属性显示不同的符号,比如:
1、disc —— 实心圆点 (默认类型)
2、circle —— 空心圆圈
3、square —— 实心方块
实例代码:
<html>
<body>
<h4>一个无序列表:</h4>
<ul type="disc">
<li>咖啡</li>
<li>茶</li>
<li>牛奶</li>
</ul>
<h4>一个无序列表:</h4>
<ul type="circle">
<li>咖啡</li>
<li>茶</li>
<li>牛奶</li>
</ul>
<h4>一个无序列表:</h4>
<ul type="square">
<li>咖啡</li>
<li>茶</li>
<li>牛奶</li>
</ul>
</body>
显示效果:
有序列表使用数字或字母符号排列,表示文本按一定顺序显示,语法如下:
<!DOCTYPE html>
<html>
<body>
<ol>
<li>咖啡</li>
<li>牛奶</li>
<li>茶</li>
</ol>
</body>
</html>
效果如下:
同无序列表一样,在ol上通过type 属性设置使用那种符号表示顺序,有以下几种:
1、1,表示数字 1、2、3..... (默认数字)
2、a,表示小写字母 a、b、c....
3、A,表示大写字母 A、B、C ....
4、i,表示小写罗马字母 i、ii、iii、iv....
5、I,表示大写罗马字母 I、II、III、IV....
显示效果如下:
html代码:
<!DOCTYPE html>
<html>
<body>
数字
<ol type="1">
<li>咖啡</li>
<li>牛奶</li>
<li>茶</li>
</ol>
小写字母
<ol type="a">
<li>咖啡</li>
<li>牛奶</li>
<li>茶</li>
</ol>
大写字母
<ol type="A">
<li>咖啡</li>
<li>牛奶</li>
<li>茶</li>
</ol>
小写罗马字母
<ol type="i">
<li>咖啡</li>
<li>牛奶</li>
<li>茶</li>
</ol>
大写罗马字母
<ol type="I">
<li>咖啡</li>
<li>牛奶</li>
<li>茶</li>
</ol>
</body>
</html>
有序列表还可以通过start 属性设置起始数组,如下:
<ol start="3">
<li>咖啡</li>
<li>牛奶</li>
<li>茶</li>
</ol>
显示效果:
不同以上2种列表,定义列表主要用来解释名词,由2种层次列表显示,第一层是被解释的名词,第二层是详细地解释文字,语法如下:
<html>
<body>
<h2>一个定义列表:</h2>
<dl>
<dt>计算机</dt>
<dd>用来计算的仪器 ... ...</dd>
<dt>显示器</dt>
<dd>以视觉方式显示信息的装置 ... ...</dd>
</dl>
</body>
</html>
显示效果:
第一行<dt>是要解释的名词,第二行标签<dd>是解释文本,会自动缩进。
以上三种列表是可以嵌套使用的,看如下示例:
<html>
<body>
<h4>一个嵌套列表:</h4>
<ul>
<li>咖啡</li>
<li>茶
<ul>
<li>红茶</li>
<li>绿茶</li>
</ul>
</li>
<li>牛奶</li>
</ul>
</body>
</html>
效果:
每嵌套一层,它的符号是不一样的,你可以试试再嵌套一层看看效果。
当然,不同列表类型也可互相嵌套,根据显示效果可以自由使用,一般建议不要这样使用,不同类型列表显示在一块不是很美观。如下面无序列表中嵌套有序列表:
<html>
<body>
<h4>一个嵌套列表:</h4>
<ul>
<li>咖啡</li>
<li>茶
<ul>
<li>红茶</li>
<li>绿茶
<ol>
<li>中国茶</li>
<li>非洲茶</li>
</ol>
</li>
</ul>
</li>
<li>牛奶</li>
</ul>
</body>
</html>
效果如下:
列表是网页制作中经常会使用的标签,比如在制作网页导航栏菜单时会经常用到ul列表,以后会讲如何通过ul标签制作一个下拉菜单,感谢您阅读及关注,祝你学习愉快。
上篇:前端入门——html 文字格式、标题与段落
下篇:前端入门——html 超链接
*请认真填写需求信息,我们会在24小时内与您取得联系。