J'aimerais créer dans une fenêtre existante un gadget, j'ai essayé ceci
Code : Tout sélectionner
ProcedureDLL Draw()
UseGadgetList(WindowID(0))
TextGadget(0,0,0,100,30,"teste")
EndProcedure
Merci d'avance
Code : Tout sélectionner
ProcedureDLL Draw()
UseGadgetList(WindowID(0))
TextGadget(0,0,0,100,30,"teste")
EndProcedure
Code : Tout sélectionner
ProcedureDLL.l Draw(WindowID)
Protected OldGadgetList
OldGadgetList = UseGadgetList(WindowID) ; Create GadgetList and store old GadgetList
TextGadget(0, 0, 0, 100, 30, "teste")
UseGadgetList(OldGadgetList)
EndProcedure
Code : Tout sélectionner
OpenWindow(0, 0, 0, 500, 500, "Test", #PB_Window_ScreenCentered)
If OpenLibrary(0, "InsertGadget.dll")
If CallFunction(0, "Draw", WindowID(0))
CloseLibrary(0)
EndIf
EndIf
Repeat : Until WaitWindowEvent(10) = #PB_Event_CloseWindow
Code : Tout sélectionner
ProcedureDLL Draw(WindowID)
Protected OldGadgetList
UseGadgetList(WindowID)
TextGadget(0, 0, 0, 100, 30, "teste")
EndProcedure
Code : Tout sélectionner
Import "TesteDll.lib"
Draw(IdWindow)
EndImport
OpenWindow(0, 0, 0, 500, 500, "Test", #PB_Window_ScreenCentered)
Draw(WindowID(0))
Repeat : Until WaitWindowEvent(10) = #PB_Event_CloseWindow
Code : Tout sélectionner
ProcedureDLL Draw(WindowID, Text.s)
UseGadgetList(WindowID)
TextGadget(0, 0, 0, 100, 30, Text)
EndProcedure
Code : Tout sélectionner
Prototype.i ProtoDraw(Window.i, Text.s)
OpenWindow(0, 0, 0, 500, 500, "Test", #PB_Window_ScreenCentered)
If OpenLibrary(0, "InsertGadget.dll")
Draw.ProtoDraw = GetFunction(0, "Draw")
EndIf
Draw(WindowID(0), "Name")
Repeat : Until WaitWindowEvent(10) = #PB_Event_CloseWindow
Peu de chance, ou alors avec de la bidouille, il faut que ta DLL ai accès à des fonctions interne à ton exécutable, l'idéal est d'envoyer à ta DLL une liste de pointeur.microdevweb a écrit :ceci serrait'il possible si je créais la dll en purebasic et voudrais l'utilisée avec un autre langage?
Code : Tout sélectionner
Declare ChangeTitle(title.s)
Structure sApplicationAction
*funcChangeTitle
EndStructure
myApp.sApplicationAction
myApp\funcChangeTitle = @ChangeTitle
Procedure ChangeTitle(title.s)
SetWindowTitle(wnd, title)
EndProcedure