Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Index des markierten Menüeintrags ohne "MenuItemFromPoint" (https://www.delphipraxis.net/15639-index-des-markierten-menueeintrags-ohne-menuitemfrompoint.html)

franz 1. Feb 2004 22:24


Index des markierten Menüeintrags ohne "MenuItemFromPoi
 
Hi,

ich habe folgende Frage: Wie kann man den Index von Menüeinträgen in Popupmenüs ermitteln, ohne „MenuItemFromPoint“ zu verwenden? Also wenn der Benutzer z. B. einen Menüeintrag mit der Tastatur ansteuert.

Neugierig zu was ich es einsetzten möchte?

[edit=Luckie]Titel korrigiert. Mfg, Luckie[/edit]

franz 12. Feb 2004 22:41

Re: Index des markierten Menüeintrags ohne "MenuItemFro
 
:gruebel: Hat wirklich keiner einer Idee?

Assarbad 14. Feb 2004 19:08

Re: Index des markierten Menüeintrags ohne "MenuItemFro
 
Code:
UINT GetMenuState(          HMENU hMenu,
    UINT uId,
    UINT uFlags
);
Auf MF_HILITE testen?!? Sollte doch gehen, oder?

franz 16. Feb 2004 22:44

Re: Index des markierten Menüeintrags ohne "MenuItemFro
 
8) Hi,

damit ging es leider nicht. Aber ich habe jetzt eine andere Möglichkeit gefunden, in der „GetMenuItemInfo“ verwendet wird und die Menüeinträge in einer Schleife abgefragt werden.

Delphi-Quellcode:
function GetMenuSelPos(Menu: HMENU): Integer;
var
  iCount, ix: Integer;
  mInfo: tagMenuItemInfo;
begin
  Result := 0;

  mInfo.cbSize := SIZEOF(TMenuItemInfo);
  mInfo.fMask := MIIM_STATE;

  iCount := GetMenuItemCount(Menu);
  ix    := 0;
  while ix < iCount do
    begin
      if (GetMenuItemInfo(Menu,ix,true,mInfo)) and
         (mInfo.fState and MF_HILITE > 0) then
         begin
           Result := ix;
           Break;
         end;
      Inc(ix);
    end;
end;
“GetMenuSelPos“ gibt den Index des markierten Menüeintrags zurück, der sich direkt in dem Menü befindet, das in „Menu: HMENU“ angegeben wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz