Obtient le rectangle de mise en forme du texte d'un contrôle RichEdit
#include <GuiRichEdit.au3>
_GUICtrlRichEdit_GetRECT ( $hWnd )
$hWnd | Handle du contrôle |
Succès: | Retourne un tableau contenant des coordonnées x et y. $aArray [0] = Gauche $aArray [1] = Haut $aArray [2] = Droit $aArray [3] = Bas |
Échec: | Définit @error <> 0. |
@error: | 101 - $hWnd n'est pas un handle |
Le rectangle de mise en forme est la zone dans laquelle le texte est édité, dont une partie peut ne pas être visible.
Toutes les valeurs retournées sont en unités de dialogue par rapport au contrôle.
D'après MSDN, les valeurs retournées par cette fonction peuvent ne pas être exactement celles définies par _GUICtrlRichEdit_SetRECT().
Consultez EM_GETRECT dans la librairie MSDN.
#include <GUIConstantsEx.au3> #include <GuiRichEdit.au3> #include <WindowsConstants.au3> Global $g_idLblMsg, $g_hRichEdit Example() Func Example() Local $hGui, $iMsg, $idBtnNext, $iStep = 0 $hGui = GUICreate("Exemple (" & StringTrimRight(@ScriptName, 4) & ")", 320, 350, -1, -1) $g_hRichEdit = _GUICtrlRichEdit_Create($hGui, "", 10, 10, 300, 220, _ BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL)) $g_idLblMsg = GUICtrlCreateLabel("", 10, 235, 300, 60) $idBtnNext = GUICtrlCreateButton("Suivant", 270, 310, 40, 30) GUISetState(@SW_SHOW) _GUICtrlRichEdit_SetText($g_hRichEdit, "Premier paragraphe") _GUICtrlRichEdit_AppendText($g_hRichEdit, @CRLF & "Second paragraphe") $iMsg = GUIGetMsg() While $iMsg <> $GUI_EVENT_CLOSE If $iMsg = $idBtnNext Then $iStep += 1 Switch $iStep Case 1 Report("1. Paramètres par défaut ") Case 2 _GUICtrlRichEdit_SetRECT($g_hRichEdit, 10, 10, 100, 100) Report("2. Paramètres ") Case 3 _GUICtrlRichEdit_SetRECT($g_hRichEdit) Report("3. Retour aux paramètres par défaut") GUICtrlSetState($idBtnNext, $GUI_DISABLE) EndSwitch EndIf $iMsg = GUIGetMsg() WEnd _GUICtrlRichEdit_Destroy($g_hRichEdit) ; Nécessaire sauf si le script se bloque ; GUIDelete(); est OK aussi EndFunc ;==>Example Func Report($sMsg) Local $aRect = _GUICtrlRichEdit_GetRECT($g_hRichEdit) $sMsg = $sMsg & @CRLF & @CRLF & "Gauche=" & $aRect[0] & " Haut=" & $aRect[1] & " Droite=" & $aRect[2] & " Bas=" & $aRect[3] GUICtrlSetData($g_idLblMsg, $sMsg) EndFunc ;==>Report