使用wxdindows開發跨平臺的介面(轉)
使用wxdindows開發跨平臺的介面(轉)[@more@]使用wxdindows開發跨平臺的介面 無雙 發表於loveunix.netmushuang.forumer.comlinuxsir.com轉載請保留出處 使用wxwindows開發的一個例子新增新的投票 | 訂閱此主題 | 郵寄此主題 | 列印此主題無雙 發帖時間 2004-04-01 21:21:36天才豬組別: 管理員金錢: 3555 兩帖子數量: 1036精華帖數: 47註冊時間: 2003-09-16照著例子進行了半個小時寫出了一個簡單的例子 當然後面會在它上面新增功能 目標是實現一個郵件客戶端(與linuxaid的某兄打賭的 歡迎大家參與 如果想參與的話分一下工好了 )WxWindows開發十分簡單 我覺得比使用mfc還要簡單主程式的入口是wxApp 類的派生類介面的入口是wxFrame的派生類事件可以像是windows那樣使用宏定義的方法也可以透過設定事件處理的函式進行呼叫 (前幾天寫了個小程式 如果高興的話 在這裡找就是 )另外wxWindows有豐富的文件 這幾天wxwindows.sf.net上不去了 不知道為什麼又把sf給封了 不過其它地方也有不少好文件 照寫就是了 讓你體會到快速開發介面的感覺makefile這個Makefile是在linux下的 照它的例子抄了一個程式碼## File: Makefile for samples# Author: Robert Roebling# Created: 1999# Updated:# Copyright: (c) 1998 Robert Roebling## This makefile requires a Unix version of wxWindows# to be installed on your system. This is most often# done typing "make install" when using the complete# sources of wxWindows or by installing the two# RPM packages wxGTK.XXX.rpm and wxGTK-devel.XXX.rpm# under Linux.#CXX = $(shell wx-config --cxx)PROGRAM = MailFoxOBJECTS = $(PROGRAM).o MainGUI.o# implementation.SUFFIXES: .o .cpp.cpp.o :$(CXX) -c `wx-config --cxxflags` -o $@ $<all: $(PROGRAM)$(PROGRAM): $(OBJECTS)$(CXX) -o $(PROGRAM) $(OBJECTS) `wx-config --libs`clean:rm -f *.o $(PROGRAM)這個帖子已被 無雙 於 2004-04-01 21:23:13 編輯--------------------偶還是願意看提問時寫清楚問題與標題的貼子:DIP: [ ---------- ] 無雙 發帖時間 2004-04-01 21:24:37天才豬組別: 管理員金錢: 3555 兩帖子數量: 1036精華帖數: 47註冊時間: 2003-09-16應用程式類 這是主程式入口 這個類對程式和介面進行初始化Oninit是初始化函式 可以看wxwindows定義程式碼#ifndef MAILFOX_H_#define MAILFOX_H_class MailFox:public wxApp{public:virtual bool OnInit();};#endif--------------------偶還是願意看提問時寫清楚問題與標題的貼子:DIP: [ ---------- ] 無雙 發帖時間 2004-04-01 21:29:11天才豬組別: 管理員金錢: 3555 兩帖子數量: 1036精華帖數: 47註冊時間: 2003-09-16應用程式入口 看起來很簡單建立介面也很簡單 就只是宣告瞭wxFrame的繼承類並使用Show()讓它顯示使用SetTopWindow 設定這個視窗為應用程式的主視窗程式碼// author:wushuang// 2004/04/01// GPL// desc: mainapp// #include #include "MainGUI.h"#include "MailFox.h"IMPLEMENT_APP(MailFox)bool MailFox::OnInit(){MainGUI *pGUI = new MainGUI("MailFox郵件程式",0,0,640,480);pGUI->Show(true);SetTopWindow(pGUI);return true;}--------------------偶還是願意看提問時寫清楚問題與標題的貼子:DIP: [ ---------- ] 無雙 發帖時間 2004-04-01 21:32:43天才豬組別: 管理員金錢: 3555 兩帖子數量: 1036精華帖數: 47註冊時間: 2003-09-16現在到主介面視窗了主介面視窗從wxFrame派生 在建構函式中進行介面的初始化 (等下會看到 )使用DECLARE_EVENT_TABLE宣告要使用事件處理宏 等下也會看到當然可以不使用事件處理宏 可以查詢我發的前一個例子wxwindows中使用的控制元件,在程式退出時會自動清除 所以在析構中不必使用free程式碼#ifndef MAINGUI_H_#define MAINGUI_H_// toolbar and menubar commandsenum {IDC_QUIT = 1,IDC_ABOUT };class MainGUI:public wxFrame{wxMenuBar *menuBar;wxMenu *menuFile;void OnAbout(wxCommandEvent &event);void OnExit (wxCommandEvent &event);public:MainGUI(const wxChar *Title,int xpos,int ypos,int width,int height);~MainGUI();DECLARE_EVENT_TABLE();};#endif--------------------偶還是願意看提問時寫清楚問題與標題的貼子:DIP: [ ---------- ] 無雙 發帖時間 2004-04-01 21:36:38天才豬組別: 管理員金錢: 3555 兩帖子數量: 1036精華帖數: 47註冊時間: 2003-09-16介面的實現新增控制元件在建構函式中進行注意建構函式中對父類進行了初始化wxFrame((wxFrame*)NULL,-1,Title,wxPoint(xpos,ypos),wxSize(width,height)事件的定義 宣告用哪個函式處理哪個事件BEGIN_EVENT_TABLE(MainGUI,wxFrame)EVT_MENU(IDC_ABOUT,MainGUI::OnAbout)EVT_MENU(IDC_QUIT,MainGUI::OnExit)END_EVENT_TABLE()這個介面只是新增了一個選單 然後還有一個狀態列沒有其它控制元件另外 把這個檔案儲存成MainGUI.cpp上面對應的標頭檔案為MainGUI.h上面的應用程式的類檔名分別為MailFox.cpp MailFox.h儲存好 編譯並執行就可以看到了程式碼#include #include "MainGUI.h"MainGUI::MainGUI(const wxChar *Title,int xpos,int ypos,int width,int height):wxFrame((wxFrame*)NULL,-1,Title,wxPoint(xpos,ypos),wxSize(width,height)){// create menubar and menumenuBar = new wxMenuBar;if( menuBar )menuFile = new wxMenu;elsemenuFile = NULL;if(!menuFile){delete menuBar;return;}menuFile->Append(IDC_ABOUT,"關於");menuFile->Append(IDC_QUIT,"退出");menuBar->Append(menuFile,"檔案");SetMenuBar(menuBar);CreateStatusBar(3);SetStatusText("歡迎使用MailFox郵件軟體");}MainGUI::~MainGUI(){}BEGIN_EVENT_TABLE(MainGUI,wxFrame)EVT_MENU(IDC_ABOUT,MainGUI::OnAbout)EVT_MENU(IDC_QUIT,MainGUI::OnExit)END_EVENT_TABLE()void MainGUI::OnAbout(wxCommandEvent& event){wxMessageDialog aboutDialog(this,"MailFox郵件軟體,新的郵件客戶端","關於",wxOK);aboutDialog.ShowModal();}void MainGUI::OnExit(wxCommandEvent &event){Close(true);}__________________[IMG]http://www.loveunix.net/style_images/1/logo2.gif[/IMG]歡迎參觀我的論
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-944748/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用c++開發跨平臺的程式C++
- 使用 Vagrant 打造跨平臺開發環境開發環境
- 跨平臺開發框架的大旗框架
- Dart Editor——跨平臺的開發工具Dart
- 使用Vagrant搭建跨平臺的Python開發環境Python開發環境
- 跨平臺開發框架 Lynx 初探框架
- 跨平臺開發時代的 (再次) 到來?
- [譯] 使用 Flutter 實現跨平臺移動端開發Flutter
- 使用Xamarin實現跨平臺移動應用開發
- 00-跨平臺開發之FlutterFlutter
- APP跨平臺開發技術分析APP
- 跨平臺開發Flutter初體驗Flutter
- 移動跨平臺開發深度解析
- 跨平臺開發技術簡介!
- hybird跨平臺移動app開發APP
- c++跨平臺開發經驗C++
- 移動端跨平臺開發的深度解析
- 跨平臺開發,各種巨集的定義
- MediaPipe - 跨平臺機器學習應用開發框架API機器學習框架
- 邁步進入跨平臺開發時代
- 使用IC框架開發跨平臺App的備忘錄123框架APP
- 移動開發的跨平臺技術演進移動開發
- TypeScript, Angular 和移動端的跨平臺開發TypeScriptAngular
- C#移動跨平臺開發(2)Xamarin移動跨平臺解決方案是如何工作的?C#
- flutter跨平臺開發之App升級方案FlutterAPP
- 小程式跨平臺開發解決方案探索
- 跨平臺 App 開發引擎 CrossApp 亮相 GMGDCAPPROS
- 推薦幾款App跨平臺開發工具APP
- MobileLab跨平臺開發專題交流會
- 如何有效開發一款跨平臺遊戲遊戲
- 微信公共平臺開發(轉)
- Remax One - 重新設計小程式的跨平臺開發REM
- 淺談移動跨平臺開發框架的發展歷程框架
- 微軟借力.NET開源跨平臺支援,佈局物聯網平臺開發微軟
- 在 WSL Ubuntu 上使用 .NET 進行跨平臺開發新手入門Ubuntu
- [轉]:多程式等待的跨平臺實現
- Flutter嚐鮮:跨平臺移動應用開發Flutter
- 跨平臺開發之React Native初體驗React Native