STATIC, вроде, нельзя автоматически в линк переделать. Я бы сделал так (на MFC).
| Код | BOOL ClDlg::OnInitDialog() { //....... m_Cursor = LoadCursor( NULL, IDC_HAND ); // m_Cursor имеет тип HCURSOR //....... }
//..............
// Ответ на сообщение STN_CLICKED - на статике кликнули мышкой void ClDlg::OnStnClickedLink() { ShellExecute(GetSafeHwnd(),"open", "www.google.com" ,NULL, NULL, SW_SHOW ); } /* Ответ на сообщение WM_SETCURSOR - поменяем курсор на руку*/ BOOL ClDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) { if ( pWnd->m_hWnd == GetDlgItem( IDC_LINK )->m_hWnd ) { SetCursor( m_Cursor ); return TRUE; } return CDialog::OnSetCursor(pWnd, nHitTest, message); }
|
Чтобы статик посылал сообщение STN_CLICKED ему нужно установить флаг SS_NOTIFY.
Насчёт RichEdit: Ему нужно послать сообщение
| Код | SendMessage( hRichEdit, EM_URLAUTODETECT, (WPARAM)TRUE, 0 );
|
Тогда он будет автоматически распознавать строчки с URL.
В случае, если тебя это не устраивает, посмотри информацию о сообщении EM_SETCHARFORMAT. Как LPARAM дай указатель на CHARFORMAT2. У него есть флаг CFM_LINK и эффект CFE_LINK.
|