Hallo zusammen,
ich programmier gerade eine
MDI-Anwendung und möchte gerne die Menüs mergen. Dies ist auch kein Problem aber die grafische Darstellung der zusammengesetzen Menüleiste ist etwas eigenartig. Das Problem kann man nur dann sichbar machen, wenn man unter Windows XP z.B. den "Windows XP Stil" ausgewählt hat.
Startet man meine Anwendung und öffnet ein
MDI-Child so wird das Menü zum Teil grau und zum anderen Teil weiß dargestellt.
Ich habe mir dann gedacht, mal ich die Menüleiste mit folgende Routine neu:
Delphi-Quellcode:
procedure TMainForm.updateMenuBar;
var
fMenuBrush : TBrush;
MenuInfo : TMenuInfo;
begin
fMenuBrush := TBrush.Create;
fMenuBrush.Color := Windows.GetSysColor(COLOR_MENU);
MenuInfo.cbSize := SizeOf(MenuInfo);
MenuInfo.hbrBack := fMenuBrush.Handle;
MenuInfo.fMask := MIM_BACKGROUND;
SetMenuInfo(MainMenu1.Handle, MenuInfo);
MenuInfo.dwStyle := 0;
DrawMenuBar(self.handle);
end;
Diese gelingt auch wunderbar, aber die Schaltflächen (also wenn man mit der Maus über das Menu hin und her gleitet) haben einen unterschiedlichen Stil. Das Menü vom Child wird korrket angezeigt, das vom Parent aber nicht mehr.
Maus über ein Child-Menüpunkt : blau
Maus über ein Parent-Menüpunkt: hervorgehoben, weiß (nicht korrekt)
Ich entwickle unter Delphi 5
Vielleicht ist jemanden auch schon dieses Problem aufgefallen und kann mir dabei helfen.
Vielen Dank