Forum: PC-Programmierung Erweiterte Infos über API32 Menu-Eigenschaften


von Exce(l)ntriker (Gast)


Lesenswert?

Hallo an die Mitlesenden,

man kann ja unter (Excel)-VBA Funktionen der API32 nutzen um z.B. ein 
Menu in ein Fenster zu platzieren. Es gibt auch ein sehr schönes 
Beispiel dazu im Web:

http://michael-schwimmer.de/vba092.htm

Nun verschieben sich aber die Steuerelemente im Fenster nach unten 
sobald die Menuleiste erscheint, was an sich logisch und prinzipiell 
kein Problem ist. Es würde mich nur interessieren, ob man von VBA aus 
auch irgendwie abfragen kann wie hoch die Menüleiste ist? Ich habe im 
MSDN die API-Referenz gefunden und die Funktionen
1
SetWindowLongFindWindow
2
CreatePopupMenu
3
CreateMenu
4
DestroyMenu
5
DrawMenuBar
6
SetMenu
7
InsertMenuItem

nachgeschlagen. Leider konnte ich keinen Hinweis auf das 
Erscheinungsbild der Menüleiste finden. Ist dies von 'globalen' 
Windows-Einstellungen (in meinem Fall XP&SP3) abhängig? Oder gibt es 
Möglichkeiten, z.B. die Hintergrundfarbe der Menüleiste eines (1) 
Fensters temporär per API zu verändern oder eben die sichtbare Höhe 
abzufragen?

Würde mich freuen wenn jemand helfen kann.

Grüße,
Stefan

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

API32 gibt es nicht. Du meinst die Win32-API.

Die Höhe der Menüleiste* erhält man mit

   GetSystemMetrics(SM_CYMENU);

SM_CYMENU hat den Wert 15.



*) O-Ton Dokumentation: The height of a single-line menu bar, in pixels.

von Exce(l)ntriker (Gast)


Lesenswert?

>API32 gibt es nicht. Du meinst die Win32-API.

Stimmt. Danke für die Richtigstellung.

>Die Höhe der Menüleiste* erhält man mit
>
>  GetSystemMetrics(SM_CYMENU);
>
>SM_CYMENU hat den Wert 15.

Danke für den Tipp, auf GetSystemMetrics wäre ich nicht gekommen!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.