• 締切済み

win32api c言語 メニュー表示 リソース

usatan2の回答

  • usatan2
  • ベストアンサー率37% (163/436)
回答No.1

直接の回答ではありませんが、 BccWin + BccForm を活用されたらメニュー表示が簡単に作れますよ。 <準備> BccWinをインストール BccFormを解凍 BccWin起動 オプション - ツール設定 で BccForm を登録 <利用> ファイル - 新規 - 新規プロジェクト - ウインドウズ型 新規プロジェクトを作成 にチェック ファイル作成 - C言語ソースファイルに「form.c」- OK ビルドボタン、実行ボタン で Hello のフォームが完成。   <画面の設計> ツール - BCCForm でリソースエディタを起動する リソースタイプの「ダイヤログ」の行をクリックすると、画面が出る。  四角を書くとボタンが出来る(デフォルト) 右クリックで「コントロールの追加」で追加する

関連するQ&A

  • Win32APIとC言語を使ってビットマップを表示したいのですが、表示できません。

    小生、只今Win32APIとC言語を使い、WindowsXPSP3上でBCC5.5.1とBCCFormを使いビットマップを表示するプログラムを書いていますが、 "猫でもわかるWindows~"などに掲載されているサンプルを実行してみますが、ビットマップが表示されません。 ウィンドウクラスの登録、ウィンドウの生成などはほぼ、 http://gurigumi.s349.xrea.com/programming/visualcpp/intro4.html に掲載されている、サンプルプログラムと同じです。 違いと言うと、ResBitmap.hをインクルードしているくらいです。 問題はウィンドウプロシージャにあって、 下記にウィンドウプロシージャ、WndProc関数を記します。 LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { HDC hdc, hdc_mem; PAINTSTRUCT ps; HBITMAP hBmp; BITMAP bmp_info; static int w, h; switch(msg){ case WM_PAINT: hdc = BeginPaint(hWnd, &ps); hBmp = LoadBitmap(hInst, "MYBMP"); if(hBmp == NULL){ MessageBox(hWnd, "ビットマップ読み込み失敗", NULL, MB_OK); return 0; } GetObject(hBmp, (int)sizeof(BITMAP), &bmp_info); w = bmp_info.bmWidth; h = bmp_info.bmHeight; hdc_mem = CreateCompatibleDC(hdc); SelectObject(hdc_mem, hBmp); BitBlt(hdc, 0, 0, w, h, hdc_mem, 0, 0, SRCCOPY); DeleteDC(hdc_mem); DeleteObject(hBmp); EndPaint(hWnd, &ps); break; case WM_DESTROY: PostQuitMessage(0); break; default: return 0; } return DefWindowProc(hWnd, msg, wp, lp); } この状態で実行ファイルを、 bcc32 -W source.cpp brc32 Bitmap.rc source.exe とし、出来上がったsource.exeを実行すると"ビットマップ読み込み失敗"のメッセージボックスが表示されてしまい、ウィンドウには何も表示されません。 ちなみに、Bitmap.rcは下記の様になってます。 MYBMP BITMAP DISCARDABLE "C:\Documents and Settings\ShuNakagawa\My Documents\C\test.bmp" ResBitmap.hは下記の様になってます。 #define MYBMP 100 以上です。 諸先輩方、アドバイス宜しくお願い致します。 もう悩んで2ヶ月程経ちます、どうか本当に助けてください。 ※LoadBitmapの第2引数をMAKEINTRESOURCE(MYBMP)とし、  実行ファイルを作成しましたが、結果は同じでした。。。

  • C++ リソースファイルの使い方について

    うまく説明できていないかもしれませんが AAA.exeとBBB.exeとBBB.exeを実行するために必要なファイル(以後 CCC.dll)があり、 AAA.exeの中にBBB.exeとCCC.dllを埋め込み AAAexeを実行時にCCC.dllをsystem32フォルダの中に置き、その後BBB.exeを実行させたいのですが、埋め込んだファイルの抽出方法が見つかりません。 どなたか、抽出ソースの書き方、またはよいサイトをご存じでしたら教えていただけないでしょうか?

  • C言語での実行

    C言語(ボーランドのCpad)を使っています。 いつも使ってるパソコンと違うパソコンでC言語のプログラムをし始めました。 前のパソコンと同じようにプログラムのコードをCファイルで保存して同じように新しいパソコンから開いて同じように実行ボタン押したのですが、実行できず、exeファイルが存在しませんって表示されます。 ちなみに、動かすプログラムは4つあり、そのうちの3つはちゃんと実行でき、ファイルも作成できるのですが、同じ方法でやってるあと1つのプログラムだけがうまくいきません。 4つとも同じフォルダにするようにしていて、3つはちゃんと実行できるので、フォルダが違うことはないと思います。 なぜ「exeファイルが存在しません」ってなるのか。 ちゃんとフォルダにCファイルはあるのに。 ちなみに、正確にできる3つのように、実行できると「OBJファイル」とか「アプリケーション」とかも同時に作成されます。 ただ、問題の1つのプログラムは当然、実行できず、exeファイルが存在しませんって表示されるので何も作成されません。 ボーランドのC言語、実行、ファイル、など詳しい方ぜひ教えて下さい。 同じやり方で今までのパソコンではできていたのに、パソコン変えると実行できなくなります。 フォルダやCファイルが正確ではないのかとも思いましたが、前までのパソコン通りにやっているので問題ないと思います。 ぜひアドバイス下さい。

  • WIN32APIとかC++のコンパイルについて

    http://www.geocities.jp/ky_webid/win32c/001.html のメッセージボックスに表示させるというプログラムソースをコピペして、コマンドからコンパイルしたら、 C:\study>cl wintest1.c Microsoft(R) 32-bit C/C++ Optimizing Compiler Version 15.00.21022.08 for 80x86 Copyright (C) Microsoft Corporation. All rights reserved. wintest1.c Microsoft (R) Incremental Linker Version 9.00.21022.08 Copyright (C) Microsoft Corporation. All rights reserved. /out:wintest1.exe wintest1.obj wintest1.obj : error LNK2019: 未解決の外部シンボル __imp__MessageBoxA@16 が関数 _WinMain@16 で参照されました。 wintest1.exe : fatal error LNK1120: 外部参照 1 が未解決です。 と、怒られてしまったのですが、どの様にすればいいのでしょうか?

  • Visual C++でC言語の基礎学習

    Visual C++を使ったC言語についての質問です。 (アプリケーションの作成ではなく、コマンドプロンプト上で起動する基礎的な文法の学習です) Win32コンソール プロジェクトを作成し、そのプロジェクトの中でCのソースファイルを作成して実行確認をしようと思っています。 プロジェクト内のソースファイルが1つだけだと正常にビルドできますが、2つ以上のソースファイルを作成してビルドすると 「1 つ以上の複数回定義されているシンボルが見つかりました。」 というエラーがでてしまい、実行することができません。 新たにWin32コンソール プロジェクトを作成し、その中でソースファイルを作成しなければ実行できないのでしょうか? よろしくお願いします。

  • リソースの表示方法

    アイコンのリソースの表示の仕方を教えてください。 1 http://wisdom.sakura.ne.jp/system/winapi/win32/win72.html   の一番上ソースをコンパイル、メイクする。 2 KITTY ICON DISCARDABLE "test.ico" をメモ帳に書き   a.rcで保存。 3 test.ico  画像ファイルを用意する。 1でコンパイル、で出来たフォルダに、a.rc、 test.ico をいれ、またコンパイル、などをする。 これで完成のはずですが、うまくいきません。 やり方を教えてください。 borland のコンパイラ、BCC Developer を使います。

  • C言語を始めよう!

    C言語を始めよう! http://www.forest.impress.co.jp/article/2002/10/24/cwohajimeyou.html を使用しています。 NT4/2000/XP で、16 ビットプログラムの実行結果が表示されない  と言う問題は、LSI C-86 Ver.3.30c 試食版をツールを利用して実行するプログラム共通の問題のようです。  CPad for LSI C-86でも、以下のとおり、同様の問題があり、 COMMAND  プログラムで、この問題を解決しようとしています。 phb1122  でも、以前は、 COMMAND を利用した形跡があります。今は、 PIF ファイルを作成 することで解決しています。  なぜ、このような経緯になったのか詳しく解説していただけませんでしょうか? ******************************* WindowsNT/2000上の CPad for LSI C-86 で、コンパイルはできるが、実行結果が表示されない これは LSI C-86 が16ビットアプリケーションであるために起こる現象です。 解決策は、作成した実行ファイルを実行する前に一度、Windows9xとの互換性のために用意されているcommand.comを実行することで回避できます。 CPad での設定方法は、 [設定]ダイアログ-[高度な設定]ページの[以下の設定を変更する(C)]にチェックをしてから、[実行するコマンド(B)]に %WINDIR%\system32\command.com /c exit > nul と記述して[OK]ボタンをクリックします。 これでNT/2000上でも LSI C-86で作成した実行ファイルの出力を確認できます。 また、この現象が起こらない場合もあるようですが、どういう環境で起こって、どういう環境で起こらないのかははっきりわかっていません。 *********************** C:\phb1122\phoebe.htm ★ NT4/2000/XP で、16 ビットプログラムの実行結果が表示されない場合について Windows NT4/2000/XP で、LSI C-86 試食版を使って 16 ビットプログラムを作成して実行した際に、出力結果が表示されず、空欄になってしまう場合があります。この現象についていろいろ調査してみましたが、NTVDM.EXE の動作に原因がありそうというだけで、それ以上がどうしても分かりません。しかし、強制的に MS-DOS プロンプトを起動させられればうまくいくのではと考え、PIF ファイルを作成し、それを介して実行することで、とりあえず出力結果を表示させることに成功しました。メニューの「ビルド(B)」→「PIF を作成して実行(I)」をチェックすることで設定できます。このメニューは、LSI C-86 試食版をコンパイラに設定しているときのみ有効です。 敬具

  • C言語、成績は4194432?

    いつも大変お世話になり誠にありがとうございます。 標記の件。 おかしな実行結果になりました。 どうしてでしょうか? ご回答の程宜しくお願い申し上げます。       記 コード #include <stdio.h> int main(void) { int res; printf("成績を入力してください。\n"); scanf("%d", &res); printf("成績は%dです。\n", res); switch(res){ case 1: printf("もっとがんばりましょう。\n"); break; case 2: printf("もう少しがんばりましょう。\n"); break; case 3: printf("さらに上をめざしましょう。\n"); break; case 4: printf("たいへんよくできました。\n"); break; case 5: printf("たいへん優秀です。\n"); break; } return 0; } 実行結果 C:\MinGW>test20.exe 成績を入力してください。 A 成績は4194432です。 C:\MinGW>test20.exe 成績を入力してください。 b 成績は4194432です。 C:\MinGW>test20.exe 成績を入力してください。 v 成績は4194432です。 度々申し訳ございません。 ご回答の程宜しくお願い申し上げます。

  • C/C++ Win32 プロジェクト で簡単なゲームを作って言います。

    C/C++ Win32 プロジェクト で簡単なゲームを作って言います。 ・.cppファイルはひとつです。 ・#include "DxLib.h" DXライブラリを使用させていただいてます。 プログラムが完成したら.cppファイルをMicrosoft VisualC++ 2010 のメニューバーの 「ファイル」→名前をつけて保存で.exeファイルで保存をして、exeファイルを起動させたのですが、 なにやら、英語でなんか出てきて起動できません。 どうやったら機動できるのでしょうか??? できれば、すぐに答えがほしいです。

  • microsoft visual C++ でC言語のプログラミング

    プログラミングの超初心者です。 microsoft visual C++ 6.0を利用してC言語のプログラミングをしたいのですが,最も基本のhello worldを表示させようとしてビルドを行うと以下のようなエラーが表示されますが,解決法がわかりません. --------------------構成: hello1 - Win32 Debug-------------------- リンク中... LINK : fatal error LNK1104: ファイル "Debug/hello1.exe" を開けません。 link.exe の実行エラー hello1.exe - エラー 1、警告 0 解決法を教えていただけるとうれしいです. お願い致します.