J'ai un petit problème, je cherche à remplacer le curseur de la souris sur
événement MouseMouve de mon RichTextBox lorsque le mot de mon RTF sur lequel
pointe la souris est de couleur bleu (par exemple).
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
François Picalausa
Hello,
Tu peux tester la couleur comme ceci: Option Explicit
Private Const EM_CHARFROMPOS = &HD7
Private Declare Function SendMessage _ Lib "user32" _ Alias "SendMessageA" _ ( _ ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ lParam As Any _ ) _ As Long
Private Type POINTL x As Long y As Long End Type
Private Sub Form_Load() RichTextBox1.Text = "" AddText RichTextBox1, "Test " AddText RichTextBox1, " Red ", vbRed AddText RichTextBox1, " Green ", vbGreen AddText RichTextBox1, " some text in blue", vbBlue End Sub
Private Sub AddText(RTB As RichTextBox, _ Text As String, _ Optional Color As Long = vbBlack, _ Optional append = True)
If append Then RTB.SelStart = Len(RTB.Text) End If
RTB.SelColor = Color RTB.SelText = Text End Sub
Private Sub RichTextBox1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) Dim pt As POINTL Dim Char As Long Dim OSS As Long, OSL As Long
With pt .x = x / Screen.TwipsPerPixelX .y = y / Screen.TwipsPerPixelY End With
If RichTextBox1.SelColor = vbBlue Then RichTextBox1.MousePointer = rtfUpArrow Else RichTextBox1.MousePointer = rtfDefault End If
RichTextBox1.SelStart = OSS RichTextBox1.SelLength = OSL End Sub
Pour éviter l'effet de clignotement de la sélection, on peut créer une deuxième richtextbox invisible avec le même contenu.
Mais peut-être souhaites-tu simplement détecter des URL dans ton RTB? dans ce cas tu pourrais utiliser EM_AUTOURLDETECT pour autoriser une autodétection des URL et/ou utiliser CFE_LINK dans le format de caractère définit par EM_SETCHARFORMAT. En sous classant le richtextbox tu pourrait alors récupérer EN_LINK dès que le curseur passe sur le lien.
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com
"lolo" a écrit dans le message de news: 4142b4c5$0$21762$
J'ai un petit problème, je cherche à remplacer le curseur de la souris sur événement MouseMouve de mon RichTextBox lorsque le mot de mon RTF sur lequel pointe la souris est de couleur bleu (par exemple).
Hello,
Tu peux tester la couleur comme ceci:
Option Explicit
Private Const EM_CHARFROMPOS = &HD7
Private Declare Function SendMessage _
Lib "user32" _
Alias "SendMessageA" _
( _
ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any _
) _
As Long
Private Type POINTL
x As Long
y As Long
End Type
Private Sub Form_Load()
RichTextBox1.Text = ""
AddText RichTextBox1, "Test "
AddText RichTextBox1, " Red ", vbRed
AddText RichTextBox1, " Green ", vbGreen
AddText RichTextBox1, " some text in blue", vbBlue
End Sub
Private Sub AddText(RTB As RichTextBox, _
Text As String, _
Optional Color As Long = vbBlack, _
Optional append = True)
If append Then
RTB.SelStart = Len(RTB.Text)
End If
RTB.SelColor = Color
RTB.SelText = Text
End Sub
Private Sub RichTextBox1_MouseMove(Button As Integer, Shift As Integer, x As
Single, y As Single)
Dim pt As POINTL
Dim Char As Long
Dim OSS As Long, OSL As Long
With pt
.x = x / Screen.TwipsPerPixelX
.y = y / Screen.TwipsPerPixelY
End With
If RichTextBox1.SelColor = vbBlue Then
RichTextBox1.MousePointer = rtfUpArrow
Else
RichTextBox1.MousePointer = rtfDefault
End If
RichTextBox1.SelStart = OSS
RichTextBox1.SelLength = OSL
End Sub
Pour éviter l'effet de clignotement de la sélection, on peut créer une
deuxième richtextbox invisible avec le même contenu.
Mais peut-être souhaites-tu simplement détecter des URL dans ton RTB? dans
ce cas tu pourrais utiliser EM_AUTOURLDETECT pour autoriser une
autodétection des URL et/ou utiliser CFE_LINK dans le format de caractère
définit par EM_SETCHARFORMAT. En sous classant le richtextbox tu pourrait
alors récupérer EN_LINK dès que le curseur passe sur le lien.
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
"lolo" <lolpoub@wanadoo.fr> a écrit dans le message de news:
4142b4c5$0$21762$626a14ce@news.free.fr
J'ai un petit problème, je cherche à remplacer le curseur de la
souris sur événement MouseMouve de mon RichTextBox lorsque le mot de
mon RTF sur lequel pointe la souris est de couleur bleu (par exemple).
Tu peux tester la couleur comme ceci: Option Explicit
Private Const EM_CHARFROMPOS = &HD7
Private Declare Function SendMessage _ Lib "user32" _ Alias "SendMessageA" _ ( _ ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ lParam As Any _ ) _ As Long
Private Type POINTL x As Long y As Long End Type
Private Sub Form_Load() RichTextBox1.Text = "" AddText RichTextBox1, "Test " AddText RichTextBox1, " Red ", vbRed AddText RichTextBox1, " Green ", vbGreen AddText RichTextBox1, " some text in blue", vbBlue End Sub
Private Sub AddText(RTB As RichTextBox, _ Text As String, _ Optional Color As Long = vbBlack, _ Optional append = True)
If append Then RTB.SelStart = Len(RTB.Text) End If
RTB.SelColor = Color RTB.SelText = Text End Sub
Private Sub RichTextBox1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) Dim pt As POINTL Dim Char As Long Dim OSS As Long, OSL As Long
With pt .x = x / Screen.TwipsPerPixelX .y = y / Screen.TwipsPerPixelY End With
If RichTextBox1.SelColor = vbBlue Then RichTextBox1.MousePointer = rtfUpArrow Else RichTextBox1.MousePointer = rtfDefault End If
RichTextBox1.SelStart = OSS RichTextBox1.SelLength = OSL End Sub
Pour éviter l'effet de clignotement de la sélection, on peut créer une deuxième richtextbox invisible avec le même contenu.
Mais peut-être souhaites-tu simplement détecter des URL dans ton RTB? dans ce cas tu pourrais utiliser EM_AUTOURLDETECT pour autoriser une autodétection des URL et/ou utiliser CFE_LINK dans le format de caractère définit par EM_SETCHARFORMAT. En sous classant le richtextbox tu pourrait alors récupérer EN_LINK dès que le curseur passe sur le lien.
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com
"lolo" a écrit dans le message de news: 4142b4c5$0$21762$
J'ai un petit problème, je cherche à remplacer le curseur de la souris sur événement MouseMouve de mon RichTextBox lorsque le mot de mon RTF sur lequel pointe la souris est de couleur bleu (par exemple).
[-LT-]
Merci François.
"François Picalausa" a écrit dans le message de news:OHbI$
Hello,
Tu peux tester la couleur comme ceci: Option Explicit
Private Const EM_CHARFROMPOS = &HD7
Private Declare Function SendMessage _ Lib "user32" _ Alias "SendMessageA" _ ( _ ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ lParam As Any _ ) _ As Long
Private Type POINTL x As Long y As Long End Type
Private Sub Form_Load() RichTextBox1.Text = "" AddText RichTextBox1, "Test " AddText RichTextBox1, " Red ", vbRed AddText RichTextBox1, " Green ", vbGreen AddText RichTextBox1, " some text in blue", vbBlue End Sub
Private Sub AddText(RTB As RichTextBox, _ Text As String, _ Optional Color As Long = vbBlack, _ Optional append = True)
If append Then RTB.SelStart = Len(RTB.Text) End If
RTB.SelColor = Color RTB.SelText = Text End Sub
Private Sub RichTextBox1_MouseMove(Button As Integer, Shift As Integer, x
As
Single, y As Single) Dim pt As POINTL Dim Char As Long Dim OSS As Long, OSL As Long
With pt .x = x / Screen.TwipsPerPixelX .y = y / Screen.TwipsPerPixelY End With
If RichTextBox1.SelColor = vbBlue Then RichTextBox1.MousePointer = rtfUpArrow Else RichTextBox1.MousePointer = rtfDefault End If
RichTextBox1.SelStart = OSS RichTextBox1.SelLength = OSL End Sub
Pour éviter l'effet de clignotement de la sélection, on peut créer une deuxième richtextbox invisible avec le même contenu.
Mais peut-être souhaites-tu simplement détecter des URL dans ton RTB? dans ce cas tu pourrais utiliser EM_AUTOURLDETECT pour autoriser une autodétection des URL et/ou utiliser CFE_LINK dans le format de caractère définit par EM_SETCHARFORMAT. En sous classant le richtextbox tu pourrait alors récupérer EN_LINK dès que le curseur passe sur le lien.
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com
"lolo" a écrit dans le message de news: 4142b4c5$0$21762$ > J'ai un petit problème, je cherche à remplacer le curseur de la > souris sur événement MouseMouve de mon RichTextBox lorsque le mot de > mon RTF sur lequel pointe la souris est de couleur bleu (par exemple).
Merci François.
"François Picalausa" <fpicalausa@chez.com> a écrit dans le message de
news:OHbI$gNmEHA.1520@TK2MSFTNGP10.phx.gbl...
Hello,
Tu peux tester la couleur comme ceci:
Option Explicit
Private Const EM_CHARFROMPOS = &HD7
Private Declare Function SendMessage _
Lib "user32" _
Alias "SendMessageA" _
( _
ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any _
) _
As Long
Private Type POINTL
x As Long
y As Long
End Type
Private Sub Form_Load()
RichTextBox1.Text = ""
AddText RichTextBox1, "Test "
AddText RichTextBox1, " Red ", vbRed
AddText RichTextBox1, " Green ", vbGreen
AddText RichTextBox1, " some text in blue", vbBlue
End Sub
Private Sub AddText(RTB As RichTextBox, _
Text As String, _
Optional Color As Long = vbBlack, _
Optional append = True)
If append Then
RTB.SelStart = Len(RTB.Text)
End If
RTB.SelColor = Color
RTB.SelText = Text
End Sub
Private Sub RichTextBox1_MouseMove(Button As Integer, Shift As Integer, x
As
Single, y As Single)
Dim pt As POINTL
Dim Char As Long
Dim OSS As Long, OSL As Long
With pt
.x = x / Screen.TwipsPerPixelX
.y = y / Screen.TwipsPerPixelY
End With
If RichTextBox1.SelColor = vbBlue Then
RichTextBox1.MousePointer = rtfUpArrow
Else
RichTextBox1.MousePointer = rtfDefault
End If
RichTextBox1.SelStart = OSS
RichTextBox1.SelLength = OSL
End Sub
Pour éviter l'effet de clignotement de la sélection, on peut créer une
deuxième richtextbox invisible avec le même contenu.
Mais peut-être souhaites-tu simplement détecter des URL dans ton RTB? dans
ce cas tu pourrais utiliser EM_AUTOURLDETECT pour autoriser une
autodétection des URL et/ou utiliser CFE_LINK dans le format de caractère
définit par EM_SETCHARFORMAT. En sous classant le richtextbox tu pourrait
alors récupérer EN_LINK dès que le curseur passe sur le lien.
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
"lolo" <lolpoub@wanadoo.fr> a écrit dans le message de news:
4142b4c5$0$21762$626a14ce@news.free.fr
> J'ai un petit problème, je cherche à remplacer le curseur de la
> souris sur événement MouseMouve de mon RichTextBox lorsque le mot de
> mon RTF sur lequel pointe la souris est de couleur bleu (par exemple).
"François Picalausa" a écrit dans le message de news:OHbI$
Hello,
Tu peux tester la couleur comme ceci: Option Explicit
Private Const EM_CHARFROMPOS = &HD7
Private Declare Function SendMessage _ Lib "user32" _ Alias "SendMessageA" _ ( _ ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ lParam As Any _ ) _ As Long
Private Type POINTL x As Long y As Long End Type
Private Sub Form_Load() RichTextBox1.Text = "" AddText RichTextBox1, "Test " AddText RichTextBox1, " Red ", vbRed AddText RichTextBox1, " Green ", vbGreen AddText RichTextBox1, " some text in blue", vbBlue End Sub
Private Sub AddText(RTB As RichTextBox, _ Text As String, _ Optional Color As Long = vbBlack, _ Optional append = True)
If append Then RTB.SelStart = Len(RTB.Text) End If
RTB.SelColor = Color RTB.SelText = Text End Sub
Private Sub RichTextBox1_MouseMove(Button As Integer, Shift As Integer, x
As
Single, y As Single) Dim pt As POINTL Dim Char As Long Dim OSS As Long, OSL As Long
With pt .x = x / Screen.TwipsPerPixelX .y = y / Screen.TwipsPerPixelY End With
If RichTextBox1.SelColor = vbBlue Then RichTextBox1.MousePointer = rtfUpArrow Else RichTextBox1.MousePointer = rtfDefault End If
RichTextBox1.SelStart = OSS RichTextBox1.SelLength = OSL End Sub
Pour éviter l'effet de clignotement de la sélection, on peut créer une deuxième richtextbox invisible avec le même contenu.
Mais peut-être souhaites-tu simplement détecter des URL dans ton RTB? dans ce cas tu pourrais utiliser EM_AUTOURLDETECT pour autoriser une autodétection des URL et/ou utiliser CFE_LINK dans le format de caractère définit par EM_SETCHARFORMAT. En sous classant le richtextbox tu pourrait alors récupérer EN_LINK dès que le curseur passe sur le lien.
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com
"lolo" a écrit dans le message de news: 4142b4c5$0$21762$ > J'ai un petit problème, je cherche à remplacer le curseur de la > souris sur événement MouseMouve de mon RichTextBox lorsque le mot de > mon RTF sur lequel pointe la souris est de couleur bleu (par exemple).