ですが、メッセージウィンドウなどの画像の上に文字を表示しようとして色々と書き換えたりLoadGraph()の場所を変えたりしましたが、
未だに文字だけが表示されて画像が一向に表示されません。
メッセージウィンドウなどの画像の上に文字を表示するようにするためにはどうしたらよいですか?
OS:Windows Vista
コンパイラ:VisualStudio 2010
ライブラリ:DXライブラリ
#include "DxLib.h"
int i=0,j,ch_i=0,counter=0,White;
char Key[256],oldKey[256]={},disp[80]="",ch[20][80]={
"(ぐきゅぅぅ・・・・・・)",
"腹減った、腹が減った・・・・・・(ガクッ",
"・・・・・・・・・・・・・・・おい、ちょっと待て",
"目の前におなかを空かせた可愛い子猫ちゃんがいるんだぞ?",
"シカトは良くないぜ",
"んっ? お前、その手に持ってるのって・・・・・・",
"キ、キノコだ、キノコじゃないか!",
"それくれ!!!",
"・・・・・・あ? よこさねぇって、さっきも言ったとおり私は腹が減ってるんだよ",
"理由はそれで十分だと思うんだけどなぁ",
"えっ、理不尽だって?",
"まったく、肝っ玉の小さい奴だなお前は",
"でも、たかるってのは私の性に合わない気がするんだよな",
"・・・・・・よし、絵札録で勝負だ!!",
"幻想郷で今、はやってるんだぜ?それぐらい知ってるだろ",
"私が勝ったら、そのキノコと身包み全部いただくぜ",
"・・・・・えっ、私が負けたら?",
"う~ん・・・・ そうだ、私の身包みをくれてやるよ!",
"これで同じ条件なんだ、文句はないはずだぜ?",
"よっしゃ、いっちょ勝負だ!!!",
};
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
if( ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() == -1 ) return -1; //ウインドウ化と初期化
SetDrawScreen( DX_SCREEN_BACK ); //描画先を裏画面に設定
int image, Sound;
Sound = LoadSoundMem("Impulsive Fly.mp3"); //mp3ファイルを読み込み、ハンドルをint型変数へ格納
int White = GetColor(255,255,255); //白色の取得
PlaySoundMem(Sound, DX_PLAYTYPE_BACK); //バックグラウンド再生
while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( Key ) && !Key[KEY_INPUT_ESCAPE])
{
image = LoadGraph("メッセージウインド.png"); //pngファイルを読み込み、ハンドルをint型変数へ格納
DrawGraph( 0, 225, image, FALSE ); //画像を表示
for(j=0;j<256;j++)
{
if(oldKey[j]==0 && Key[j]==1)
Key[j]=2;
oldKey[j]=Key[j];
}
if(Key[KEY_INPUT_RETURN]==2) //前回押されてなくて、今回押されていたら
{
i=0; //iを初期値に戻し
ch_i++; //表示する配列を1つずらす
if(ch_i==20) //これ以上表示する配列がなくなったらbreak;
break;
}
//配列の終端-2以下で、今回コピーするiまでの配列要素のi番目が\0じゃなくカウンターが5の倍数なら
if(i<=80-2 && ch[ch_i][i]!='\0' && counter%5==0)
{
i+=2; //全角文字なので配列要素2つずつカウントアップ
strncpy(disp,ch[ch_i],i); //iバイトまでの配列要素をdisp配列にコピー
disp[i]='\0'; //終端記号を代入
}
DrawFormatString(10,420,White,"%s",disp); //disp配列の文字データを表示
counter++;
ScreenFlip(); //裏画面を表画面に反映
}
DxLib_End() ;
return 0 ;
}