Seite 1 von 1

wxWidgets und PureBasic

Verfasst: 20.12.2004 02:32
von FloHimself
Hi,

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