[C++ MFC] CRichEditCtrl CharFromPos (a przycisk myszy)

0

Witam. Mam controlkę CRichEditCtrl w trybie ReadOnly.
Umieszczam tam swój tekst....

Chce reagować na kliknięcie wskażnikiem myszy na tekst będący w kontrolce (a dokładnie na: "www.adres.pl")
by wywołać odpowiednią reakcję (tu: odtwarcie strony w przeglądarce).

Tekst nie jest zaznaczony, więc odpada GetSelText( LPTSTR lpBuf );

Visual 6.0 nie ma jeszcze funkcji

int CharFromPos( CPoint pt ) const;

error C2065: 'CharFromPos' : undeclared identifier

Jak więc zrealizować wydobycie tekstu na który user kliknął,
jeśli mam tylko położenie wskażnika myszy [???]

void cośtam::OnLButtonDown(UINT nFlags, CPoint point) 
{
     int iCharPosition = m_cMyRichEdit.CharFromPos(point);
}
0

Poczytaj o formacie RTF, można dodać do tekstu odpowiednie formatowanie tak, że wszystko będzie robione automatycznie. Tak jak można oznaczyć fragment tekstu pogrubieniem, tak można go oznaczyć jako link.

0

No właśnie wstawiłem tekst w formacie RTF, dodałem w nim HyperLink który nie wykonuje się w mojej kontrolce ....dlatego chciałem to zrobić po swojemu.

0

Pokaż jak dodałeś tego HyperLink'a bo może jakoś źle to robisz.

Próbowałeś otworzyć RTF'a z HyperLink'iem stworzonego np. w WordPad ?

0

Edytuje w Word'zie. I w nim mi link działa....

Faktycznie w WordPad'zie tylko zmienia się kursor na "hand" (łapka zamiast kursor) i tyle. Klikniecie nic nie daje.

A robię to tak:
user image

tak to widać w wordzie:

             ![user image](http://s1.fothost.pl/upload/08/47/fbfdbf61.jpg)

A taki jest efekt tego w kontrolce:

            ![user image](http://s1.fothost.pl/upload/08/47/14ae5c32.jpg)
0

Próbowałeś SetAutoURLDetect ?

0

Zdaje się, że to jest do VC 2005. Ja piszę pod VC 6.0

Ale dzięki Twej podpowiedzi Google znalazł mi coś takiego
http://www.tech-archive.net/Archive/Development/microsoft.public.win32.programmer.ui/2005-04/msg00236.html

oraz
http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/b65c634f-5779-4b59-8918-59caa35837bc/

a dalej przykład jak dać LINK do RichEdit (sprawdzę wieczorem).
http://www.codeproject.com/KB/edit/cricheditctrlgs.aspx

Dzięki

0

W każdym razie SetAutoURLDetect wysyła EM_AUTOURLDETECT, które jest dostępne już od Win 95. Może brakuje ci include'a ?
W dokumentacji nie wspominają o Visual'u starszym niż 2003 (tzn. nie jest napisane od kiedy istnieje ta funkcja), ale w 2003 już na pewno jest. Więc nie wiem skąd to 2005 wytrzasnąłeś.

0

fakt, nie mam #include <afxcmn.h> w *.h
doczytam do czego to....

2005: http://msdn.microsoft.com/en-us/library/sa4shy4a(VS.80).aspx

1 użytkowników online, w tym zalogowanych: 0, gości: 1