| |
|
|
| concept: Gibt on chez Fenêtre chez den Parametern pour qui Taille, une negativen Wert à, ensuite sommes qui inneren Ausmasse gemeint.
SetWindowPos également avec diesem "Feature" ausstatten wäre imho aussi sinnvoll.
cela Beispiel ici verdeutlicht cela Problem: KompilierenMarqueSéparation erzeugt logischerweise:
Wobei wünschenswert wäre, si es eh bien un "xprofanes" antidote gäbe. alors im Prinzip quelque chose comme [...] ici. |
|
|
| |
|
|
|
Jörg Sellmeyer | je n'en sais rien, pourquoi que voici sur erledigt steht. je trouve qui concept super. peut-être pas avec negativen payons, mais avec einem zusätzlichen paramètre. ou bien Meinetwegen aussi avec Set("Client",1). après volonté ensuite alle la fenêtre, so erzeugt, dass qui Größenangabe comme Clientgröße gewertet wird. |
|
|
| |
|
|
|
RGH | ... et déjà gibt es idées pour un mögliches XProfan X5! ;)
là devrait je la fois regarder, si qui Wondows-API so quelque chose hergibt.
(mais seulement fais je fois le USB-Sticks pour qui Abonnenten fertig et wende mich ensuite la fois wieder den FreeProfan-Versionen trop ...)
Salut Roland |
|
|
| XProfan X3Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 31.05.2018 ▲ |
|
|
|
|
Jörg Sellmeyer | avec AdjustWindowRect erreicht on là déjà Einiges. malheureusement wird cela menu zur Clientarea gerechnet et je such grad, wohin on qui Menühöhe auslesen peux. |
|
|
| |
|
|
|
Jörg Sellmeyer | So peux on Schonmal qui Standardsachen erschlagen:
$H Windows.ph
$H structs.ph
'RECT = Left&,Top&,Right&,Bottom&;
' WS_BORDER = $800000;
' WS_DLGFRAME = $400000;
' WS_VSCROLL = $200000;
' WS_HSCROLL = $100000;
' WS_SYSMENU = $80000;
' WS_THICKFRAME = $40000;
' WS_DLGFRAME = $400000;
' WS_EX_CLIENTEDGE = $200;
' WS_EX_STATICEDGE = $20000;
Struct AdjustWindowRect = ~Rect
SubProc Créer.XWindow
'Paramètres Handle hParent, String sClass, sText ,Int iLeft, iTop, iWidth, iHeight,fMenu
traceoff
Si %pcount = 4
Paramètres Handle hParent, String sText ,Int iWidth, iHeight
Déclarer Int iLeft, iTop
Var Int fCenter = 1
D'autre
Paramètres Handle hParent, String sClass, sText ,Int iLeft, iTop, iWidth, iHeight
EndIf
Déclarer Mem WindowSize,Int fMenu
Faible WindowSize,AdjustWindowRect
With WindowSize
.Left& = iLeft
.Top& = iTop
.Right& = iWidth + iLeft
.Bottom& = iHeight + iTop
EndWith
With WindowSize
Si hParent = 0
fMenu = Not((%style de fenêtre & %10000))
~AdjustWindowRect(WindowSize,~WS_CAPTION | ~WS_THICKFRAME,fMenu)
'fMenu gibt à, si un fenstermenü vorhanden ist
Si SizeOf(fCenter) > 0
Fenêtre (.Right& - .Left&),(.Bottom& - .Top&)
D'autre
Fenêtre .Left&,.Top& - (.Right& - .Left&),(.Bottom& - .Top&)
EndIf
SetText %hwnd,sText
Retour %hwnd
ElseIf Upper$(sClass) = "Dialogue"
~AdjustWindowRect(WindowSize,~WS_CAPTION | ~WS_DLGFRAME,fMenu)
Retour Créer("Dialog",hParent,sText,.Left&,.Top&,(.Right& - .Left&),(.Bottom& - .Top&))
ElseIf Upper$(sClass) = "WINDOW"
~AdjustWindowRect(WindowSize,~WS_CAPTION | ~WS_THICKFRAME,fMenu)
Retour Créer("Window",hParent,sText,.Left&,.Top&,(.Right& - .Left&),(.Bottom& - .Top&))
ElseIf Upper$(sClass) = "CHILDWINDOW"
~AdjustWindowRect(WindowSize,~WS_CAPTION | ~WS_THICKFRAME,fMenu)
Retour Créer("ChildWindow",hParent,sText,.Left&,.Top&,(.Right& - .Left&),(.Bottom& - .Top&))
EndIf
EndWith
ENDPROC
Si &GetTickCount Mod 2
Fenêtre Style %11111
Var Handle hwnd = Créer("XWindow",0,»,"Hauptfenster",100,100,800,600)
D'autre
Fenêtre Style %11111
Var Handle hwnd = Créer("XWindow",0,"Hauptfenster zentriert",800,600)
EndIf
Imprimer suis$(%style de fenêtre & ~WS_CAPTION)
Var Handle hDlg1 = Créer("XWindow",%hwnd,"Dialog","Dialog",%winleft + 250,%wintop + 150,400,300)
Var Handle hDlg2 = Créer("XWindow",%hwnd,"Window","Fenster",%winleft + 350,%wintop + 300,330,240)
Var Handle hDlg3 = Créer("XWindow",%hwnd,"ChildWindow","ChildWindow",50,350,300,200)
Imprimer "Hauptfenster:",%winleft,%wintop,Width(hwnd),Height(hwnd)
Imprimer "Dialog",Width(hDlg1),Height(hDlg1)
Imprimer "Window",Width(hDlg2),Height(hDlg2)
Imprimer "ChildWindow",Width(hDlg3),Height(hDlg3)
Tandis que 1
WaitInput
Wend
Mühsamer wirds, qui ganzen möglichen Stilarten trop berücksichtigen. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 31.05.2018 ▲ |
|
|
|
|
| Würde on simple qui inneren Maße de den Äußeren abziehen, ensuite devrait on qui ganzen Stile ou bien Randdicken pas plus auswerten là qui Differenzen cela Notwendige déjà hergeben. |
|
|
| |
|
|
|
Jörg Sellmeyer | oui - mais avant qui Erstellung des Fensters, sommes qui inneren Maße oui encore pas bekannt. et qui volonté ensuite plan par AdjustWindowRect mittels qui Stile gesetzt. il peut naturellement entier brachial seulement cela jeweilige la fenêtre erstellen et ensuite avec SetWindowPos korrigieren. mais joli ist anders... |
|
|
| |
|
|
|
| déjà bien sûr,
es bleibt qui Abwägung si "schneller" et "einfacher", un Contrôle seulement unsichtbar trop erzeugen et ensuite à qui richtige Stelle trop apporter statt viele Werte (möglicherweise aus qui Registry) trop ermitteln im Unwissen si sur allen OS cela so aussi gleichermaßen ausreichend ist.
Meiner Vermutung pour est un simples Fenêtre- et Clientrect simple "effizienter" et une doch droite analoge Messung. |
|
|
| |
|
|
|
Jörg Sellmeyer | cela bliebe ensuite nachzumessen... |
|
|
| |
|
|
|
Jörg Sellmeyer | ah oui: um cela Lecture qui Menühöhe tu viens pas herum, là cela menu oui zur Client-Area zählt. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 07.06.2018 ▲ |
|
|
|