bmpを表示する関数と処理する関数を別々のファイルにしたいのですが、表示されません・・・。エラー、警告はありませんでした。VC++2008を使用しています。ソースは以下のようになっています。よろしくお願い致します。
~ 処理部分 load_bmp.cpp ~
#include<windows.h>
#include<stdio.h>
#include <tchar.h>
externHINSTANCE hinst;
externHWND hwnd;
int Load_Bmp( HDC hdc, char *f_name_of_BMP)
{
HBITMAPhbmp;
HDCwork_DC;
hbmp=(HBITMAP)LoadImage(hinst,_T ("f_name_of_BMP"),IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION | LR_LOADFROMFILE);
if( hbmp == NULL ){
MessageBox(hwnd, _T("ビットマップを表示できません"), _T("エラー"),MB_OK | MB_ICONWARNING);
return 0;
}
work_DC = CreateCompatibleDC( hdc );
SelectObject( work_DC, hbmp );
BitBlt(hdc,0,0,640,480,work_DC,0,0,SRCCOPY);
ReleaseDC( hwnd,work_DC );
DeleteObject( hbmp );
return 0;
}
~ヘッダファイル load_bmp.h ~
int Load_Bmp( HDC hdc,char *f_name_of_BMP);
~処理部分 main.cpp ~
#include<windows.h>
#include <tchar.h>
#include "load_bmp.h"
HWNDhwnd;
HDCwin_hdc;
HINSTANCEhinst;void init_game()
{
Load_Bmp( win_hdc,"test.bmp");
}
LRESULT WndProc(HWND hwnd,UINT msg,WPARAM wprm,LPARAM lprm)
{
switch(msg){
caseWM_CREATE: break;
caseWM_DESTROY: PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,msg,wprm,lprm);
}
return 0;
}
int APIENTRY WinMain(HINSTANCE hIns,HINSTANCE hPI,LPSTR lpArg,int nCmdShow)
{
MSGmsg;
WNDCLASSwc;
hinst=hIns;
wc.hInstance=hIns;
wc.lpszClassName=_T("test");
wc.lpfnWndProc=(WNDPROC)WndProc;wc.style=0;wc.hIcon=LoadIcon((HINSTANCE)NULL,IDI_APPLICATION);
wc.hCursor=LoadCursor((HINSTANCE)NULL,IDC_ARROW);
wc.lpszMenuName=0;
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
if(RegisterClass(&wc)==0)return 0;
hwnd=CreateWindowEx(
0,
wc.lpszClassName, _T("test"),
WS_OVERLAPPEDWINDOW, 20,20,640,480,
NULL,NULL, hIns,NULL );
if(!hwnd)
return 0;
ShowWindow(hwnd,nCmdShow);
UpdateWindow(hwnd);
win_hdc=GetDC(hwnd);
init_game();
while(1){
if(PeekMessage(&msg,NULL,0,0,PM_NOREMOVE)){
(!GetMessage(&msg,(HWND)NULL,0,0));break;TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
No.2ベストアンサー
- 回答日時:
基本部分から…なんでしょうか。
有名どころの「猫でもわかるプログラミング」を参照された方が良いのでは?
http://www.kumei.ne.jp/c_lang/index.html
書籍も出ています。
Webの方は、最新のVisual Studioではうまくいかない場合がありますので
トップページなどに書かれている注意書きをよく読みましょう。
>hbmp=(HBITMAP)LoadImage(hinst,_T ("f_name_of_BMP"),IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION | LR_LOADFROMFILE);
こちらは、引数で渡されたファイル名ではなく、カレントディレクトリにある「f_name_of_BMP」というファイルを指定していることになります。
どう修正するのか…については調べてみてください。
# 特定の名前のBMPファイルを読み込んでWindowに表示…だけでもまだ数点不足しているようですが。
回答どうもありがとうございます。
「猫でもわかるプログラミング」を見てみました。そこからリソーススクリプトについて調べたところ、解決しました。
ご指摘ありがとうございました。
No.1
- 回答日時:
>int Load_Bmp( HDC hdc, char *f_name_of_BMP)
>hbmp=(HBITMAP)LoadImage(hinst,_T ("f_name_of_BMP"),IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION | LR_LOADFROMFILE);
LoadImage()の第2引数は実際のコードでこのように書かれているのでしょうか?
その場合、なにを意図してこのように書かれたのでしよう?
このように記述した場合、「Load_Bmp()の第2引数で受け取った文字列が展開される」などという機能はありませんが意図したものですか?
bmpファイルを指定して読み込む場合(LR_LOADFROMFILE指定の場合)はLoadImage()の第1引数はNULLでもよかったかと思います。
# MSDNで確認してください。
回答どうもありがとうございます。
このコードは http://www4.nasuinfo.or.jp/~hobby/index.shtml にあるものを参考にしました。
意図というよりも何も知らずにそのまま書いただけです・・・。
別の関数からmain関数に渡すための引数の指定がわかりません。
#MSDNで確認してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- FX・外国為替取引 mql4のコンパイルエラー箇所の修正お願いします。 1 2023/03/15 16:14
- Visual Basic(VBA) Vba LongPtrについて教えてください 2 2022/08/19 11:14
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
サッカーのスタジアムでドーム...
-
アンセミックって何?
-
エクセルで特定の文字の前や後...
-
韓流について
-
ラグビーの試合で見る変わった...
-
NHK TVerについて
-
サッカー解説者について
-
○○杯、○○カップのルーツ
-
サッカーでよく聞く オーレオレ...
-
国立競技場と東京体育館について
-
はねるのトびら 短縮鉄道のオ...
-
何故、トヨタスタジアムでワー...
-
ワールドカップの時の、ウォ~...
-
ゴードン・バンクスやジョージ...
-
国歌
-
UEFAとFIFAの違いってなんでし...
-
W杯の場外観戦場(関東)
-
"ファビョる"の表現は問題ない...
-
ロシアは東西に広いので時差を...
-
国歌演奏の順番・・・&ホーム
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
西野七瀬が秋元真夏をいじめて...
-
サッカーのスタジアムでドーム...
-
元乃木坂の西野ななせって、あ...
-
エクセルで特定の文字の前や後...
-
○○杯、○○カップのルーツ
-
Jupiterに似た曲
-
ワールドカップの時の、ウォ~...
-
Excel VBAで他アプリへのテキス...
-
国立競技場と東京体育館について
-
NHK TVerについて
-
サッカーでよく聞く オーレオレ...
-
乃木坂メンバー、欅坂メンバー...
-
大至急の質問です。 iPhone 13...
-
アンセミックって何?
-
「桃色吐息」の意味は???
-
なぜ日本のPKはへたくそなんだ?
-
4月18日のはねとびの短縮鉄道の夜
-
サッカーの公式戦と親善試合の...
-
サッカー日本代表に詳しい方!...
-
NBA選手になるにはアメリカの学...
おすすめ情報