visualC++2008 RESファイルリソースをプロジェクトへ追加するには?

解決


なりい  2008-02-07 01:31:53  No: 67444  IP: 192.*.*.*

WindowsXP
現在、Visual C++2008 ExpressでWindowsアプリ製作をはじめました。

http://www.geocities.jp/ky_webid/win32c/028.html
のとおりに、作業してメニューバーを追加しようとしています。
リソースはXNResourceEditorで作成しました。
しかし、作成したRESファイルのリソースを、どのようにプロジェクトへ追加するのかが分かりません。
検索して見たのですが、どうも常識なのか、やり方が見つからないので質問しました。
よろしくお願いします。

編集 削除
通りすがり  2008-02-07 10:19:55  No: 67445  IP: 192.*.*.*

プロジェクトメニューの「既存項目の追加」
又は
プロジェクトを選択して「追加」‐「既存の項目」

ヘッダファイルのインクルードも忘れずに。

編集 削除
なりい  2008-02-09 09:52:46  No: 67446  IP: 192.*.*.*

ありがとうございます。
確かにメニューに追加できました。
しかしロードが出来ません。

例えば、SampleMenu.RESで中身がSampleMenuというリソースを作った場合、
hMenu = LoadMenu( NULL, _T("SampleMenu") );
とするかと思いますが、ロードできません。
名前が、IDR_MENUでないといけないのでしょうか?

よろしくお願いします。

編集 削除
なりい  2008-02-09 10:01:45  No: 67447  IP: 192.*.*.*

追加ですが、IDR_MENUという名前だとロードを確認しております。

よろしくお願いします。

編集 削除
通りすがりのニート  2008-02-11 00:15:53  No: 67448  IP: 192.*.*.*

RESってリソースファイルのこと?
昔のVCなら
resource.h
にdefineして
リソースファイルの中にそのdefineでメニュー作るって手順。

関係ないけど、リソースファイルは、テキストエディタで編集したほうが良いよ。

編集 削除
のりお  2008-02-11 03:23:19  No: 67449  IP: 192.*.*.*

>リソースファイルは、テキストエディタで編集したほうが良いよ。
さすがに初心者マーク相手にそれは極論でしょう。言いたいことは分からないでもないですが。
初心者は普通にリソースエディタ使った方が吉。

編集 削除
そだ  2008-02-11 23:25:11  No: 67450  IP: 192.*.*.*

>追加ですが、IDR_MENUという名前だとロードを確認しております。

ならIDR_MENUでいいんじゃないですか?失敗しましたか?
SampleMenuはリソースファイル名な気がします。
IDR_MENUはリソースファイル内に(あなたが)定義されたメニューの名前な気がします。
気のせいだったらすみません。

ちなみに、実行中に特にメニュー内容を変えないなら、
わざわざCREATEWINDOW時にLoadMenuを使わなくても
CreateWindowを呼び出す前にある

wc.lpszMenuname = NULL;



wc.lpszMenuName = MAKEINTRESOURCE(IDR_MENU); //"resource.h"を読み込んでいるとき

または

wc.lpszMenuName = "IDR_MENU"; //読んでないとき

に変えるだけでいいと思います。

編集 削除
なりい  2008-02-12 12:05:31  No: 67451  IP: 192.*.*.*

こんにちは。
ありがとうございます。

>さすがに初心者マーク相手にそれは極論でしょう。言いたいことは分から>ないでもないですが。
>初心者は普通にリソースエディタ使った方が吉。
しばらくはリソースエディタでやっていきます。

>SampleMenuはリソースファイル名な気がします。
おっしゃるとおりリソースファイル名であります。しかし、中でリソースの属性を指定する場所があり、IDR_MENUだと成功し、他の名前だと失敗しました。

たしかに、IDR_MENUでOKなら、問題ないといえば問題ありません。

>wc.lpszMenuname = NULL;
>を
>wc.lpszMenuName = MAKEINTRESOURCE(IDR_MENU); //"resource.h"を読み込>んでいるとき
>または
>wc.lpszMenuName = "IDR_MENU"; //読んでないとき
でやってみました。

どうもありがとうございました。
取り合えず先に進んでみます。

編集 削除