画像表示について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
no

画像表示について

#1

投稿記事 by no » 15年前

#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:画像表示について

#2

投稿記事 by ひよこ » 15年前

よくわかりませんが、 /*ChangeWindowMode(TRUE) !=*/ DX_CHANGESCREEN_OKの
DX_CHANGESCREEN_OKだけがあるのが原因かもしれません

Dixq (管理人)

Re:画像表示について

#3

投稿記事 by Dixq (管理人) » 15年前

DX_CHANGESCREEN_OKが何と定義されているのか知りませんが、
DX_CHANGESCREEN_OKが0ならDx_Initは通り、DX_CHANGESCREEN_OKが0以外ならDx_Initは通りません。

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

no

Re:画像表示について

#4

投稿記事 by no » 15年前

if( /*ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || */ DxLib_Init() == -1 ) return -1;

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

閉鎖

“C言語何でも質問掲示板” へ戻る