| |
|
|
E.T. | Wird dir kleinsmögliche Fenster-Größe durch Windows bestimmt oder passt da was in XProfan nicht .
Erzeuge Fenster 800*600 und lasse mir per %cyCaption die Höhe der Titelzeile anzeigen (Bei meiner Auflösung 22 px.): KompilierenMarkierenSeparieren Nun Ändere ich die Fenstergröße per KompilierenMarkierenSeparieren und erhalte per @Height(%HWnd,1) 38 , auch wenn ich statt %cyCaption 25 angebe, wirds nicht kleiner als die (ominösen?) 38... ...irgendwo muss diese Zahl doch her kommen
Hintergrund: ich möchte von meinem Fenster in einer Ecke (oder sonstwo) ein Mini-Fenster haben, welches für D&D empfänglich ist, soll aber nicht allzusehr stören |
|
|
| Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 26.12.2014 ▲ |
|
|
|
|
| E.T. (26.12.14)
Wird dir kleinsmögliche Fenster-Größe durch Windows bestimmt oder passt da was in XProfan nicht .
Die wird zunächst in der wproc bestimmt [...] die wiederum kommt zunächst von XProfan oder man klingt eine eigene ein.
Die 38 ist glaube ich irgend eine sysprop einstellbar bei Anzeige->Schema->Erweitert (oder so ähnlich).
Bei Fenstern mit Titelzeile kann y vlt. nicht kleiner als die Titelzeile sein, ein Windowstyle 80 Fenster hingegen kann imho auch 0x0 sein. |
|
|
| |
|
|
|
Georg Teles | Also von Windows zu Windows & vom Stil zu Stil (Fenster die von diesen Windows Styles / Unterstilen abhängig sind) werden die Ränder der Fenster ja noch berücksichtigt
Sowas ist mir schonmal aufgefallen, dass bei XP zB nach mit Create erzeugten Objekten das Fenster "früher abschneidet" als bei 8
Bei XP gab / gibt es diese .msstyles Dateien, die man mit ResHacker zb. bearbeiten kann, unter dem Ressourcennamen TEXTFILE oder wie auch immer vom Autor benannt, sind alle INIs der einzelnen Unterstile zu finden, wo Farben Größen bspw. definiert sind --- bei 7 & 8 habe ich keine Ahnung
d.h. wenn man window 0,0-800,600 erzeugt, sind die Außenmaße 800 * 600, die Fensterfläche ist also minus die Ränder bzw. minus die Titelleiste oben
wie man nun den Rand des aktuellen Stils auslesen kann, habe ich keine Ahnung ( Ich wette dafür gibt es Abfragen in Windows mit deren Hilfe man alle Metrics auslesen kann ) |
|
|
| |
|
|
|
HofK | Georg Teles (30.12.14)
( Ich wette dafür gibt es Abfragen in Windows mit deren Hilfe man alle Metrics auslesen kann )
... das müsste GetSystemMetrics( index ) sein
Dazu gibt es zwei Seiten mit den Indizes Der Index SM_CYCAPTION sollte die Höhe der normalen Titelleiste sein.
Im eigenen System kan man mit regedit schauen. So ist' s bei mir in Win 8.1 (Anlage)
Mit XProfan kan man schnell schauen wie es genauer aussieht: __________________________________ $H Windows.ph
' aus der Windows.ph in xprofan/bin kopiert: '----------------------------------- ' SM_CXSCREEN = 0; ' SM_CYSCREEN = 1; ' SM_CXVSCROLL = 2; ' SM_CYHSCROLL = 3; ' SM_CYCAPTION = 4; ' SM_CXBORDER = 5; ' SM_CYBORDER = 6; ' SM_CXDLGFRAME = 7; ' SM_CYDLGFRAME = 8; ' SM_CYVTHUMB = 9; ' SM_CXHTHUMB = 10; ' SM_CXICON = 11; ' SM_CYICON = 12; ' SM_CXCURSOR = 13; ' SM_CYCURSOR = 14; ' SM_CYMENU = 15; ' SM_CXFULLSCREEN = 16; (bei mir steht da identisch $10) ' SM_CYFULLSCREEN = 17; ' SM_CYKANJIWINDOW = 18; ' SM_MOUSEPRESENT = 19; ' SM_CYVSCROLL = 20; ' SM_CXHSCROLL = 21; ' und so weiter ... '----------------------------------
windowtitle "Sysmetric" windowstyle 24 window 25,25 - 500,800
whileloop 0,21 drawtext 10,20*&loop, ~GetSystemMetrics( &loop ) endwhile
waitinput ____________________________________________ |
|
|
| |
|
|
|
Georg Teles | OK also KompilierenMarkierenSeparieren Zu SM_CYCAPTION (Win8: 23 Px) muss der normale vertikale Rand SM_CYFRAME (8 Px) dazu addiert werden, damit die richtige Höhe der Titelleiste rauskommt (31 Px), kann das jemand noch bestätigen?
EDIT: Kleinstmögliche Breite gibt SM_CXMIN an (28) - The minimum width of a window, in pixels. |
|
|
| |
|
|
|
E.T. | Hm, bei mir ist ein Fenster 800x600 auch außen genau so groß: KompilierenMarkierenSeparieren $H Windows.ph
WindowStyle 4+8+512
Window 800,600
print "Minimale Breite lt. System:",~GetSystemMetrics(28)
print "Minimale Höhe lt. System:",~GetSystemMetrics(29)
print "*************************************************************************"
print "--------------XProfan-Werte:"
print "Fenster-Größe AUSSEN lt. XProfan:",Width(%HWnd,1),"x",height(%HWnd,1)
print "Fenster-Größe INNEN lt. XProfan:",Width(%HWnd,0),"x",height(%HWnd,0)
print "Höhe Titelzeile lt. XProfan:",%cyCaption
print "Höhe Menü lt. XProfan:",%cyMenu
print "Rahmen oben und unten lt. XProfan:", "???"
print "Rahmen links und rechst lt. XProfan:", "???"
print "--------------System-Werte:"
print "Rahmen unten und oben lt. System:",~GetSystemMetrics(33)
print "Rahmen links und rechts lt. System:",~GetSystemMetrics(32)
print "Höhe Titelzeile lt. System:",~GetSystemMetrics(4)
print "Höhe Menü lt. System:",~GetSystemMetrics(15)
print "--------------Gerechnet:"
print " (Rahmen oben + Titel + Menü + innere Höhe(XProfan) + Rahmen)"
print "Fenster-Höhe lt. System + XProfan:",~GetSystemMetrics(33)+~GetSystemMetrics(4)+~GetSystemMetrics(15)+height(%HWnd,0)+~GetSystemMetrics(33)
Waitinput
end
Also ist meine ominöse "38" vom System als kleinste Fenster-Höhe vorgegeben, naja, muss ich halt leben damit oder mir was anderes einfallen lassen...
Georg Teles (07.01.15)
Zu SM_CYCAPTION (Win8: 23 Px) muss der normale vertikale Rand SM_CYFRAME (8 Px) dazu addiert werden, damit die richtige Höhe der Titelleiste rauskommt (31 Px), kann das jemand noch bestätigen?
Kann ich so nicht bestätigen. Ich denke, den vertikalen Rand dazu zu addieren, um die Höhe zu bekommen, kann nicht ganz passen. Bin aber grad zu faul zum denken zum Feierabend |
|
|
| Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 07.01.2015 ▲ |
|
|
|
|
HofK | kleiner Trost: meine kleinste Fenster-Höhe bei Win8.1 ist 47
Habe aber auch bei der Programmierung meiner CPU Simulation kräftig in der Registry rumgespielt und beim Testen bemerkt, dass die Darstellung des Fensters, der Controls zwischen Windows XP, 7, 8.1 nicht konsistent ist.
Besonders die Gridbox war stark abweichend und ich habe letztendlich auf 7, 8.1 optimiert.
Meine Registry Einstellungen sind nicht mehr der Urzustand, habs aber nicht notiert. |
|
|
| |
|
|
|
| Darum ja auch sowas hier: [...]
Oder man erzeugt ein Fenster mit Stil 80 { | 512 }
Da hat man dann die volle Kontrolle darüber was angezeigt werden soll und kann auch Titelzeile etc. selbst zeichnen. |
|
|
| |
|
|