Autor Beitrag
PLuS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 98

Win XP, Suse Linux 9.0
D5 Standard, D2005 Personal; Perl; PureBasic
BeitragVerfasst: Fr 09.06.06 10:34 
Halli Hallo!

Ich möchte folgendes in meinem Programm per Buttonklick in einem externen Programm ein Menu-Item des Main-Menus "enablen". Dazu benutze ich die "EnableMenuItem"-Funktion der Win-API.

Mein Problem ist jedoch, dass das Menu-Item zwar enabled wird, das OnClick-Event aber quasi nicht aufgerufen wird, das heißt ich kann darauf klicken und das Menu klappt auch wieder zu, jedoch passiert dann weiter nichts.

Ein eher kleineres Problem ist dazu noch, dass der Button zwar "enabled" wird, er bleibt jedoch "grayed".

Folgenden Code benutze ich:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
var
  hfrm, hmenu, hsubmenu: THandle;
//...
hfrm := FindWindow('Tfrmukmmain', 'UKM');
if hfrm <> 0 then
begin
  hmenu := GetMenu(hfrm);
  if hmenu <> 0 then
  begin
    hsubmenu := GetSubMenu(hmenu, 3);  //Das Menu befindet sich an Stelle 3 (beginnend bei 0)
    if hsubmenu <> 0 then
      EnableMenuItem(hsubmenu, 9, MF_BYPOSITION or MF_ENABLED);  //9te Position des Submenus
  end;
end;



Ich hoffe, mir kann jemand auf die Sprünge helfen!
Danke schonmal im vorraus!

_________________
Der letzte macht die Tür zu!
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 09.06.06 19:37 
and not MF_GRAYED
PLuS Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 98

Win XP, Suse Linux 9.0
D5 Standard, D2005 Personal; Perl; PureBasic
BeitragVerfasst: Fr 23.06.06 17:35 
Dadurch wird das Item jetzt zwar "ent-grayed", das Event wird aber trotzdem nicht aufgerufen!

_________________
Der letzte macht die Tür zu!
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 24.06.06 15:28 
Dann wird das wohl noch im Code deaktiviert. Keine Chance, es sei denn du hackst die Sourcen der Anwendung.
PLuS Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 98

Win XP, Suse Linux 9.0
D5 Standard, D2005 Personal; Perl; PureBasic
BeitragVerfasst: Sa 24.06.06 17:55 
Das ist es ja grade nicht, da es meine eigene Anwendung ist! :D

Aber prinzipiell sollte der "Code" ausgeführt werden, das versteh ich schon richtig?
(Nicht dass die WinAPI da irgendeine Sperre vorsetzt! :D )


Danke für die Hilfe

_________________
Der letzte macht die Tür zu!
Steve1024
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 141

Windows 2K, XP, 7 & Server 2003 - 2008; Linux (Ubuntu, Fedora)
D7, D05, D06, D09, DXE
BeitragVerfasst: Mo 26.06.06 18:30 
Das kommt drauf an, was du beim Erzeugen des Menüs angegeben hast...
PLuS Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 98

Win XP, Suse Linux 9.0
D5 Standard, D2005 Personal; Perl; PureBasic
BeitragVerfasst: Mo 26.06.06 23:38 
Das versteh ich jetzt nicht!?!?!?

Was hätte ich denn angeben müssen, damit es nicht funktioniert?

_________________
Der letzte macht die Tür zu!