Win32APIをいじっているのですが、ダイアログにメニューバーを表示する事ができません。
下記のサイトの方法を試してみたのですが、どうやらリソースの書き方が
現在の方式とあっていないようでそのままやるとエラーが出ます。
http://wisdom.sakura.ne.jp/system/winap ... win84.html
ネットで調べてみても、リソースエディタを使う方法ぐらいしか出てきません。
しかし、私の環境はVisual Studio Express 2013 for Desktopで
このリソースエディタを使う事が出来ません。
http://ppp-lab.sakura.ne.jp/win32c/028.html
http://www.g-ishihara.com/mfc_me_01.htm
また、ResEditというフリーのリソースエディタを使っているのですが
これにメニューバーをつける機能が有りません。私が知らないだけの可能性もあります。
よろしくお願いします。
ダイアログウィンドウにメニューバーを作るには?
Re: ダイアログウィンドウにメニューバーを作るには?
とりあえずプロジェクト一式をアップロードして、エラーメッセージを提示していただけると答えやすいかもしれません。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: ダイアログウィンドウにメニューバーを作るには?
リソーススクリプトに を加えてみてください。akindo さんが書きました:下記のサイトの方法を試してみたのですが、どうやらリソースの書き方が
現在の方式とあっていないようでそのままやるとエラーが出ます。
http://wisdom.sakura.ne.jp/system/winap ... win84.html
それで、コンパイルができるようになるはずです。
Re: ダイアログウィンドウにメニューバーを作るには?
プロジェクトをアップしました
http://www1.axfc.net/u/3373230
エラー文は以下の通りです。
エラー 1 error RC2135: file not found: POPUP c:\Users\USER\documents\visual studio 2013\Projects\Win32Study2\Win32Study2\Win32Study2.rc 25 1 Win32Study2
エラー 2 error RC2135: file not found: MENUITEM c:\Users\USER\documents\visual studio 2013\Projects\Win32Study2\Win32Study2\Win32Study2.rc 26 1 Win32Study2
エラー 3 error RC2135: file not found: MENUITEM c:\Users\USER\documents\visual studio 2013\Projects\Win32Study2\Win32Study2\Win32Study2.rc 27 1 Win32Study2
エラー 4 error RC2135: file not found: MENUITEM c:\Users\USER\documents\visual studio 2013\Projects\Win32Study2\Win32Study2\Win32Study2.rc 28 1 Win32Study2
エラー 6 error RC2135: file not found: DIALOG c:\Users\USER\documents\visual studio 2013\Projects\Win32Study2\Win32Study2\Win32Study2.rc 32 1 Win32Study2
エラー 5 error RC2135: file not found: 40003 c:\Users\USER\documents\visual studio 2013\Projects\Win32Study2\Win32Study2\Win32Study2.rc 29 1 Win32Study2
http://www1.axfc.net/u/3373230
エラー文は以下の通りです。
エラー 1 error RC2135: file not found: POPUP c:\Users\USER\documents\visual studio 2013\Projects\Win32Study2\Win32Study2\Win32Study2.rc 25 1 Win32Study2
エラー 2 error RC2135: file not found: MENUITEM c:\Users\USER\documents\visual studio 2013\Projects\Win32Study2\Win32Study2\Win32Study2.rc 26 1 Win32Study2
エラー 3 error RC2135: file not found: MENUITEM c:\Users\USER\documents\visual studio 2013\Projects\Win32Study2\Win32Study2\Win32Study2.rc 27 1 Win32Study2
エラー 4 error RC2135: file not found: MENUITEM c:\Users\USER\documents\visual studio 2013\Projects\Win32Study2\Win32Study2\Win32Study2.rc 28 1 Win32Study2
エラー 6 error RC2135: file not found: DIALOG c:\Users\USER\documents\visual studio 2013\Projects\Win32Study2\Win32Study2\Win32Study2.rc 32 1 Win32Study2
エラー 5 error RC2135: file not found: 40003 c:\Users\USER\documents\visual studio 2013\Projects\Win32Study2\Win32Study2\Win32Study2.rc 29 1 Win32Study2
Re: ダイアログウィンドウにメニューバーを作るには?
とりあえずDev-C++ 5.7.1 (gcc 4.8.1)でビルドした所、
そのままでは_tWinMain周りでエラー及びリソースコンパイラのout of memoryエラーが出ましたが、
マクロ定義を追加し、Win32Study2.rcをUnicode BOM付きからSJISに変換してコンパイルした所、
コンパイルは通りました。しかし、実行してもすぐに終了してしまいます。
そのままでは_tWinMain周りでエラー及びリソースコンパイラのout of memoryエラーが出ましたが、
マクロ定義を追加し、Win32Study2.rcをUnicode BOM付きからSJISに変換してコンパイルした所、
コンパイルは通りました。しかし、実行してもすぐに終了してしまいます。
- 添付ファイル
-
- test_rev1.zip
- テストしたソースコードとバイナリ
- (22.36 KiB) ダウンロード数: 121 回
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: ダイアログウィンドウにメニューバーを作るには?
InitInstance関数がFALSEを返しているようなのでGetLastErrorで調べた所、
「ウィンドウ クラスを見つけることができません。」と出ました。
そこで、MyRegisterClass関数でszWindowClassにCreateWindowに渡しているウィンドウクラス名を入れるようにしたところ、
ウィンドウが表示され、リソースで設定されたメニューも表示されました。
Visual Studioではテストしていません。
「ウィンドウ クラスを見つけることができません。」と出ました。
そこで、MyRegisterClass関数でszWindowClassにCreateWindowに渡しているウィンドウクラス名を入れるようにしたところ、
ウィンドウが表示され、リソースで設定されたメニューも表示されました。
Visual Studioではテストしていません。
- 添付ファイル
-
- test_rev2.zip
- テストに使用したソースコードとバイナリ(修正後)
- (22.78 KiB) ダウンロード数: 125 回
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: ダイアログウィンドウにメニューバーを作るには?
Visual Studio でビルドする場合は、"{" を "BEGIN" に "}" を "END" に変更してみてください。
基本的には、"{ }" でもコンパイルできるはずなんですが、"BEGIN" と "END" を使う方が
無難ですね。
CreateWindow() あたりのバグは既に指摘されているとおりですね。
基本的には、"{ }" でもコンパイルできるはずなんですが、"BEGIN" と "END" を使う方が
無難ですね。
CreateWindow() あたりのバグは既に指摘されているとおりですね。
Re: ダイアログウィンドウにメニューバーを作るには?
2箇所、{の前にあるはずの空白が欠けています。
それがコンパイルエラーの原因です。
書き損じと言ってしまえばそれまでですが、思い込みという根の深い問題がありそうです。
リソースと直接関係の無いコードは、方式の違いでなく、VisualStudioが統合開発環境のために埋め込んでいるものです。
ResEditで新規作成した場合はこのようなソースファイルにはならないので何かしら説明にない手順を踏んでいるはずなのですが。
#Expressにこのようなテンプレートってありましたっけ。
Visual Studio Community 2013であれば、無償で、リソースエディタが(MFCも)使えます。
ResEditでは、DIALOGリソースのプロパティにMenuというのがありますね。
試したところ、なぜか選択肢がおかしなふうに表示されて選択できないのですが。
それがコンパイルエラーの原因です。
書き損じと言ってしまえばそれまでですが、思い込みという根の深い問題がありそうです。
リソースと直接関係の無いコードは、方式の違いでなく、VisualStudioが統合開発環境のために埋め込んでいるものです。
ResEditで新規作成した場合はこのようなソースファイルにはならないので何かしら説明にない手順を踏んでいるはずなのですが。
#Expressにこのようなテンプレートってありましたっけ。
Visual Studio Community 2013であれば、無償で、リソースエディタが(MFCも)使えます。
ResEditでは、DIALOGリソースのプロパティにMenuというのがありますね。
試したところ、なぜか選択肢がおかしなふうに表示されて選択できないのですが。