Gadgetnummer
Gadgetnummer
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?
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?
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
Re: Gadgetnummer
... 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 ).
wenn ich mich nicht täusche ist hWnd = GadgetID( Gadgetnummer ).
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Gadgetnummer
Unter Windows steht die PB-ID in den Properties unter dem String: "PB_ID"
Code macht zwar keinen Sinn, sollte aber das GetProp_() verdeutlichen.
Gruß
Thomas
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
Gruß
Thomas
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Gadgetnummer
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
als auf die ControlID. Ob die immer mit der PB-ID übereinstimmt?
Gruß
Thomas
Re: Gadgetnummer
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
For free libraries and tools, visit my web site (also home of jaPBe V3 and PureFORM).
Re: Gadgetnummer
Beide Methode scheinen nicht zu funktionieren. Zumindest nicht mit später durch GetParent() und GetWindow() ermittelte Gadget-IDs.
Gruß, Frank
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Gadgetnummer
Code? Damit ich die Aussage überprüfen kann und auch verstehe!Frabbing hat geschrieben:Beide Methode scheinen nicht zu funktionieren. Zumindest nicht mit später durch GetParent() und GetWindow() ermittelte Gadget-IDs.
Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Gadgetnummer
@Frabbing
Sicher, dass es die richtige Handle-Nummer ist?
Sicher, dass es die richtige Handle-Nummer ist?
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Gadgetnummer
Kann ja nicht, die Property wird sich doch niemals durch irgendeine Verschachtelung ändernRSBasic hat geschrieben:@Frabbing
Sicher, dass es die richtige Handle-Nummer ist?

Deshalb ja auch meine Nachfrage.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
