まずはHelloWorldを作ってみましょう.基本ですよね.
helloworld.png

プロジェクトの作成

VisualStudioを起動して,C++の空のプロジェクトを作成します.
色々と設定が必要ですが,それは後回しにします.

ソースコード

次に適当なcppファイルを作成したら,下のようなコードを書きます.

#include <wx/wxprec.h>
#ifdef __BORLANDC__
#pragma hdrstop
#endif

#ifndef WX_PRECOMP
#include <wx/wx.h>
#endif
//ここまではwxWidgetを使う為のおまじない

class MyApp : public wxApp
{
public:
    bool OnInit();
};

IMPLEMENT_APP(MyApp)

bool MyApp::OnInit()
{
    //ここから始まる
    wxFrame *frame = new wxFrame((wxFrame*)NULL, -1, "Hello World");
    frame->Show(TRUE);    //表示
    SetTopWindow(frame);    //トップウィンドウに指定
    return true;
}

細かい理解を除けば簡単ですね.
IMPLEMENT_APP()で指定したwxAppのOnInit()が実行時に最初に呼び出されます.
よって,wxAppを継承したMyAppクラスでOnInit()をオーバーライドしてやる事で
好きな処理を最初にする事ができます.OnInit()では

wxFrame *frame = new wxFrame((wxFrame*)NULL, -1, "Hello World");

の行でウィンドウを作成しています.

frame->Show(TRUE);	//表示
SetTopWindow(frame);	//トップウィンドウに指定

次に表示,トップウィンドウに指定をしてやります.
コードはこれだけです.

プロジェクトの設定

コンパイラやリンカの設定の為にプロジェクトの設定をします.
wxWidgetsのライブラリをスタティックリンクにするか,DLLにするか
DebugビルドかReleaseビルドか,Unicodeを使うかどうか等で設定が変わるので気をつけてください.
例ではスタティックリンク,Unicodeを使わない設定場合を紹介します.
ダイナミックリンクの時はファイル名にdllが付き,
Unicodeを使う時はuが付く位しか違いませんので,試してみてください.

C/C++ 全般 追加のインクルードディレクトリ

Debugの時    $(WXWIN)/include;$(WXWIN)/lib\mswd
Releaseの時  $(WXWIN)/include;$(WXWIN)/lib\msw

$(WXWIN)/includeは wx/wx.h等の基本となるヘッダファイルがほとんど入っているので,
指定しなければ大量のエラーが出ます.
$(WXWIN)/lib/msw(mswd)は lib/???/の???に対応した適切なヘッダを
wx/setup.h でインクルードする為に必要な設定です.

C/C++ プリプロセッサ プロセッサの定義

Debugの時    _DEBUG;WIN32;_WINDOWS;WINVER=0x400;_MT;wxUSE_GUI=1;__WXDEBUG__;WXDEBUG=1
Releaseの時  NDEBUG;WIN32;_WINDOWS;WINVER=0x400;_MT;wxUSE_GUI=1

あまり気にする必要はありません.wxWidgetsをダイナミックリンクするなら
WXUSINGDLLを追加必要があります.

C/C++ コード生成 ランタイムライブラリ

Debugの時    マルチスレッド デバッグ DLL (/MDd
Releaseの時  マルチスレッド DLL (/MD)

あまり気にせず指定してください.

リンカ 入力 追加の依存ファイル

Debugの時    odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib
   $(WXWIN)/lib/zlibd.lib $(WXWIN)/lib/regexd.lib $(WXWIN)/lib/pngd.lib
   $(WXWIN)/lib/jpegd.lib $(WXWIN)/lib/tiffd.lib $(WXWIN)/lib/wxmswd.lib
Releaseの時  odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib
   $(WXWIN)/lib/zlib.lib $(WXWIN)/lib/regex.lib $(WXWIN)/lib/png.lib
   $(WXWIN)/lib/jpeg.lib $(WXWIN)/lib/tiff.lib $(WXWIN)/lib/wxmsw.lib

上で指定しているライブラリは,かなり冗長な指定をしてありますので,
wsock32.lib等,使う予定のないライブラリは外しても問題ありません.

ビルドしてみる

上記の設定を全てしたらビルドしてみてください.
タイトルバーに「Hello world」と書かれたウィンドウが表示されるはずです.
wxFrameのコンストラクタ(new wxFrame)に渡す引数を変えると,色々なスタイルのウィンドウが作成できます.
試してみてください. うまくいかなかった場合は,上記の設定,wxWidgetsのライブラリはコンパイル済みか,
環境変数の設定はおかしくないか等を調べてみてください.

毎回設定するのはめんどくさいので

毎回プロジェクトの設定をするのはめんどくさいので,
$(WXWIN)/samples/minimalからminimal.dswとminimal.dspをコピーして流用するのが楽かと思います.

プログラミング に戻る.


お名前:
添付ファイル: filehelloworld.png 872件 [詳細]