Bonjour,
Je rencontre un problème que je n'arrive pas à résoudre même en ayant chercher sur internet et dans la doc. Mon problème est que j'ai intégrer un RichEdit dans un Tabsheet et que quand je change de tabsheet mon RichEdit ne disparait pas, il s'affiche dans toutes mes Tab. Je pense que cela vient du faite qu'il s'intègre dans la gui, et pas dans le tab...
Merci d'avance pour votre aide, je commence a désespérer....
			
			
													[R] RichEdit s'affiche dans toutes mes Tab
					Règles du forum
			
	- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
 
[R] RichEdit s'affiche dans toutes mes Tab
					Modifié en dernier par Flashneo le sam. 21 mai 2016 00:45, modifié 1 fois.
									
			
									
						- mikell
 - Spammer !

 - Messages : 6292
 - Enregistré le : dim. 29 mai 2011 17:32
 - Localisation : Deep Cévennes
 - Status : Hors ligne
 
Re: [..] RichEdit s'affiche dans toutes mes Tab
C'est parce qu'avec RichEdit il y a une finesse : il faut activer/montrer et désactiver/masquer le controle au changement de tabitem
Voilà un exemple qui vient du forum US :
			
			
									
									Voilà un exemple qui vient du forum US :
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <GuiTab.au3>
#include <GuiRichEdit.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>
$Form1 = GUICreate("Main", 400, 400)
$idTab = GUICtrlCreateTab(2, 2, 396, 396)
$hTab = GUICtrlGetHandle($idTab)
$TabSheet1 = GUICtrlCreateTabItem("Main")
GUICtrlCreateLabel("Main tab 0...", 20, 50, 360, 20)
$TabSheet2 = GUICtrlCreateTabItem("History")
GUICtrlCreateLabel("History tab 1...", 20, 50, 360, 20)
$hRichEdit = _GUICtrlRichEdit_Create($Form1, "", 20, 80, 360, 200, BitOR($ES_MULTILINE, $ES_READONLY, $WS_VSCROLL))
For $n = 1 To 20
    _GUICtrlRichEdit_AppendText($hRichEdit, $n & ": Test a very long line of text in a RichEdit box." & @CRLF)
Next
ControlDisable($Form1, "", $hRichEdit)
ControlHide($Form1, "", $hRichEdit)
$TabSheet3 = GUICtrlCreateTabItem("blah")
GUICtrlCreateLabel("blah tab 2...", 20, 50, 360, 20)
GUICtrlCreateTabItem("")
GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            _GUICtrlRichEdit_Destroy($hRichEdit)
            Exit
    EndSwitch
WEnd
Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    #forceref $hWnd, $iMsg, $iwParam
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndTab, $iTab
    $hWndTab = $hTab
    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    Switch $hWndFrom
        Case $hWndTab
            Switch $iCode
                Case $TCN_SELCHANGE ; selection changed
                    $iTab = _GUICtrlTab_GetCurSel($hTab)
                    Switch $iTab
                        Case 1
                            ControlEnable($Form1, "", $hRichEdit)
                            ControlShow($Form1, "", $hRichEdit)
                        Case Else
                            ControlDisable($Form1, "", $hRichEdit)
                            ControlHide($Form1, "", $hRichEdit)
                    EndSwitch
            EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_NOTIFY" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
						" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Re: [..] RichEdit s'affiche dans toutes mes Tab
Merci, j'ai pas compris la ligne avec Case 1, mais ça fonctionne c'est le plus important donc c'est pas grave
			
			
									
									
						- mikell
 - Spammer !

 - Messages : 6292
 - Enregistré le : dim. 29 mai 2011 17:32
 - Localisation : Deep Cévennes
 - Status : Hors ligne
 
Re: [R] RichEdit s'affiche dans toutes mes Tab
Sisisi, faut comprendre   
 
			
			
									
									Code : Tout sélectionner
$iTab = _GUICtrlTab_GetCurSel($hTab)  ; retourne l'index base-0 du tab sélectionné
Switch $iTab
    Case 1  ; celui d'index 1 donc le 2ème (onglet "history" dans le code) où est le Richedit" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
						" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )

