高手请进:有关于Richedit 中URL 加亮的系统消息。。。
以下代码将RichEdit中的URL加亮显示(参见MSDN RichEdit Res):
if(SendMessage(RichEditContent->Handle, EM_AUTOURLDETECT, // message to send
TRUE, // not used; must be zero
0 // not used; must be zero
)==0);
SendMessage(RichEditContent->Handle,EM_SETEVENTMASK ,0,
ENM_LINK|SendMessage(RichEditContent->Handle,EM_GETEVENTMASK,0,0));
当将URL加亮后,如何拦截单击加亮对象(URL)的消息?
有关MSDN的解释是产生EN_LINK消息,但是用下面的代码却不能拦截:
void __fastcall TfrmEdit::WndProc(TMessage &myMsg)
{
TForm::WndProc(myMsg);
LPNMHDR lpNmhdr = (LPNMHDR)myMsg.LParam;
if (lpNmhdr->code==EN_LINK)
{
ENLINK* lpENLink = ( ENLINK* )lpNmhdr ;
if (lpENLink->msg == WM_LBUTTONDOWN)
{
RichEditContent->SelStart=lpENLink->chrg.cpMin;
RichEditContent->SelLength=lpENLink->chrg.cpMax-lpENLink->chrg.cpMin;
ShellExecute(Handle,"Open",RichEditContent->SelText.c_str(),0,0,SW_SHOW);
}
}
}
各位高手,URL加亮后到底单击到底会产生什么消息?