ホーム

OFF-SOFT.net

OFF-SOFT.net

ウェブやソフトウェアに関するサポート&情報サイトです。サイト構築からソフトウェアの作成、利用まであなたの助けになるかも・・・・しれません。たぶん・・。

リソースエディタResEditとVC++ 2008 Exp.を連動させる

公開日| 2009年04月27日 | コメントはまだありません。
概要 :
最近、WTLなどのフリーの環境にについて、記事を少しずつ書き始めています。そこで、Visual C++ 2008 Expressを利用した場合、すぐに困るのがリソースエディタがないことです。
実際に、なくてもリソースファイルをテキストで編集すれば良いと思っていたのですが、一度、慣れてしまうと、なかなか、昔の不便さに戻れなくなってしまいます。
そこで、今回は、フリーのリソースエディタで、人気のResEditについて簡単に記述したいと思います。
ダウンロード:http://www.resedit.net/
関連記事: VC++ 2008 Expressを使ってWTLの環境設定とサンプルコンパイル
早速、ダウンロードして使ってみましょう
先のダウンロード先から、Unicode Build 版をダウンロードします。
基本的に、日本語と取り扱う場合、ANSI build 版では、文字化けすることがあることを理解して取り扱われる場合や、どうしても95系のOSで 開発をよぎなくされている方を除き、Unicode Build 版をダウンロードした方が良いです。

別に、Unicode Build 版だからといっても、吐き出すリソースファイルは、Unicode/Asciiを選択できます。
あくまで、内部のキャラクタ制御をUNICODEでやっているだけのようです。
(最後に説明しています。)

ダウンロードを終えたら、適当なフォルダへファイルを解凍して、 ResEdit.exe というファイルを起動すれば、リソースエディタ(ReEdit)が起動します。(インストーラもありません)
メニューなどのGUIを日本語環境へ変更するのも可能です。

  1. メニューから[Options...] - [Preferences...]を選択します

  2. 画面左リストから[General]を選択し、画面右の[User Interface Language:] コンボボックスをクリックします

    日本語を選択してOKをクリックします。

この作業を終えて、ResEditを一旦終了し、再度、起動すると日本語に切り替わっていると思います。

実際に、リソースファイルをつくってみましょう
以下のような手順で、簡単にリソースファイルを作成できます。

  1. 新規プロジェクトを選択
    メニューから[ファイル] - [新規プロジェクト]をクリックします。


    適当なディレクトリにリソースファイルを指定して、"保存"をクリックします。



    空のリソースファイルが作成されます。

  2. リソースを追加
    メニューから[ファイル] - [リソースの追加]をクリックします。


    今回は、テスト用にダイアログ画面を作ってみましょう。 [ダイアログ]をクリックします。


    この画面を見られれば、気づかれると思いますが、Visual C++のリソースエディタにそっくりです。
    あとは、Visual C++のリソースエディタの使い方とほぼ同じです。
    アイテムの整列も、ドラッグしてツールバーから"左揃え"などのボタンクリックできます。

  3. 保存
    最後に、メニューから[ファイル] - [保存]をクリックします。


    ツールバーに"C++保存"のボタンがあります。
    これは、たとえば、上記で言うとダイアログのリソースを作成していましたので、そのダイアルを作成するためのソースコードが作成されます。

    出力された例)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    
    	// Generated by ResEdit 1.4.4.19
    	// Copyright (C) 2006-2008
    	// http://www.resedit.net
     
    	HINSTANCE hInst = GetModuleHandle(0);
    	WNDCLASSEX wcex;
    	ZeroMemory(&wcex, sizeof wcex);
    	wcex.cbSize         = sizeof wcex;
    	wcex.hbrBackground  = (HBRUSH)(COLOR_3DFACE + 1);
    	wcex.lpszMenuName   = 0;
     
     
    	wcex.style          = CS_HREDRAW | CS_VREDRAW;
    	wcex.lpfnWndProc    = DefWindowProc;
    	wcex.hInstance      = hInst;
    	wcex.hIcon          = LoadIcon(0, (LPCTSTR)IDI_APPLICATION);
    	wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
    	wcex.lpszClassName  = WndClass00;
    	RegisterClassEx(&wcex);
     
    	HFONT hfont0 = CreateFont(-11, 0, 0, 0, 400, FALSE, FALSE, FALSE, 1, 400, 0, 0, 0, ("Ms Shell Dlg 2"));
    	HWND hwnd = CreateWindowEx(0, ("WndClass0"), ("Dialog"), WS_VISIBLE | WS_BORDER | WS_CAPTION | WS_DLGFRAME | WS_POPUP | WS_SYSMENU, 0, 0, 285, 186, 0, 0, hInst, 0);
    	HWND hCtrl0_0 = CreateWindowEx(0, WC_BUTTON, ("OK"), WS_VISIBLE | WS_CHILD | WS_TABSTOP | BS_DEFPUSHBUTTON, 194, 11, 75, 23, hwnd, (HMENU)IDOK, hInst, 0);
    	SendMessage(hCtrl0_0, WM_SETFONT, (WPARAM)hfont0, FALSE);
    	HWND hCtrl0_1 = CreateWindowEx(0, WC_BUTTON, ("キャンセル"), WS_VISIBLE | WS_CHILD | WS_TABSTOP | BS_PUSHBUTTON, 194, 39, 75, 23, hwnd, (HMENU)IDCANCEL, hInst, 0);
    	SendMessage(hCtrl0_1, WM_SETFONT, (WPARAM)hfont0, FALSE);
    	HWND hCtrl0_2 = CreateWindowEx(0, WC_BUTTON, ("Button1"), WS_VISIBLE | WS_CHILD | WS_TABSTOP | BS_PUSHBUTTON, 59, 60, 71, 33, hwnd, (HMENU)IDC_BUTTON1, hInst, 0);
    	SendMessage(hCtrl0_2, WM_SETFONT, (WPARAM)hfont0, FALSE);
    	HWND hCtrl0_3 = CreateWindowEx(0, WC_STATIC, ("Static"), WS_VISIBLE | WS_CHILD | WS_GROUP | SS_LEFT, 59, 16, 83, 26, hwnd, (HMENU)IDC_STATIC, hInst, 0);
    	SendMessage(hCtrl0_3, WM_SETFONT, (WPARAM)hfont0, FALSE);
     
VC++ 2008 Expressと連動させましょう
実際に、VC++ では、リソースファイルをダブルクリックでVC++のリソースエディタが起動され すぐに編集できるようになります。
VC++ を使いなれていますと、これに近づけたいと思います。
完全にはできませんが、リソースファイルをダブルクリックすることで、ResEditを起動するように 設定することは可能です。

設定してみましょう

  1. リソースファイルを持っている適当なプロジェクトファイルを開きます
  2. ソリューションエクスプローラからリソースファイルを選択し、右クリックします

  3. ファイルを開くアプリケーションの選択画面から"追加"クリックします

  4. プログラムの追加画面から
    プログラム:"ResEdit.exe"へのフルパスを指定します。
    表示名:"ResEdit.exe"とわるように"リソースエディタ(ResEdit)"などと指定します。

    最後に、"OK"をクリックします。
  5. ファイルを開くアプリケーションの選択画面に戻り、
    左画面から、先のプログラムの追加画面の表示名で設定した名前を選択します。
    (先の例では、"リソースエディタ(ResEdit)")
    画面右の"既定値として設定"クリックします


ここまで設定しておけば、別のプロジェクトファイルを開いても、リソースファイルをダブルクリックすると ResEditが起動されるようになります。

WTLの環境とこのリソースエディタの環境があれば、WIN32のGUIアプリケーションが、VC++の6.0レベルでのMFC開発に 慣れている方であれば、おそらく、短い期間で、作成できるようになるのではないでしょうか。
ただ、VC++ほどリソースエディタとソースコードへの連動が、あるわけではありません。
例えば、リソースエディタでダイアログのボタンをクリックすれば、ソースコードへ反映されるような機能はありません。

また、リソースファイルへのエンコードの仕方や、フォーマットについては、 メニューから[オプション...] - [設定...]を選択します。
画面左から、"Code genneration"を選択します。

VC++のデフォルトのリソースフォーマットに慣れている方は、"Code Style"を"Pascal:BEGIN...END"を選択すれば、見覚えのあるリソースファイルを出力してくれます。
また、UNICODEで出力したい場合は、"Default Encoding"を"UTF-8","UTF-16"へ設定すれば変換してくれるでしょう。
UNICODEへの変換の場合は、下のBOMの指定も意識すべきでしょう。
※一般にVC++で取り扱うUNICODEは、UTF-16,BOMありになります。

これは、ResEditがVC++のためだけのものではないことを意味しています。

関連記事: VC++ 2008 Expressを使ってWTLの環境設定とサンプルコンパイル


コメント

コメントをどうぞ







  • はてなブックマークへ追加する
  • Facebookでシェアする
  • twitter でつぶやく
  • Google Plusでシェアする
  • Pocketでシェアする
ページトップへ