<em></em><i></i><dfn></dfn>有什么区别? 我今天用文字测试一下,感觉效果上没啥

文档分类:
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,
下载前请先预览,预览内容跟原文是一样的,在线预览图片经过高度压缩,下载原文更清晰。
您的浏览器不支持进度条
下载文档到电脑,查找使用更方便
还剩?页未读,继续阅读
播放器加载中,请稍候...
该用户其他文档
下载所得到的文件列表HTML语法教学.pdf
文档介绍:
HTML语法教学 Page 1 of 26
HTML 4.0 语法教学
■认识HTML语法(标签快速导览)
◆网页架构◆表格标签
◆分隔标签◆序列标签
◆排版标签◆表单标签
◆字体标签◆框架标签
◆文字标签◆其他技巧
◆影像标签
◆背景标签
◆连结标签
■细说HTML标签
在HTML语法中,大致上可以分为: ( 节录自‘网站建置百宝箱’)
1. 网页架构:主要网页主架构的介绍
2. 分隔标签:也就是所谓的水平线
3. 排版标签:针对标签的属性,可做适当的版面编排
4. 字体标签:教导您设定文字的字体。
5. 文字标签:教导您设定文字的颜色、行距、变化.....等等。
6. 影像标签:教导您如何在网页中,植入图像。
7. 背景标签:教导您如何设定背景颜色或是背景图像。
8. 连结标签:教导您如何设定超连结,以及开视窗的条件。
9. 表格标签:教导您如何在网页中运用表格。
10. 序列标签:教导您如何设定文字序列或图形序列。
11. 表单标签:教导您如何制作可填写用的表单。
12. 框架标签:可让同一个视窗由多个网页一起组成。
13. 其他技巧:让您的整个网页背景可以让您设定为图片或是声音。
4.1 网页架构&回细说索引&
&TITLE&网页制作教学&/TITLE&
BODY之间则为主要语法所在,也是网页的主要呈现部分。
【标签解说】
以上看到的就是一篇最简单架构的网页。没错,网页其实就是一堆标签(所谓标签就是指被&&包起来的语
法)集合起来的,透过浏览器的消化整理,就便成了美仑美奂的网页了。
简单而言,通常一份完整的网页包含了二个部份:抬头(HEAD)、文件本体(BODY)。也就是各位在上面所
file://E:\My Documents\HTML语法教学.htm
HTML语法教学 Page 2 of 26
看到的&HEAD&&/HEAD&以及&BODY&&/BODY&。
在抬头的部份&HEAD&&/HEAD&中,有另一组标签&TITLE&&/TITLE&。打在&TITLE&&/TITLE&这里面的文字会出
现在浏览器视窗最上头蓝色部份里,当作一篇网页的主题。
您可能会发现,为什么我一直没提到&HTML&&/HTML&这一组标签,嗯!因为它可有可无。这一组标签是告诉
浏览器说:我是一份HTML文件喔!也就是说它是一个网页的格式啦!通常都包在网页的最上下两端,将所有
的原始码都包起来。
4.2 分隔标签&回细说索引&
【文字上的分隔标签】
或许你已经发现这个问题了:天啊!我不是在记事本里排版排得很漂亮,为何透过浏览器看起来一切都走了样?对啊!别太讶异,在
网页的编排里,并不像汉书或WORD一样,只要拼命按Enter键或空白键,便能完成分段或分行,因为,HTML语言是不认识我们所谓的
Enter键或空白键,所以不管您按了多少次的空白或Enter,浏览器都会当作没看见啦!
1. 使用方法:强制断行标签&br&、强制分段标签&p&
2. 标签解说:我们在写文章时,有时候在特定的地方会强迫断行(&br&),或是在写完某一段的时候便会分段(&p&),写网页
也一样,而且更需要断行及分段的功能,以免整个网页看起来乱糟糟的。
3. 使用范例:
原始码呈现结果
这是一个断行的范例
这是一个断行的范例&br&看出来了吗?
看出来了吗?
这是一个分段的范例
这是一个分段的范例&p&基本上他会比断
行还多空出一行
基本上分段会比断行还多空出一行
【分隔线标签】
1. 使用方法:上一段文字内容&hr&下一段文字内容
2. 标签解说:利用&hr&这个标签便可产生一条横分隔线。另外,其有些属性分别说明如下:
3. 使用范例:
一般用法尚未加任何属性。
原始码普通分隔线&hr&
普通分隔线
颜色属性用法:&hr color=&颜色码或颜色名称&&
原始码橘色分隔线&hr color=&#ff8000&&
橘色分隔线
用法:&hr width=&宽度&&,其单位为px(像素),宽度亦可用百分比
来作设定,如50%即意为宽度占萤幕50%。
原始码宽度为240px的分隔线&hr width=&240&&
file://E:\My Documents\HTML语法教学.htm
HTML语法教学 Page 3 of 26
宽度为240px分隔线
厚度属性用法:&hr size=&厚度&&
原始码厚度为5的分隔线&hr size=&5&&
厚度为5分隔线
用法:&hr align=&水平对齐位置&&,其设定值有三个,也就是置左
align=&left&、置中align=&center&、置右align=&right&
原始码靠右的分隔线&hr align=&right&&
靠右的分隔线
用法:&hr noshade&,无设定值,只要将 noshade 加入即可,通常会
配合颜色设定,效果较佳。
原始码实心分隔线(无阴影)&hr noshade&
实心分隔线(无阴影)
4.3 排版标签&回细说索引&
【文字置左、置中、置右】
1. 使用方法:老实说,刚刚我们学过的分段标签&p&再加上一些简单的属性设定,就可以让其整个文字段落置左、置中或置右
了,就如下表所示:
原始码呈现结果
&p align=&left&&文字靠左&/p& 文字靠左
&p align=&center&&文字置中&/p& 文字置中
&p align=&right&&文字靠右&/p& 文字靠右
标签解说:嗯!秘诀就在于“align=对齐位置”而已啦!align是分段标签&p&的属性之一,这个属性将来会常常在不同标签
中看到,它的功能是专门在设定“水平对齐位置”,其常见的设定值有三个,也就是置左(align=&left&)、置中
(align=&center&)、置右(align=&right&)。
【置中标签】
1. 使用方法:&center&这是置中&/center&
2. 标签解说:这个标签是最常用到的标签了,除了文字,对于图片、表格,任何可以显现在网页上的东西都可以置中喔!
3. 使用范例:
原始码呈现结果
&center&这是最中间&/center& 这1
内容来自淘豆网转载请标明出处.
文件大小:0 KB
下载次数:今天看啥 热点:
CRichEdit控件操作相关& 转载&,crichedit控件一般性问题
1.&&& 代码编译通过了,运行后RichEdit控件不显示,在InitInstance中添加
BOOL CWinApp::InitInstance ()
AfxInitRichEdit(); - RichEdit 1.0
或 AfxInitRichEdit2(); - RichEdit 2.0
2.&&& 升级默认的RichEdit版本,默认的版本有BUG,在InitInstance中添加
BOOL CWinApp::InitInstance ()
LoadLibrary("RICHED20.DLL");
FreeLibrary();
如果是CRichEditView基类的话,可用如下消息机制:
BOOL CRichEditView::PreCreateWindow(CREATESTRUCT& cs)
if (LoadLibraryA("RICHED20.DLL") == NULL)
AfxMessageBox(_T("Fail to load /"riched20.dll/"."),MB_OK |
MB_ICONERROR);
PostMessage(WM_QUIT,0,0);
return FALSE;
m_strClass = RICHEDIT_CLASSA;&
return CRichEditView::PreCreateWindow(cs);
3.&&& 在RichEdit控件的输入框中最后追加一行
CRichEditCtrl.SetSel(-1, -1);
CRichEditCtrl.ReplaceSel((LPCTSTR)str);
4.&&& 限制RichEdit控件的字数
CRichEditCtrl.LimitText(long nChars)
5.&&& 设置RichEdit控件的换行切换
如果是CRichEditView基类的话,可用如下消息机制:
BOOL CRichEditView::OnInitialUpdate()
m_nWordWrap = WrapN
WrapChanged();&
如果是在Dialog,可使用SetTargetDevice,并在RichEdit的属性里面加上want return
CRichEditCtrl.SetTargetDevice(m_dcTarget, GetPrintWidth());&
WrapChanged实际上也是调用
CRichEditCtrl.SetTargetDevice(NULL, 0); //m_nWordWrap == WrapToWindow
CRichEditCtrl.SetTargetDevice(NULL, 1); //m_nWordWrap == WrapNone
CRichEditCtrl.SetTargetDevice(NULL, 2);// m_nWordWrap == WrapToTargetDevice
6.&&& 设置RichEdit控件不带格式的数据粘贴
CRichEditCtrl.PasteSpecial(CF_TEXT);
7.&&& 设置RichEdit控件的滚动条自动随输入滚动到最后一行
int nFirstVisible = CRichEditCtrl.GetFirstVisibleLine();
if (nFirstVisible & 0)
CRichEditCtrl.LineScroll(-nFirstVisible, 0);
或CRichEditCtrl.PostMessage(WM_VSCROLL, SB_BOTTOM, 0);
8.设置RichEdit控件的撤销输入次数(只能用在RICHED20以上)
SendMessage(EM_SETTEXTMODE, TM_MULTILEVELUNDO, 0);
SendMessage(EM_SETUNDOLIMIT, 100, 0);
TM_MULTILEVELUNDO 支持多取消(默认值),可通过EM_SETUNDOLIMIT设置最大次数
9.设置RichEdit控件的OnChange事件
EM_SETEVENTMASK 设置 ENM_CHANGE&
long lMask = GetEventMask();
lMask |= ENM_CHANGE;
lMask &= ~ENM_PROTECTED;
SetEventMask(lMask);
10.设置RichEdit控件的只读属性
CRichEditCtrl::SetReadOnly(BOOL bReadOnly = TRUE );
通过设置PROTECTED实现选中的文本只读,参见如下文章:
/Cpp/controls/richedit/article.php/c2401/
1. 设置RichEdit控件的显示字体
CHARFORMAT
ZeroMemory(&cf, sizeof(CHARFORMAT));
cf.cbSize = sizeof(CHARFORMAT);
cf.dwMask|=CFM_BOLD;
cf.dwEffects|=CFE_BOLD; //粗体,取消用cf.dwEffects&=~CFE_BOLD;
cf.dwMask|=CFM_ITALIC;
cf.dwEffects|=CFE_ITALIC; //斜体,取消用cf.dwEffects&=~CFE_ITALIC;
cf.dwMask|=CFM_UNDERLINE;
cf.dwEffects|=CFE_UNDERLINE; //斜体,取消用cf.dwEffects&=~CFE_UNDERLINE;
cf.dwMask|=CFM_COLOR;
cf.crTextColor = RGB(255,0,0); //设置颜色
cf.dwMask|=CFM_SIZE;
cf.yHeight =200; //设置高度
cf.dwMask|=CFM_FACE;
strcpy(cf.szFaceName ,_T("隶书")); //设置字体
CRichEditCtrl.SetSelectionCharFormat(cf);
2.设置RichEdit控件的显示字体的行间距(只能用在RICHED20以上)
PARAFORMAT2
pf.cbSize = sizeof(PARAFORMAT2);
pf.dwMask = PFM_NUMBERING | PFM_OFFSET;
pf.wNumbering = PFN_BULLET; //注意PFM_NUMBERING&
pf.dxOffset = 10;
VERIFY(SetParaFormat(pf));&
常用的dwMask有如下列表:
PFM_NUMBERING 成员 wNumbering 才起作用
1 项目符号,默认用PFN_BULLET.
2 使用阿拉伯数字 (1, 2, 3, ...).
3 使用小写字母 (a, b, c, ...).
4 使用大写字母 (A, B, C, ...).
5 使用小写罗马数字 (i, ii, iii, ...).
6 使用大写罗马数字 (I, II, III, ...).
7 自定义,字符见成员 wNumberingStart.
PFM_OFFSET 成员 dxOffset 才起作用,缩进,单位twips
PFM_STARTINDENT 成员 dxStartIndent 才起作用,首行缩进
PFM_SPACEAFTER 成员 dySpaceAfter 才起作用,段间距
PFM_LINESPACING 成员 dyLineSpacing 才起作用,行间距
3.设置RichEdit控件的透明背景(只能用在RICHED20以上)
long style = ::GetWindowLong(GetSafeHwnd(), GWL_EXSTYLE);
style &= WS_EX_TRANSPARENT;
::SetWindowLong(GetSafeHwnd(), GWL_EXSTYLE, style);
或 CreateEx(),然后把WS_EX_TRANSPARENT样式加上
4.获取或者写入RichEdit控件的内容
?&&&&&&&& GetWindowText
?&&&&&&&& 使用EM_GETTEXTEX
gt.cb = 200;
gt.flags = GT_DEFAULT;
gt.codepage = CP_ACP ;
gt.lpDefaultChar = NULL;
gt.lpUsedDefChar = NULL;
SendMessage(EM_GETTEXTEX,(WPARAM)&,(LPARAM)text);
?&&&&&&&& StreamOut(主要用于RTF等格式输出)
static DWORD CALLBACK;
MyStreamOutCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb)
CFile* pFile = (CFile*) dwC
pFile-&Write(pbBuff, cb);
CFile cFile(TEXT("myfile.rtf"), CFile::modeCreate|CFile::modeWrite);
EDITSTREAM
es.dwCookie = (DWORD) &cF //设置用例参数,以便回调函数调用
es.pfnCallback = MyStreamOutC
pmyRichEditCtrl-&StreamOut(SF_RTF, es);
读入可以此类推,SetWindowText, EM_SETTEXTEX, StreamIn
5.查找RichEdit控件中的字符串
FINDTEXTEX
ft.chrg.cpMin = 0;
ft.chrg.cpMax = -1;
ft.lpstrText = "|";
long lPos = FindText(0, &ft);
如果要继续查找,修改cpMin,如
int nCount = 0;
long lPos = GetRichEditCtrl().FindText(0, &ft);
if( -1 == lPos)
ft.chrg.cpMin = lPos + strlen(ft.lpstrText);
}while(TRUE);
6. 以Html格式保存RichEdit控件中的内容
临时做法可先转为RTF格式,再通过RTF-to-HTML Converter,参考如下文章:
/Cpp/controls/richedit/conversions/article.php/c5377/
8.&&& 重载OnProtected函数以得到RichEdit对应的消息,如粘贴等
void CRichEditorView::OnProtected(NMHDR* pNMHDR, LRESULT* pResult)
ENPROTECTED* pEP = (ENPROTECTED*)pNMHDR;
switch (pEP-&msg)
case WM_KEYDOWN: //按键,判断pEP-&wParam
case WM_PASTE: //粘贴
case WM_CUT: //剪切
case EM_SETCHARFORMAT:
*pResult = FALSE;
1. 设置RichEdit控件的链接功能(只能用在RICHED20以上)
LoadLibrary(_T("Riched20.dll"));
?&&&&&&&& 创建RichEdit2.0控件
CreateEx(0, _T("RichEdit20A"), NULL, WS_CHILD|WS_VISIBLE|WS_VSCROLL|WS_TABSTOP
|ES_READONLY|ES_WANTRETURN|ES_MULTILINE,
rect.left, rect.top, cx, cy, pParentWnd-&m_hWnd, (HMENU)nID, NULL);
?&&&&&&&& 设置选中的文字为链接显示
CHARFORMAT2 cf2;
ZeroMemory(&cf2, sizeof(CHARFORMAT2));//
cf2.cbSize = sizeof(CHARFORMAT2);
cf2.dwMask = CFM_LINK;
cf2.dwEffects |= CFE_LINK;
m_cRichEdit.SendMessage(EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cf2);
?&&&&&&&& 支持链接的点击响应
m_cRichEdit.SetEventMask(ENM_LINK);
?&&&&&&&& 响应链接的点击EN_LINK
BEGIN_MESSAGE_MAP(CMyRichEdit, CRichEditCtrl)
ON_NOTIFY_REFLECT(EN_LINK, OnURL)
END_MESSAGE_MAP()
void CMyRichEdit::OnURLClick(NMHDR *pNmhdr, LRESULT *pResult)
TCHAR LinkChar[512];
ENLINK *pLink = (ENLINK *)pN
if (pLink-&msg == WM_LBUTTONUP)
SetSel(penLink-&chrg); //这是链接的文字范围
long Res = GetSelText((char *)LinkChar); //这是链接文字
?&&&&&&&& 自动识别链接
UINT nMask = SendDlgItemMessage(IDC_RICHEDIT_MESSAGE, EM_GETEVENTMASK, 0, 0);
SendDlgItemMessage(IDC_RICHEDIT_MESSAGE, EM_SETEVENTMASK, 0, nMask | NM_LINK);
SendDlgItemMessage(IDC_RICHEDIT_MESSAGE, EM_AUTOURLDETECT, TRUE, 0);
BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
NMHDR* pNmHdr = (NMHDR *)lP
if(pNmHdr-&idFrom == IDC_RICHEDIT_MESSAGE && pNmHdr-&code ==
ENLINK *pLink = (ENLINK *)lP
if (pLink-&msg == WM_LBUTTONDOWN)
SendDlgItemMessage(IDC_RICHEDIT_MESSAGE, EM_EXSETSEL, 0,
(LPARAM)&(pLink-&chrg));
ShellExecute(GetSafeHwnd(), "open", m_wndREMessage.GetSelText(), 0,
0, SW_SHOWNORMAL);
return CDialog::OnNotify(wParam, lParam, pResult);
2.在RichEdit中插入位图
?&&&&&&&& 参考如下文章:
/Cpp/controls/richedit/article.php/c2417/
/Cpp/controls/richedit/article.php/c5383/
?&&&&&&&& 自定义在RichEdit中插入对象的图标
/user3/jiangsheng/blog/1319738.html
/richedit/richeditrc.html
3.在RichEdit显示GIF动画
?&&&&&&&& 常用的是通过QQ的imageole.dll(也有用Gif89.dll的)
http://www.xiaozhou.net/cooldog/blogview.asp?logID=82
/richedit/AnimatedEmoticon.asp
?&&&&&&&& 在richedit控件中插入动态GIF(Native C++版)
/jiangsheng/archive//41209.aspx
4.IRichEditOleCallback的使用
http://61.186.252.131/Expert/topic/905/905844.xml?temp=.8379022
5.类似MSN信息发送框的制作(上)
/document/viewdoc/?id=1087
内容包含:实现右键菜单,图片插入,读取/写入RTF格式字符串
6.自定义RichEdit控件
/document/viewdoc/?id=328
内容包含:鼠标右键消息,消息映射,字体变换
转载】MFC中的CEdit与CRichEdit使用技巧 15:41VC中在对话框上使用Rich Edit控件前一定要用AfxInitRichEdit()初
始化RichEdit环境.
--------------------------------------------------------------------------------
1.设置edit只读属性
&&& 方法一:
&&&&&&&&&&&&&&&
m_edit1.SetReadOnly(TRUE);
&&& 方法二:
&&&&&&&&&&&&&&&
::SendMessage(m_edit1.m_hWnd, EM_SETREADONLY, TRUE, 0);
--------------------------------------------------------------------------------
2.判断edit中光标状态并得到选中内容(richedit同样适用)
int nStart, nE
&&&&&&& CString strT
m_edit1.GetSel(nStart, nEnd);
&&&&&&& if(nStart == nEnd)
&&&&&&&&&&&
strTemp.Format(_T("光标在%d"), nStart);
&&&&&&&&&&&
AfxMessageBox(strTemp);
&&&&&&& else
&&&&&&&&&&& //得到edit选中的内容&&&&&
&&&&&&&&&&&
m_edit1.GetWindowText(strTemp);
&&&&&&&&&&& strTemp =
strTemp.Mid(nStart) - strTemp.Mid(nEnd);
&&&&&&&&&&&
AfxMessageBox(strTemp);&
&&& 注:GetSel后,如果nStart和nEnd,表明光标处于某个位置(直观来看就是光标在闪动);
&&&&&&&&&&&& 如果nStart和nEnd不相等,表明用户在edit中选中了一段内容。
--------------------------------------------------------------------------------
3.在edit最后添加字符串
&&&&&&& m_edit1.SetSel(-1, -1);
&&&&&&& m_edit1.ReplaceSel(str);
--------------------------------------------------------------------------------
4.随输入自动滚动到最后一行(richedit同样适用)
&&& 方法一:(摘自msdn)
&&&&&&& // The pointer to my edit.
&&&&&&& extern CEdit* pmyE
&&&&&&& int nFirstVisible =
pmyEdit-&GetFirstVisibleLine();
// Scroll the edit control so that the first visible line
&&&&&&& // is the first line of text.
&&&&&&& if (nFirstVisible & 0)
&&&&&&&&&&&
pmyEdit-&LineScroll(-nFirstVisible, 0);
&&& 方法二:
&&&&&&& m_richedit.PostMessage(WM_VSCROLL,
SB_BOTTOM, 0);
--------------------------------------------------------------------------------
5.如何限制edit输入指定字符
&& 可以从CEdit派生一个类,添加WM_CHAR消息映射。下面一个例子实现了限定输入16进制字符的功能。
CMyHexEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)&
&&&&&&& if ( (nChar &= '0' &&
nChar &= '9') ||&
&&&&&&&&&&&& (nChar
&= 'a' && nChar &= 'f') ||&
&&&&&&&& (nChar &= 'A' &&
nChar &= 'F') ||&
&&&&&&&&&&&&&
nChar == VK_BACK ||&
&&&&&&&&&&&&&
nChar == VK_DELETE)&&& //msdn的virtual key
&&&&&&&&&&&
CEdit::OnChar(nChar, nRepCnt, nFlags);&
&&&&&&& }&&&&
--------------------------------------------------------------------------------
6.如何使用richedit
&&& 添加AfxInitRichEdit();
&&&&&& CxxxApp::InitInstance()
&&&&&&&&&&&&
AfxInitRichEdit();
&&&&&&&&& .............
&& AfxInitRichEdit()功能:装载 RichEdit 1.0 Control (RICHED32.DLL).
--------------------------------------------------------------------------------
7.如何使用richedit2.0 or richedit3.0
&&& 使用原因:由于RichEdit2.0A自动为宽字符(WideChar),所以它可以解决中文乱码以及一些汉字问题
&&& 方法一:(msdn上的做法,适用于用VC.NET及以后版本创建的工程)
&&&&&&&&&&& To update
rich edit controls in existing Visual C++ applications to version 2.0,
&&&&&&&&&&& open the .RC
file as text, change the class name of each rich edit control from&&
"RICHEDIT" to
"RichEdit20a".&
&&&&&&&&&&& Then replace
the call to AfxInitRichEdit with AfxInitRichEdit2.
&&& 方法二:以对话框为例:
&&&&&& (1)&&& 增加一全局变量 HMODULE hM
&&&&&& (2)&&& 在CxxxApp::InitInstance()中添加一句hMod =
LoadLibrary(_T("riched20.dll"));
&&&&&&&&&&& 在CxxxApp::ExitInstance()中添加一句FreeLibrary(hMod);
&&&&&& (3)&&& 在对话框上放一个richedit,文本方式打开.rc文件修改该richedit控件的类名"RICHEDIT" to
"RichEdit20a".
&&&&&& (4)&&& 在对话框头文件添加 CRichEditCtrl m_
&&&&&&&&&&& 在OnInitDialog中添加
m_richedit.SubclassDlgItem(IDC_RICHEDIT1, this);
--------------------------------------------------------------------------------
8.改变richedit指定区域的颜色及字体
CHARFORMAT
&&&&&&& ZeroMemory(&cf,
sizeof(CHARFORMAT));
&&&&&&& cf.cbSize = sizeof(CHARFORMAT);
&&&&&&& cf.dwMask = CFM_BOLD | CFM_COLOR |
CFM_FACE |
&&&&&&&&&&&&&&&&&&&&&&&&&&&
CFM_ITALIC | CFM_SIZE | CFM_UNDERLINE;
&&&&&&& cf.dwEffects = 0;
&&&&&&& cf.yHeight = 12*12;//文字高度
&&&&&&& cf.crTextColor = RGB(200, 100, 255);
//文字颜色
&&&&&&& strcpy(cf.szFaceName ,_T("隶书"));//设置字体
&&&&&&& m_richedit1.SetSel(1, 5); //设置处理区域
&&&&&&& m_richedit1.SetSelectionCharFormat(cf);
--------------------------------------------------------------------------------
9.设置行间距(只适用于richedit2.0)
PARAFORMAT2
&&&&&&& pf2.cbSize = sizeof(PARAFORMAT2);
&&&&&&& pf2.dwMask = PFM_LINESPACING |
PFM_SPACEAFTER;
&&&&&&& pf2.dyLineSpacing = 200;
&&&&&&& pf2.bLineSpacingRule = 4;
&&&&&&& m_richedit.SetParaFormat(pf2);
--------------------------------------------------------------------------------
10.richedit插入位图
Q220844:How to insert a bitmap into an RTF document
using the RichEdit control in Visual C++ 6.0
/default.aspx?scid=en-220844
/Cpp/controls/richedit/article.php/c2417/
/Cpp/controls/richedit/article.php/c5383/
--------------------------------------------------------------------------------
11.richedit插入gif动画
/richedit/AnimatedEmoticon.asp
--------------------------------------------------------------------------------
12.richedit嵌入ole对象
/kb/141549/en-us
--------------------------------------------------------------------------------
13.使richedit选中内容只读
/cpp/controls/richedit/article.php/c2401/
--------------------------------------------------------------------------------
14.打印richedit
/MFC/RichEdit3.htm
--------------------------------------------------------------------------------
15.richeidt用于聊天消息窗口
/document/viewdoc/?id=1087
/richedit/chatrichedit.asp
/Cpp/controls/richedit/article.php/c2395/
--------------------------------------------------------------------------------
16.解决richedit的EN_SETFOCUS和EN_KILLFOCUS无响应的问题
/kb/181664/en-us
--------------------------------------------------------------------------------
17.richedit拼写检查
/com/AutoSpellCheck.asp
--------------------------------------------------------------------------------
18.改变edit背景色
Q117778:How to change the background color of an
MFC edit control
/kb/117778/en-us
--------------------------------------------------------------------------------
19.当edit控件的父窗口属性是带标题栏WS_CAPTION和子窗口WS_CHILD时,不能设置焦点SetFocus
Q230587:PRB: Can't Set Focus to an Edit Control
When its Parent Is an Inactive Captioned Child Window
/kb/230587/en-us
--------------------------------------------------------------------------------
20. 在Edit中回车时,会退出对话框
选中Edit的风格Want Return。
MSDN的解释如下:
ES_WANTRETURN&&& Specifies that a carriage return be inserted
when the user presses the ENTER key while entering
text into a multiple-line edit control
in a dialog box. Without this style, pressing the ENTER key has the same
effect as pressing the dialog box's
default pushbutton. This style has no effect on a single-line edit control.
--------------------------------------------------------------------------------
21. 动态创建的edit没有边框的问题
&&& m_edit.Create(....);
&&& m_edit.ModifyStyleEx(0, WS_EX_CLIENTEDGE, SWP_DRAWFRAME);
--------------------------------------------------------------------------------
22. 一个能显示RTF,ole(包括gif, wmv,excel ,ppt)的例子
/richedit/COleRichEditCtrl.asp
http://blog.csdn.net/lixiaosan/archive//652795.aspx
Environment: VC6 SP4, 2000.
Follow these 10 easy steps to build the
OutLookRichEdit control:
Insert a rich edit control into the
Call AfxInitRichEdit() in the InitInstance of the App class or in InitDialog.&
If it does not exist, copy OutLookRichEdit.cpp and OutLookRichEdit.h to the
project directory.&
Click the menu choice Project-Add to Project-Files and select the above-copied
files to add the wrapper class to
your project.&
Import the hand cursor into the resource and rename it "IDC_LINK".&
Use Classwizard to add a member variable of the rich edit control
(CRichEditCtrl).&
Include the OutLookRichEdit.h file in the dialog's header file and change the
declaration of rich edit member
variable, as in&
CRichEditCtrl&&& m_ctrlText1;
COutLookRichEdit m_ctrlText1;
In InitDialog(), add the following code.&
m_ctrlText1.SetRawHyperText(_T("Click &%$here$#100#%&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
to see the about box."));
At this level, if you build the project and run it, you can see the rich edit
control with linked text, but
nothing would happen if you clicked on
To Show a dialog while the link is
clicked, you have to add some more code in the dialog class. Before that, have
a closer look at the preceding code and
hypertext syntax. The link text is enclosed between the "$" symbols
the corresponding dialog's resource
value 100 (About Box), enclosed in "#" symbols.
You can find the #define values of
dialogs in the resource.h file.
Use ClassWizard to map OnNotify of the
dialog and write the corresponding implementation code in .cpp file, like:&
BOOL CDEMODlg::OnNotify(WPARAM wParam,
&&&&&&&&&&&&&&&&&&&&&&&
LPARAM lParam,
&&&&&&&&&&&&&&&&&&&&&&&
LRESULT* pResult)
& NMHDR* pNmHdr = (NMHDR*) lP
& if(IDC_RICHEDIT1 == pNmHdr-&idFrom){
&&& switch(pNmHdr-&code)
&&&&& case IDD_ABOUTBOX:
&&&&&&& CAboutDlg oD
&&&&&&& oDlg.DoModal ();
& return CDialog::OnNotify(wParam, lParam, pResult);
Now, build and run the project. It is recommended that you set the read-only
attribute to the rich edit control.&
Download demo project - 23 Kb
Download source - 6 Kb
在RichEdit中插入Bitmap
sm.tymed=TYMED_GDI;
sm.hBitmap=
sm.pUnkForRelease=NULL;
src.CacheData(CF_BITMAP, &sm);
LPDATAOBJECT lpDataObject =
(LPDATAOBJECT)src.GetInterface(&IID_IDataObject);
pRichEditOle-&ImportDataObject(lpDataObject, 0, NULL);
lpDataObject-&Release();
字体设置代码
最后添加字体变换函数:&
CHARFORMAT&
memset(&cf, 0, sizeof(CHARFORMAT));&
memset(&lf, 0, sizeof(LOGFONT));
//判断是否选择了内容&
BOOL bSelect = (GetSelectionType() != SEL_EMPTY) ? TRUE : FALSE;&
if (bSelect)&
&&&&&&&&&&&&
GetSelectionCharFormat(cf);&
&&&&&&&&&&&&
GetDefaultCharFormat(cf);&
//得到相关字体属性&
BOOL bIsBold = cf.dwEffects & CFE_BOLD;&
BOOL bIsItalic = cf.dwEffects & CFE_ITALIC;&
BOOL bIsUnderline = cf.dwEffects & CFE_UNDERLINE;&
BOOL bIsStrickout = cf.dwEffects & CFE_STRIKEOUT;
//设置属性&
lf.lfCharSet = cf.bCharS&
lf.lfHeight = cf.yHeight/15;&
lf.lfPitchAndFamily = cf.bPitchAndF&
lf.lfItalic = bIsI&
lf.lfWeight = (bIsBold ? FW_BOLD : FW_NORMAL);&
lf.lfUnderline = bIsU&
lf.lfStrikeOut = bIsS&
sprintf(lf.lfFaceName, cf.szFaceName);&
&&&&&&&&&&&&
CFontDialog dlg(&lf);&
dlg.m_cf.rgbColors = cf.crTextC&
if (dlg.DoModal() == IDOK)&
&&&&&&&&&&&&
dlg.GetCharFormat(cf);//获得所选字体的属性&
&&&&&&&&&&&& if
(bSelect)&
&&&&&&&&&&&&&&&&&&&&&&&&
SetSelectionCharFormat(cf);&&&& //为选定的内容设定所选字体&
&&&&&&&&&&&& else&
&&&&&&&&&&&&&&&&&&&&&&&&
SetWordCharFormat(cf);&&&&&&&& //为将要输入的内容设定字体&
在RichEdit中实现超链接
在RichEdit中实现超链接&
责任编辑:admin   在CBuilder上制作 更新日期:&
首先在Form上放置一个RichEdit。
在窗体的构造函数中添加以下代码:
__fastcall TMainForm::TMainForm(TComponent* Owner)
&&&&&&&& : TForm(Owner)
&&&& unsigned mask = SendMessage(RichEdit1-&Handle,
EM_GETEVENTMASK, 0, 0);
&&&& SendMessage(RichEdit1-&Handle, EM_SETEVENTMASK, 0,
mask | ENM_LINK);
&&&& SendMessage(RichEdit1-&Handle, EM_AUTOURLDETECT,
true, 0);&& //自动检测URL
RichEdit1-&Text = "欢迎访问C++ Builder/n"
&&&&&&&&&&&&&&&&&&&&&&
"网址:&/n"
&&&&&&&&&&&&&&&&&&&&&&
"偶的信箱:/n"
&&&&&&&&&&&&&&&&&&&&&&
"mailto::&/n"
&&&&&&&&&&&&&&&&&&&&&&
重载窗体的WndProc
1。在.h中添加:
&&& protected:
&&&&&& virtual void __fastcall
WndProc(Messages::TMessage &Message);
2。在.cpp中添加:
//---------------------------------------------------------------------------
void __fastcall TMainForm::WndProc(Messages::TMessage &Message)
&&&& if (Message.Msg == WM_NOTIFY)
&&&&&&&& if
(((LPNMHDR)Message.LParam)-&code == EN_LINK)
&&&&&&&& {
&&&&&&&&&&&&
ENLINK* p = (ENLINK *)Message.LP
&&&&&&&&&&&& if
(p-&msg == WM_LBUTTONDOWN)
&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&
SendMessage(RichEdit1-&Handle, EM_EXSETSEL, 0, (LPARAM)&(p-&chrg));
&&&&&&&&&&&&&&&&
ShellExecute(Handle, "open", RichEdit1-&SelText.c_str(), 0, 0,
SW_SHOWNORMAL);
&&&&&&&&&&&& }
&&&&&&&& }
&&&& TForm::WndProc(Message);
暂无相关文章
相关搜索:
相关阅读:
相关频道:
&&&&&&&&&&&&&&&&
Asp.Net教程最近更新

我要回帖

更多关于 gt em01 的文章

 

随机推荐