いつもお世話になっております。
小生、只今BCC5.5.1とBCCFormを使い、Win32APIを勉強しています。
今回、"猫でもわかるWindowsプログラミング第2版"の第9章を参考にビットマップを表示するプログラムを書き、
以下の手順で実行ファイルを作成、実行してみましたが、ビットマップが表示されません。
1.bcc32 -W source.cpp
2.brc32 Bitmap.rc source.exe
以下にソースを記述します。
source.cpp
※WndProc関数以外は猫でもわかると同じなので省略させていただきます。
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{
HDC hdc, hdc_mem;
PAINTSTRUCT ps;
HBITMAP hBmp;
BITMAP bmp_info;
int w, h;
switch(msg){
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
hBmp = LoadBitmap(hInst, MAKEINTRESOURCE(MYBMP));
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 (DefWindowProc(hWnd, msg, wp, lp));
}
return 0;
}
そしてリソーススクリプトです
Bitmap.rc
//-----------------------------------------
// BCCForm Ver 2.41
// An Easy Resource Editor for BCC
// Copyright (c) February 2002 by ysama
//-----------------------------------------
#include "ResBitmap.h"
//--------------------------
// イメージ(MYBMP)
//--------------------------
MYBMP BITMAP DISCARDABLE "C:\Documents and Settings\ShuNakagawa\My Documents\C\test.bmp"
そしてリソースヘッダです(記述の無い箇所は省いています)
ResBitmap.h
//-----------------------------------------
// BCCForm Ver 2.41
// Header File for Resource Script File
// Copyright (c) February 2002 by ysama
//-----------------------------------------
//---------------------
// イメージリソース
//---------------------
#define MYBMP 100
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんばんは。
WM_PAINTを処理した後にDefWindowProc()が呼ばれていないからではないでしょうか。
WndProc()内の一番下、
return 0;
となっている部分を、
return DefWindowProc(hWnd, msg, wp, lp);
と、する事で改善しませんか。
この回答への補足
machongolaさん、ご回答頂き誠にありがとうございます。
ご指摘のとおり、return DefWindowProc(hWnd, msg, wp, lp);
と記述しなおしましたが、やはりビットマップは表示されませんでした。。。
どうすればいいのか全くわかりません。。。
ご教授の方宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- Visual Basic(VBA) Vba LongPtrについて教えてください 2 2022/08/19 11:14
- 飛行機・空港 ミルウォーキーツールHDC大阪から伊丹空港へ乗り換え無しで行く方法はありますか? できれば、空港直通 2 2023/05/12 06:44
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- C言語・C++・C# C言語 3 2022/10/04 15:07
- WordPress(ワードプレス) wordpressでphpを読み込みたい 1 2022/10/30 23:40
- C言語・C++・C# プログラミングのペーパーテスト 実行結果の表示を答えてください #include <stdio.h> 2 2022/07/09 16:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
WM_KEYDOWNでPrtScを捕まえる方...
-
音量調節
-
ゲームとかの解像度変更&全画...
-
10C7 =10.9.8.7.6.5.4/7.6.5.4...
-
ArduinoでMouse関数を使用して...
-
2÷3などの余りについて
-
プログラムでの数字につく”f”の...
-
0 <= ある値Aのある値B乗 <= あ...
-
マイナスからプラスへ転じた時...
-
DWORDの実際の型は何でしょうか
-
C言語での引数の省略方法
-
double型が正常に認識されてい...
-
浮動小数演算は実行環境の変化...
-
ある商品のロス率を5%見込み、...
-
「指定されたキャストは有効で...
-
C++のfor文について
-
Enterキーを押されたら次の処理...
-
#define _CRT_SECURE_NO_WARNIN...
-
信頼区間の1.96や1.65ってどこ...
-
switch文で文字を比較すること...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
音量調節
-
Win32APIでウィンドウを中央に...
-
キャレットの現在位置の表示 (W...
-
オーバーレイみたいな処理がしたい
-
ボタンの色(WINAPI)
-
エディットボックスの背景の色...
-
エラー Run-Time Check Failur...
-
ダイアログプログラムでEnterキ...
-
LoadImageを使用し、タイトルバ...
-
エディットコントロール入力時...
-
CallNextHookEx( ) == FALSE
-
【Windowsアプリ】ファイルのド...
-
ボタンのアイコン表示
-
Win32APIにて、ウィンドウ全体...
-
LoadImageを使ったアイコンファ...
-
WinAPIでの画像高速切り替え表...
-
PeekMessageについて
-
C言語win32api、エディットボッ...
-
ウィンドウハンドルがメッセー...
-
WM_CREATE について
おすすめ情報