-
まずは準備から
WTL
を始めるに当たって、基礎的な知識について述べておくと、
があれば、なんとか紐解けると思います。
特に、理解が大変そうなのは、WTL がテンプレートを駆使している部分や、メッセージループのあたりの実装部分だと思います。
ただし、コモンコントロール等を使ったことがなければ、何が便利なのか体感できないかも知れませんので、そういう意味では C++ で一度は
Windows プログラムを書いてみた方が理解が早いと思います。
そういう意味では国内の
MFC より優れたフレームワークを求めている人や、SDK
で独自のクラスライブラリを作ろうとしているような人たちは試してみて損はないと言えるでしょう。
-
ダウンロード
次に WTL
をダウンロードしてこなくてはなりませんが、WTL だけをダウンロードする方法と、SDK ごとダウンロードする方法があります。
WTL
のみダウンロードする方がサイズも小さくていいのですが、自分がやりたいプログラムを考慮して選択してください。具体的には、コモンコントロールや、一部の
Windows の機能を実装するためには、対応するヘッダファイルをインクルードする必要がありますが、最新の機能の部分は VC++ 6.0
には付属していません(.net に付属しているかは未調査)
ということで、
ちなみに私は、SDK
をインストールしましたが、その前に DirectX SDK とかを入れていると、2つ入ってしまうので(というか入った)気をつけてください。WTL
自体は結構小さいのですが(435KB)Plathome SDK はかなり大きいので 1GB 程度の空きは覚悟した方がいいと思います。
-
インストール
ダウンロードしたら、インストール作業があります。
C:\WTL70 にインストールされていると仮定して進めます。
インストールしたフォルダに
Readme.htm があるので、それを開き目を通しておいてください。
大事なのは 2.Features and Installation(特徴とインストール)という章です。
この章の内容に従い、VC
のバージョンにしたがってそれぞれのフォルダにある Setup.js という Java Script を実行してください。 この作業で
Visual Studio に WTL 用の Wizard が登録されます。
WTL
部分に関しては本当にシンプルなのでファイルをいくつか展開して終わりです。興味のある人は早速 Sample
フォルダにあるアプリケーションを実行したり、ソースを覗いてみてください。
-
起動、そして AppWizard
次に、Visual Studio を起動します。

上記は Visual
Studio.net の起動画面ですが、ATL/WTL Application Wizard
という項目が増えているので、これを使って初期プロジェクトを起動します。

実は .net から
Wizard を起動したのが、これを書いているときが始めてだったので、VC++ 6.0
のときと違う画面でちょっと驚きました。しかし、内容はほとんど変わっていません。
まず、Application
Type という部分をクリックします(Overview の下)

すると上記のように、Application Type と Option を選択する画面が現れます。
ここでは Dialog Based (ダイアログアプリケーション)を選択し、Generate .CPP Files
をチェックしました。最初からコモンコントロール用の Manifest がサポートされています(要は Luna インタフェース)
Dialog Based
を選択した場合は、User Interface Fetures (ユーザーインタフェースの特徴)の方はクリックできません(VC++ 6.0
はクリックできたと思います)が気にしないで Finish ボタンを押してください。
-
開発に入る前に・・・
以上で、ベースとなるプロジェクトが作成されます。
まず最初にやりたいことはリソースの修正です。リソースタブを見るとリソースがすべて [英語(米国)]
になっているのが確認できると思います。ここを日本語に修正します。

ここで注意があります。初期のフォントは MS Sans Serif
になっているためこのままでは、ボタンなどの内容を日本語に変更するともれなく何も表示されなくなってしまいます。そこで、Resource.rc
ファイルを直接編集してフォント名を好きなフォントに書き換えてください(ただし、一度 Visual Studio を終了して修正してください)
変更点は
FONT 8, "MS
Sans Serif"
のようになっている場所で、フォントサイズ(上記では8)とフォント名(上記では"MS Sans Serif")をお好きなものに変更してください。
これで基本的な準備はそろったのでビルドして実行してみてください。

こんな感じになりましたか?ちなみに私はフォントを Tahoma にしています。しっかり Luna が適用されていますね。
ちなみにボタンのキャプションを日本語にしても大丈夫。

ところが文字化けしてうまくいかないかも知れません。実はリソースの言語を英語(米国)から日本語に変更する前にキャプションを修正してい
ると、その部分が直らないようです。そうなってしまうと直接
rc ファイルを開いて文字化けした部分を修正してください。
第2回へ