Seite 1 von 2
Gadgetnummer
Verfasst: 02.11.2009 21:30
von Josh
hallo,
bis jetzt habe ich ja gedacht, dass die gadgetnummer nur von der pb-verwaltung stammt und nichts mit windows zu tun hat. ich hab mir aber jetzt mal die struktur
Structure DRAWITEMSTRUCT
CtlType.l
CtlID.l
itemID.l
itemAction.l
itemState.l
hwndItem.i
hDC.i
rcItem.RECT
itemData.i
EndStructure
angesehn und bin drauf gekommen, dass in der CtlId die gadgetnummer steht. kann man sich drauf verlassen, oder soll man doch lieber auf das windowshandle zurückgreifen?
Re: Gadgetnummer
Verfasst: 02.11.2009 21:37
von Kaeru Gaman
... wenn die Gadget-Nummer gefragt wird, benutz die, wenn etwas das Windows-Handle verlangt, benutz das.
wenn ich mich nicht täusche ist hWnd = GadgetID( Gadgetnummer ).
Re: Gadgetnummer
Verfasst: 02.11.2009 22:01
von ts-soft
Unter Windows steht die PB-ID in den Properties unter dem String: "PB_ID"
Code: Alles auswählen
#gadget = 20
Define gadget.i
OpenWindow(0, #PB_Ignore, #PB_Ignore, 640, 480, "bla", #PB_Window_SystemMenu)
ButtonGadget(#gadget, 10, 10, 80, 30, "#gadget")
gadget = ButtonGadget(#PB_Any, 10, 60, 80, 30, "gadget")
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
Select EventGadget()
Case #gadget
Debug GetProp_(GadgetID(#gadget), "PB_ID")
Case gadget
Debug GetProp_(GadgetID(gadget), "PB_ID")
EndSelect
EndSelect
ForEver
Code macht zwar keinen Sinn, sollte aber das GetProp_() verdeutlichen.
Gruß
Thomas
Re: Gadgetnummer
Verfasst: 02.11.2009 22:35
von Josh
ey danke euch. hab zwar schon öfter auf meinen spy++ geschaut, aber dass der die gadgetnummer auch anzeigtn, ist mir noch nie aufgefallen

Re: Gadgetnummer
Verfasst: 02.11.2009 22:44
von ts-soft
Wenn Du das händle (hWnd) hast, würde ich mich lieber auf GetProp_(hWnd, "PB_ID") verlassen,
als auf die ControlID. Ob die immer mit der PB-ID übereinstimmt?
Gruß
Thomas
Re: Gadgetnummer
Verfasst: 04.11.2009 10:45
von gnozal
Another possibility is GetDlgCtrlID_(), which also works with older PB versions.
Code: Alles auswählen
#gadget = 20
Define gadget.i
OpenWindow(0, #PB_Ignore, #PB_Ignore, 640, 480, "bla", #PB_Window_SystemMenu)
ButtonGadget(#gadget, 10, 10, 80, 30, "#gadget")
gadget = ButtonGadget(#PB_Any, 10, 60, 80, 30, "gadget")
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
Select EventGadget()
Case #gadget
Debug GetDlgCtrlID_(GadgetID(#gadget))
Case gadget
Debug GetDlgCtrlID_(GadgetID(gadget))
EndSelect
EndSelect
ForEver
Re: Gadgetnummer
Verfasst: 09.04.2012 20:58
von Frabbing
Beide Methode scheinen nicht zu funktionieren. Zumindest nicht mit später durch GetParent() und GetWindow() ermittelte Gadget-IDs.
Re: Gadgetnummer
Verfasst: 09.04.2012 21:12
von ts-soft
Frabbing hat geschrieben:Beide Methode scheinen nicht zu funktionieren. Zumindest nicht mit später durch GetParent() und GetWindow() ermittelte Gadget-IDs.
Code? Damit ich die Aussage überprüfen kann und auch verstehe!
Gruß
Thomas
Re: Gadgetnummer
Verfasst: 09.04.2012 21:20
von RSBasic
@Frabbing
Sicher, dass es die richtige Handle-Nummer ist?
Re: Gadgetnummer
Verfasst: 09.04.2012 21:32
von ts-soft
RSBasic hat geschrieben:@Frabbing
Sicher, dass es die richtige Handle-Nummer ist?
Kann ja nicht, die Property wird sich doch niemals durch irgendeine Verschachtelung ändern
Deshalb ja auch meine Nachfrage.