89上位机VC MFC富编辑框升级2.0及网址解析打开
89上位机VC MFC富编辑框升级2.0及网址解析打开
功能展示
富编辑框,旧版本有已知的些许Bug,我们当前例程就很简的升级了版本,并实现输入网址的解析功能,效果如图; 要点提示 编辑框要能够有解析用户输入网址功能,自身得有ENM_LINK掩码,且带有自行检测属性,也就是具有EM_AUTOURLDETECT,这两个条件我们当前例程都在一个函数里面实现 ;SetEventMask(GetEventMask()|ENM_LINK)可满足第一要求,::SendMessage( m_hWnd,EM_AUTOURLDETECT, in_fEnable, 0 )可满足第二要求
实现功能 1.新建基于对话框的应用程序 2.将我们当前例程中CRichEditCtrlEx类的两个文件RichEditCtrlEx.cpp,RichEditCtrlEx.h复制到自己工程根目录,并添加到工程中; 3.然后在主对话框中使用此类:拖拽一自定义控件,ID设置IDC_RICHEDITEX,class:RichEdit20A,添加变量CRichEditCtrlExm_RichEditEx;手动添加变量与控件的关联DDX_Control(pDX, IDC_RICHEDITEX,m_RichEditEx); 4.在APP中初始化富编辑框控件添加AfxInitRichEditEx() ; 初始化网址解析功能m_RichEditEx.AutoURLDetect( TRUE ) ;添加自定义函数OnRichEditExLink()实现网址的解析; 函数定义afx_msg void OnRichEditExLink( NMHDR* in_pNotifyHeader, LRESULT* out_pResult ); 函数实现 - void CGkbc8Dlg::OnRichEditExLink( NMHDR* in_pNotifyHeader, LRESULT* out_pResult )
- {
- ENLINK* l_pENLink = ( ENLINK* )in_pNotifyHeader ;
- *out_pResult = 0 ;
- switch( l_pENLink->msg )
- {
- default:
- {
- }
- break ;
复制代码- case WM_SETCURSOR:
- {
- *out_pResult = 1 ;
- }
- break ;
-
- case WM_LBUTTONDOWN:
- {
- CWaitCursor l_WaitCursor ;
- m_RichEditEx.SetSel(l_pENLink->chrg.cpMin,l_pENLink->chrg.cpMax);//设置编辑框选中部分为链接部分
- CString URL = m_RichEditEx.GetSelText();//获取链接
- ShellExecute( this->GetSafeHwnd(), NULL, URL, NULL, NULL, SW_SHOWNORMAL ) ;
- *out_pResult = 1 ;
- }
- break ;
- case WM_LBUTTONUP:
- {
- *out_pResult = 1 ;
- }
- break ;
- }
- }
- <div style="text-align: center;"><span style="font-size: large; line-height: 1.5;">函数映射 ON_NOTIFY( EN_LINK, IDC_RICHEDITEX, OnRichEditExLink )</span></div><font size="4"><div style="text-align: center;"><span style="line-height: 1.5;"><b>我们来演示下功能实现的整个过程</b></span></div></font>
复制代码
|