Einzelnen Beitrag anzeigen

Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#7

Re: TMenuItem per Code aufklappen?

  Alt 28. Aug 2009, 02:16
Hi,

ich habe im Visual Basic CodeGuru Forum einen Beitrag gefunden, der beschreibt wie man MenuItems aufklappen kann.
Leider keine Win32 API Funktion, sondern ein bißchen rum gefrickel.

CodeGuru Forum

Hab's ein wenig umgeändert. Mein Beispiel klappt das erste Menü auf.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);

  function ScreenToAbsolute(const P: TPoint): TPoint;
  begin
    Result.X := P.X * (MAXWORD div GetSystemMetrics(SM_CXSCREEN));
    Result.Y := P.Y * (MAXWORD div GetSystemMetrics(SM_CYSCREEN));
  end;

var
  R: TRect;
  P: TPoint;
  C: TPoint;

begin

  GetMenuItemRect(Handle, Menu.Handle, 0, R);
  P.X := (R.Left + R.Right) div 2;
  P.Y := (R.Top + R.Bottom) div 2;
  P := ScreenToAbsolute(P);
  GetCursorPos(C);
  mouse_event(MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_MOVE, P.X, P.Y, 0, GetMessageExtraInfo);
  mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, GetMessageExtraInfo);
  mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, GetMessageExtraInfo);
  SetCursorPos(C.X, C.Y);

end;
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat