Fenetre - Taille bouton fermer (PB avec Vista)

Programmation d'applications complexes
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Fenetre - Taille bouton fermer (PB avec Vista)

Message par Le Soldat Inconnu »

Salut,

j'ai besoin d'un petit test sous vista
J'ai un soucis pour calculer la taille du bouton fermer sous vista

quelqu'un peut de copier le résultat de la fenêtre debug sous vista ?

merci

Code : Tout sélectionner

;{- Theme
;{- "Window" (i.e., non-client) Parts & States
; UxThemeWindowParts
#WP_CAPTION = 1
#WP_SMALLCAPTION = 2
#WP_MINCAPTION = 3
#WP_SMALLMINCAPTION = 4
#WP_MAXCAPTION = 5
#WP_SMALLMAXCAPTION = 6
#WP_FRAMELEFT = 7
#WP_FRAMERIGHT = 8
#WP_FRAMEBOTTOM = 9
#WP_SMALLFRAMELEFT = 10
#WP_SMALLFRAMERIGHT = 11
#WP_SMALLFRAMEBOTTOM = 12
; window frame buttons
#WP_SYSBUTTON = 13
#WP_MDISYSBUTTON = 14
#WP_MINBUTTON = 15
#WP_MDIMINBUTTON = 16
#WP_MAXBUTTON = 17
#WP_CLOSEBUTTON = 18
#WP_SMALLCLOSEBUTTON = 19
#WP_MDICLOSEBUTTON = 20
#WP_RESTOREBUTTON = 21
#WP_MDIRESTOREBUTTON = 22
#WP_HELPBUTTON = 23
#WP_MDIHELPBUTTON = 24
; scrollbars
#WP_HORZSCROLL = 25
#WP_HORZTHUMB = 26
#WP_VERTSCROLL = 27
#WP_VERTTHUMB = 28
; dialog
#WP_DIALOG = 29
; hit-test templates
#WP_CAPTIONSIZINGTEMPLATE = 30
#WP_SMALLCAPTIONSIZINGTEMPLATE = 31
#WP_FRAMELEFTSIZINGTEMPLATE = 32
#WP_SMALLFRAMELEFTSIZINGTEMPLATE = 33
#WP_FRAMERIGHTSIZINGTEMPLATE = 34
#WP_SMALLFRAMERIGHTSIZINGTEMPLATE = 35
#WP_FRAMEBOTTOMSIZINGTEMPLATE = 36
#WP_SMALLFRAMEBOTTOMSIZINGTEMPLATE = 37
; UxThemeFrameStates
#FS_ACTIVE = 1
#FS_INACTIVE = 2
; UxThemeCaptionStates
#CS_ACTIVE = 1
#CS_INACTIVE = 2
#CS_DISABLED = 3
; UxThemeMaxCaptionStates
#MXCS_ACTIVE = 1
#MXCS_INACTIVE = 2
#MXCS_DISABLED = 3
; UxThemeMinCaptionStates
#MNCS_ACTIVE = 1
#MNCS_INACTIVE = 2
#MNCS_DISABLED = 3
; UxThemeHorzScrollStates
#HSS_NORMAL = 1
#HSS_HOT = 2
#HSS_PUSHED = 3
#HSS_DISABLED = 4
; UxThemeHorzThumbStates
#HTS_NORMAL = 1
#HTS_HOT = 2
#HTS_PUSHED = 3
#HTS_DISABLED = 4
; UxThemeVertScrollStates
#VSS_NORMAL = 1
#VSS_HOT = 2
#VSS_PUSHED = 3
#VSS_DISABLED = 4
; UxThemeVertThumbStates
#VTS_NORMAL = 1
#VTS_HOT = 2
#VTS_PUSHED = 3
#VTS_DISABLED = 4
; UxThemeSysButtonStates
#SBS_NORMAL = 1
#SBS_HOT = 2
#SBS_PUSHED = 3
#SBS_DISABLED = 4
; UxThemeMinButtonStates
#MINBS_NORMAL = 1
#MINBS_HOT = 2
#MINBS_PUSHED = 3
#MINBS_DISABLED = 4
; UxThemeMaxButtonStates
#MAXBS_NORMAL = 1
#MAXBS_HOT = 2
#MAXBS_PUSHED = 3
#MAXBS_DISABLED = 4
; UxThemeRestoreButtonStates
#RBS_NORMAL = 1
#RBS_HOT = 2
#RBS_PUSHED = 3
#RBS_DISABLED = 4
; UxThemeHelpButtonStates
#HBS_NORMAL = 1
#HBS_HOT = 2
#HBS_PUSHED = 3
#HBS_DISABLED = 4
; UxThemeCloseButtonStates
#CBS_NORMAL = 1
#CBS_HOT = 2
#CBS_PUSHED = 3
#CBS_DISABLED = 4
;}
;{- "Status" Parts & States
; UxThemeStatusParts
#SP_PANE = 1
#SP_GRIPPERPANE = 2
#SP_GRIPPER = 3
;}
;{- "Rebar" Parts & States
; UxThemeRebarParts
#RP_GRIPPER = 1
#RP_GRIPPERVERT = 2
#RP_BAND = 3
#RP_CHEVRON = 4
#RP_CHEVRONVERT = 5
; UxThemeChevronStates
#CHEVS_NORMAL = 1
#CHEVS_HOT = 2
#CHEVS_PRESSED = 3
;}
;{- "Toolbar" Parts & States
; UxThemeToolBarParts
#TP_BUTTON = 1
#TP_DROPDOWNBUTTON = 2
#TP_SPLITBUTTON = 3
#TP_SPLITBUTTONDROPDOWN = 4
#TP_SEPARATOR = 5
#TP_SEPARATORVERT = 6
; UxThemeToolBarStates
#TS_NORMAL = 1
#TS_HOT = 2
#TS_PRESSED = 3
#TS_DISABLED = 4
#TS_CHECKED = 5
#TS_HOTCHECKED = 6
;}
;{- "Scrollbar" Parts & States
; UxThemeSCROLLBARParts
#SBP_ARROWBTN = 1
#SBP_THUMBBTNHORZ = 2
#SBP_THUMBBTNVERT = 3
#SBP_LOWERTRACKHORZ = 4
#SBP_UPPERTRACKHORZ = 5
#SBP_LOWERTRACKVERT = 6
#SBP_UPPERTRACKVERT = 7
#SBP_GRIPPERHORZ = 8
#SBP_GRIPPERVERT = 9
#SBP_SIZEBOX = 10
; UxThemeARROWBTNStates
#ABS_UPNORMAL = 1
#ABS_UPHOT = 2
#ABS_UPPRESSED = 3
#ABS_UPDISABLED = 4
#ABS_DOWNNORMAL = 5
#ABS_DOWNHOT = 6
#ABS_DOWNPRESSED = 7
#ABS_DOWNDISABLED = 8
#ABS_LEFTNORMAL = 9
#ABS_LEFTHOT = 10
#ABS_LEFTPRESSED = 11
#ABS_LEFTDISABLED = 12
#ABS_RIGHTNORMAL = 13
#ABS_RIGHTHOT = 14
#ABS_RIGHTPRESSED = 15
#ABS_RIGHTDISABLED = 16
; UxThemeSCROLLBARStates
#SCRBS_NORMAL = 1
#SCRBS_HOT = 2
#SCRBS_PRESSED = 3
#SCRBS_DISABLED = 4
; UxThemeSIZEBOXStates
#SZB_RIGHTALIGN = 1
#SZB_LEFTALIGN = 2
;}
;{- "Tab" Parts & States
; UxThemeTABParts
#TABP_TABITEM = 1
#TABP_TABITEMLEFTEDGE = 2
#TABP_TABITEMRIGHTEDGE = 3
#TABP_TABITEMBOTHEDGE = 4
#TABP_TOPTABITEM = 5
#TABP_TOPTABITEMLEFTEDGE = 6
#TABP_TOPTABITEMRIGHTEDGE = 7
#TABP_TOPTABITEMBOTHEDGE = 8
#TABP_PANE = 9
#TABP_BODY = 10
; UxThemeTABITEMStates
#TIS_NORMAL = 1
#TIS_HOT = 2
#TIS_SELECTED = 3
#TIS_DISABLED = 4
#TIS_FOCUSED = 5
; UxThemeTABITEMLEFTEDGEStates
#TILES_NORMAL = 1
#TILES_HOT = 2
#TILES_SELECTED = 3
#TILES_DISABLED = 4
#TILES_FOCUSED = 5
; UxThemeTABITEMRIGHTEDGEStates
#TIRES_NORMAL = 1
#TIRES_HOT = 2
#TIRES_SELECTED = 3
#TIRES_DISABLED = 4
#TIRES_FOCUSED = 5
; UxThemeTABITEMBOTHEDGESStates
#TIBES_NORMAL = 1
#TIBES_HOT = 2
#TIBES_SELECTED = 3
#TIBES_DISABLED = 4
#TIBES_FOCUSED = 5
; UxThemeTOPTABITEMStates
#TTIS_NORMAL = 1
#TTIS_HOT = 2
#TTIS_SELECTED = 3
#TTIS_DISABLED = 4
#TTIS_FOCUSED = 5
; UxThemeTOPTABITEMLEFTEDGEStates
#TTILES_NORMAL = 1
#TTILES_HOT = 2
#TTILES_SELECTED = 3
#TTILES_DISABLED = 4
#TTILES_FOCUSED = 5
; UxThemeTOPTABITEMRIGHTEDGEStates
#TTIRES_NORMAL = 1
#TTIRES_HOT = 2
#TTIRES_SELECTED = 3
#TTIRES_DISABLED = 4
#TTIRES_FOCUSED = 5
; UxThemeTOPTABITEMBOTHEDGESStates
#TTIBES_NORMAL = 1
#TTIBES_HOT = 2
#TTIBES_SELECTED = 3
#TTIBES_DISABLED = 4
#TTIBES_FOCUSED = 5
;}
;{- "Button" Parts & States
; UxThemeButtonParts
#BP_PUSHBUTTON = 1
#BP_RADIOBUTTON = 2
#BP_CHECKBOX = 3
#BP_GROUPBOX = 4
#BP_USERBUTTON = 5
; UxThemePushButtonStates
#PBS_NORMAL = 1
#PBS_HOT = 2
#PBS_PRESSED = 3
#PBS_DISABLED = 4
#PBS_DEFAULTED = 5
; UxThemeRadioButtonStates
#RBS_UNCHECKEDNORMAL = 1
#RBS_UNCHECKEDHOT = 2
#RBS_UNCHECKEDPRESSED = 3
#RBS_UNCHECKEDDISABLED = 4
#RBS_CHECKEDNORMAL = 5
#RBS_CHECKEDHOT = 6
#RBS_CHECKEDPRESSED = 7
#RBS_CHECKEDDISABLED = 8
; UxThemeCheckBoxStates
#CBS_UNCHECKEDNORMAL = 1
#CBS_UNCHECKEDHOT = 2
#CBS_UNCHECKEDPRESSED = 3
#CBS_UNCHECKEDDISABLED = 4
#CBS_CHECKEDNORMAL = 5
#CBS_CHECKEDHOT = 6
#CBS_CHECKEDPRESSED = 7
#CBS_CHECKEDDISABLED = 8
#CBS_MIXEDNORMAL = 9
#CBS_MIXEDHOT = 10
#CBS_MIXEDPRESSED = 11
#CBS_MIXEDDISABLED = 12
; UxThemeGroupBoxStates
#GBS_NORMAL = 1
#GBS_DISABLED = 2
;}
;{- "ComboBox" Parts & States
; UxThemeComboBoxParts
#CP_DROPDOWNBUTTON = 1
; UxThemeComboBoxStates
#CBXS_NORMAL = 1
#CBXS_HOT = 2
#CBXS_PRESSED = 3
#CBXS_DISABLED = 4
;}
Procedure.l Ansi2Uni(ansi.s)
  Size.l = MultiByteToWideChar_(#CP_ACP, 0, ansi, -1, 0, 0)
  Dim unicode.w(Size)
  MultiByteToWideChar_(#CP_ACP, 0, ansi, Len(ansi), unicode(), Size)
  ProcedureReturn @unicode()
EndProcedure
;}

OpenWindow(0, 0, 0, 100, 100, "Test", #PB_Window_SystemMenu)

Debug "Sans thème"
Debug GetSystemMetrics_(#SM_CXSIZE)
Debug GetSystemMetrics_(#SM_CYSIZE)

Debug "Thème : bouton minimiser"
hTheme = OpenThemeData_(WindowID(0), Ansi2Uni("Window"))
GetThemePartSize_(hTheme, 0, #WP_MINBUTTON, #MINBS_NORMAL, 0, 1, PartSize.SIZE)
CloseThemeData_(hTheme)
Debug PartSize\cx
Debug PartSize\cy

Debug "Thème : bouton maximiser"
hTheme = OpenThemeData_(WindowID(0), Ansi2Uni("Window"))
GetThemePartSize_(hTheme, 0, #WP_MAXBUTTON, #MAXBS_NORMAL, 0, 1, PartSize.SIZE)
CloseThemeData_(hTheme)
Debug PartSize\cx
Debug PartSize\cy

Debug "Thème : bouton fermer"
hTheme = OpenThemeData_(WindowID(0), Ansi2Uni("Window"))
GetThemePartSize_(hTheme, 0, #WP_CLOSEBUTTON, #CBS_NORMAL, 0, 1, PartSize.SIZE)
CloseThemeData_(hTheme)
Debug PartSize\cx
Debug PartSize\cy
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
Eric
Messages : 79
Inscription : dim. 08/juil./2007 21:38
Localisation : Nord
Contact :

Message par Eric »

Sous Windows Vista Ultimate edition.

Sans thème
32
19
Thème : bouton minimiser
5
15
Thème : bouton maximiser
5
15
Thème : bouton fermer
25
15

cdt,

Eric
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

ah ok, donc les boutons ont pas tous la même taille, il faut que je les gère séparement

Merci
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Répondre