bonjour à tous,
est ce que quelqu'un peut m'aider à trouver comment modifier la taille d'un UserControl par la souris en mode execution et non pas en mode conception .
merci d'avance pour vos aides .
bonjour à tous,
est ce que quelqu'un peut m'aider à trouver comment modifier la taille d'un UserControl par la souris en mode execution et non pas en mode conception .
merci d'avance pour vos aides .
pour ma part, j'utilise une variable booléenne qui est changé sur mousedown et mouse up.
ensuite, en fonction de cette variable, tu met quelque-chose dans l'évenement mouse-move.
je te conseille de mettre où de faire apparaitre une petite shade dans le coins de ton controle pour plus de lisibilité.
voilà un exemple:salut et bonne chance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 dim isredim as boolean private sub form_load() isredim=false end sub private sub form_mousedown(x as integer, y as integer, shift as integer,...) 'là, je sait plus exactements tous les parametres if x>mashade.left and x<mashade.left+mashade.width and y> mashade.top and y< masahde.top+mashade.height then isredim=true end sub private sub form_mouseup(x as integer, y as integer, shift as integer,...) 'là, je sait plus exactements tous les parametres isredim=false end sub private sub form_mousemouve( X as integer, Y as integer) if isredim=true then moncontrole.width=x-momcontrole.left moncontrole.height=y-moncontrole.top mashade.top=y mashade.left=x end if end sub![]()
salut,
j'ai trouvé un code sur www.vbasic.org
déclaration api
utilise cette fonction :Public Const SWP_DRAWFRAME = &H20
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOSIZE = &H1
Public Const SWP_NOZORDER = &H4
Public Const SWP_FLAGS = SWP_NOZORDER Or SWP_NOSIZE Or SWP_NOMOVE Or SWP_DRAWFRAME
Public Const GWL_STYLE = (-16)
Public Const WS_THICKFRAME = &H40000
Public Declare Function GetWindowLong _
Lib "user32" _
Alias "GetWindowLongA" _
(ByVal hwnd As Long, ByVal nIndex As Long) _
As Long
Public Declare Function SetWindowLong _
Lib "user32" _
Alias "SetWindowLongA" _
(ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) _
As Long
Public Declare Function SetWindowPos _
Lib "user32" _
(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
ByVal x As Long, ByVal Y As Long, ByVal cx As Long, _
ByVal cy As Long, ByVal wFlags As Long) _
As Long
pour CPrivate Sub Retaillable(ctrl As Control, redimCtr As Boolean)
Dim lngStyle As Long
Dim x As Long
'A) Tu récupères le style de ton contrôle
lngStyle = GetWindowLong(ctrl.hwnd, GWL_STYLE)
'B) On modifie le Style
If redimCtr Then
lngStyle = lngStyle Or WS_THICKFRAME
Else
lngStyle = lngStyle Xor WS_THICKFRAME
End If
'C) On met à Jour
x = SetWindowLong(ctrl.hwnd, GWL_STYLE, lngStyle)
x = SetWindowPos(ctrl.hwnd, Form1.hwnd, 0, 0, 0, 0, SWP_FLAGS)
End Sub
[/quote]'**************************************************
'* NOM : RedimCtl
'* DATE : 14/11/1998
'*
'* AUTEUR : Philippe Valar
'*
'* CODE TROUVE SUR "Le petit monde de Visual Basic"
'* http://www.vbasic.org
'*
'* DESCRIPTION :
'* Ce code permet de redimensionner sur la feuille
'* certains contrôles durant l'exécution du
'* programme.
'*
'**************************************************
Merci pour vos réponses je vai essayer d'appliquer les deux methodes.
Partager