![]() |
Breite eines Popup-Menüs bestimmen?
Wie kann man die Breite eines Popup-Menüs unabhängig von der Breite der darin enthaltenen Menüeinträge einstellen? Genauer gesagt benötige ich folgende Funktion:
Delphi-Quellcode:
SetPopupMenuWidth(MyPopupMenu, Max(BreiteDesLaengstenEintrages, 150));
|
Re: Breite eines Popup-Menüs bestimmen?
|
Re: Breite eines Popup-Menüs bestimmen?
kleine anmerkung
Zitat:
|
Re: Breite eines Popup-Menüs bestimmen?
Zitat:
Um die Breite des Popupmenüs anzupassen, sind grundsätzlich zwei Möglichkeiten vorstellbar: 1. Umgehung der von Windows durchgeführten Breitenanpassung (welche wiederum aus der Breite des längsten Menüeintrages resultiert), 2. z.B. Anfügen sovieler Leerzeichen zum längsten Menüeintrag, bis die gewünschte Breite erreicht ist. Wenn es für die 1. Möglichkeit einen direkten API-Aufruf gäbe, so wäre mir das lieber (Einsparung einer Menge Rechnerei). |
Re: Breite eines Popup-Menüs bestimmen?
Hallo,
Du könntest folgendermaßen vorgehen: 1. Weise dem PopupMenü eine Imageliste zu, die auch leer sein darf. 2. Setze die Eigenschaft OwnerDraw des Menüs auf den Wert True. 3. Weise mindestens einem Menüeintrag eine Behandlungsroutine für das Ereignis OnMeasureItem zu. In der Behandlungsroutine kannst Du dann die gewünschte Breite setzen. Siehe dazu auch ![]() Gruß Hawkeye |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz