我在對話框中有一個RichEdit控件。 RichEdit控件顯示RTF文本。 EM_AUTOURLDETECT
導致RichEdit控件正確格式化並識別超鏈接。當鼠標懸停在鏈接上時,指針變成一隻手,但是一旦鏈接被點擊,瀏覽器就不會啓動。RichEdit的EM_AUTOURLDETECT消息識別鏈接,但我無法點擊它
我是否缺少某種事件處理程序代碼?
case WM_INITDIALOG:
{
// Create Richedit
HWND hwndRE = CreateWindowA("RichEdit20A", "", WS_CHILD | WS_BORDER | WS_VSCROLL | ES_READONLY | ES_MULTILINE, 10, 10, 480, 220, hDlgWnd, 0, hInst, 0);
SendMessage(hwndRE ,EM_AUTOURLDETECT,(WPARAM)TRUE,(LPARAM)0);
//SendMessage(hwndRE ,EM_SETEVENTMASK, 1, ENM_LINK | ENM_CHANGE);
ShowWindow(hwndRE, SW_SHOWNORMAL);
SETTEXTEX SetTextEx;
char* aboutdata = "{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0 Verdana;}}\\viewkind4\\uc1\\pard\\qc\\b\\f0\\fs20 www.whateverdomain.com} ");
SendMessage(hwndRE, EM_SETTEXTEX,(WPARAM)&SetTextEx, (LPARAM)(LPCTSTR)aboutdata);
return TRUE;
}
我設置了:SendMessage(hwndRE,EM_SETEVENTMASK,0,ENM_LINK);這使得能夠發送EN_LINK消息。但是現在,當我將鼠標懸停在鏈接上(甚至不必點擊),瀏覽器就會打開網站?而且你盤旋的時間越長,它打開的網站實例就越多...... – 2011-06-01 15:55:46
EM_AUTOURLDETECT會自動修改豐富的編輯控件,以便它可以發送EN_LINK通知。您是否嘗試調試代碼以查看會發生什麼?您的對話框是否收到來自富編輯控件的任何通知? – 2011-06-01 15:56:09
對不起,如果這個雙重職位,我正在編輯,而你打字。我設置了:SendMessage(hwndRE,EM_SETEVENTMASK,0,ENM_LINK);這使得能夠發送EN_LINK消息。但是現在,當我將鼠標懸停在鏈接上(甚至不必點擊),瀏覽器就會打開網站?而且你盤旋的時間越長,它打開的網站越多... – 2011-06-01 15:57:34