Thema: Delphi Merge Menu MDI Anwendung

Einzelnen Beitrag anzeigen

Sergej_Molotov

Registriert seit: 18. Jul 2006
61 Beiträge
 
Delphi 11 Alexandria
 
#1

Merge Menu MDI Anwendung

  Alt 3. Nov 2006, 07:39
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
Thomas
  Mit Zitat antworten Zitat