プロが教えるわが家の防犯対策術!

いつもお世話になっております。
小生、只今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件)

 こんばんは。


 WM_PAINTを処理した後にDefWindowProc()が呼ばれていないからではないでしょうか。
 WndProc()内の一番下、

 return 0;

 となっている部分を、

 return DefWindowProc(hWnd, msg, wp, lp);

 と、する事で改善しませんか。

この回答への補足

machongolaさん、ご回答頂き誠にありがとうございます。
ご指摘のとおり、return DefWindowProc(hWnd, msg, wp, lp);

と記述しなおしましたが、やはりビットマップは表示されませんでした。。。

どうすればいいのか全くわかりません。。。
ご教授の方宜しくお願いします。

補足日時:2010/01/01 04:53
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!