ページ 11

画像表示について

Posted: 2009年12月28日(月) 14:06
by no
#include "DxLib.h"

int im;
char KeyBuf[256];

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
                
    if( /*ChangeWindowMode(TRUE) !=*/ DX_CHANGESCREEN_OK || DxLib_Init() == -1 ) return -1; 
 
    im=LoadGraph("img/a.png");
 
    SetDrawScreen( DX_SCREEN_BACK ) ; 
 
    while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( KeyBuf ) && !KeyBuf[KEY_INPUT_ESCAPE]){

                DrawGraph(0,0,im,TRUE);

        ScreenFlip();
    }
 
    DxLib_End();
    return 0;
}
上記のプログラムでa.pngを表示させようとしているのですが、フルスクリーン状態ではうまく表示されません。
ウィンドウモードなら期待通りの結果になるのですが、どういったことが原因として考えられますか?
期待通りとは、(0,0)にa.pngを表示させるという意味です。
管理人様の龍神録50章のソースコードはウィンドウ、フルスクリーンともにきちんと表示されます。

OSはウィンドウズXP、コンパイラはVC++2008です。

Re:画像表示について

Posted: 2009年12月28日(月) 15:17
by ひよこ
よくわかりませんが、 /*ChangeWindowMode(TRUE) !=*/ DX_CHANGESCREEN_OKの
DX_CHANGESCREEN_OKだけがあるのが原因かもしれません

Re:画像表示について

Posted: 2009年12月28日(月) 20:16
by Dixq (管理人)
DX_CHANGESCREEN_OKが何と定義されているのか知りませんが、
DX_CHANGESCREEN_OKが0ならDx_Initは通り、DX_CHANGESCREEN_OKが0以外ならDx_Initは通りません。

if文の中にわかりにくい注釈を入れるのは良くないと思うので、
関数を呼ぶごとにif文を書いて分けた方がいいと思います。
ちゃんと初期化関数が呼ばれているか確認してみてください。

Re:画像表示について

Posted: 2009年12月28日(月) 23:10
by no
if( /*ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || */ DxLib_Init() == -1 ) return -1;

上記の用にしたところ問題なく動作しました。ありがとうございました。