auch hier der Hinweis, wie mit der DLL wx-c.dll aus dem Paketen http://sourceforge.net/project/showfile ... _id=290546
wxWidgets mit Purebasic genutzt werden können. Mehr Infos im Original-Post im englischen Forum http://purebasic.myforums.net/viewtopic.php?t=13414.
Code: Alles auswählen
#wxBOTH = $0004 | $0008
#wxDEFAULT_FRAME_STYLE = 541068864
#wxWIDGETS_LIB = 0
Global wx_app
Global wx_frame
Global wx_panel
Global wx_button
Procedure ButtonClick(*event.l, iListener.l)
wx_msgbox_size = CallCFunction(#wxWIDGETS_LIB, "wxSize_ctor", 150, 50)
CallCFunction(#wxWIDGETS_LIB, "wxMsgBox", wx_frame, "I'm going bye-bye!", "Bye!", 0, wx_msgbox_size);
CallCFunction(#wxWIDGETS_LIB, "wxWindow_Close", wx_frame, #True)
ProcedureReturn 0
EndProcedure
Procedure wxApp_OnInit(*self.l)
wx_frame = CallCFunction(#wxWIDGETS_LIB, "wxFrame_ctor")
If wx_frame
wx_frame_pos = CallCFunction(#wxWIDGETS_LIB, "wxSize_ctor", 200, 200)
wx_frame_size = CallCFunction(#wxWIDGETS_LIB, "wxSize_ctor", 500, 300)
If CallCFunction(#wxWIDGETS_LIB, "wxFrame_Create", wx_frame, 0, -1, "Welcome To WX-C", wx_frame_pos, wx_frame_size, #wxDEFAULT_FRAME_STYLE, "frame")
wx_panel = CallCFunction(#wxWIDGETS_LIB, "wxPanel_ctor")
CallCFunction(#wxWIDGETS_LIB, "wxPanel_Create", wx_panel, wx_frame, 1, 0, 0, 0, 0)
wx_button = CallCFunction(#wxWIDGETS_LIB, "wxButton_ctor")
wx_button_pos = CallCFunction(#wxWIDGETS_LIB, "wxSize_ctor", 150, 100)
wx_button_size = CallCFunction(#wxWIDGETS_LIB, "wxSize_ctor", 100, 30)
CallCFunction(#wxWIDGETS_LIB, "wxButton_Create", wx_button, wx_panel, 2, "Exit!", wx_button_pos, wx_button_size , 0, 0, 0);
CallCFunction(#wxWIDGETS_LIB, "wxEvtHandler_proxy", wx_frame, @ButtonClick())
wxEvent_EVT_COMMAND_BUTTON_CLICKED = CallCFunction(#wxWIDGETS_LIB, "wxEvent_EVT_COMMAND_BUTTON_CLICKED")
CallCFunction(#wxWIDGETS_LIB, "wxEvtHandler_Connect", wx_frame, wxEvent_EVT_COMMAND_BUTTON_CLICKED, 2, -1, 0)
CallCFunction(#wxWIDGETS_LIB, "wxWindow_CenterOnScreen", wx_frame, #wxBOTH)
CallCFunction(#wxWIDGETS_LIB, "wxWindow_Show", wx_frame, #True)
EndIf
EndIf
ProcedureReturn CallCFunction(#wxWIDGETS_LIB, "wxApp_OnInit", wx_app)
EndProcedure
Procedure wxApp_OnExit(*self.l)
ProcedureReturn CallCFunction(#wxWIDGETS_LIB, "wxApp_OnExit", wx_app)
EndProcedure
If OpenLibrary(#wxWIDGETS_LIB,"wx-c.dll")
wx_app = CallCFunction(#wxWIDGETS_LIB, "wxApp_ctor")
If CallCFunction(#wxWIDGETS_LIB, "wxApp_RegisterVirtual", wx_app, @wxApp_OnInit(), @wxApp_OnExit())
CallCFunction(#wxWIDGETS_LIB, "wxApp_Run", 1, "")
EndIf
EndIf