Microsoft Visual C++とDxライブラリを使ってゲームプログラミングをしています。

ウィンドウモードでDxライブラリがでません。
参考サイト

http://dixq.net/g/01_02.html

#include "DxLib.h"

int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
ChangeWindowMode(TRUE); // ウィンドウモードに設定
DxLib_Init(); // DXライブラリ初期化処理


WaitKey(); // キー入力待ち
DxLib_End(); // DXライブラリ終了処理
return 0;
}

こう打ってもなぜかウィンドウモードになりません。
ウィンドウモードにする方法を教えてください!

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2012/06/09 19:05:14
  • 終了:2012/06/10 19:16:47

ベストアンサー

id:cx20 No.1

cx20回答回数603ベストアンサー獲得回数1072012/06/10 12:54:55

ウィンドウモードでDxライブラリがでません。

「ウィンドウモード」にならず「フルスクリーン」で真っ黒な画面が表示される、ということでしょうか?
もう少し、具体的な事象や、使用されている、「PC環境」と「ライブラリのバージョン」を記載された方が回答は付きやすいと思います。

なお、こちらの環境にて、以下のサンプルプログラムに ChangeWindowMode() 関数を追加して試してみたところ「ウィンドウモード」での表示が出来ることを確認しました。

■ 1.1章 DXライブラリが使える環境を整えよう
http://dixq.net/g/01_01.html
http://dixq.net/g/zip/Sample.zip

試した環境は以下になります。

  • OS : Windows 7 (64bit)
  • Graphics : AMD Radeon HD 6800 Series
  • Compiler : Visual C++ 2010 (Visual Studio 2010 Professional)
  • Library : DXライブラリVer 3.05

とりあえず、コンパイルまで出来ている状況であれば、ChangeWindowMode() 関数の戻り値を確認してみては如何でしょうか。

■ ウインドウモード・フルスクリーンモード変更用関数
http://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_other.html#R11N1

ChangeWindowMode() 関数が成功しているかどうかは戻り値で分かるようです。

定数名説明
DX_CHANGESCREEN_OK0モードの移行は成功した
DX_CHANGESCREEN_RETURN-1モードの変更は失敗し、元の画面モードに戻された
DX_CHANGESCREEN_DEFAULT-2モードの変更は失敗しデフォルトの画面モードに変更された
DX_CHANGESCREEN_REFRESHNORMAL-3画面の変更は成功したが、リフレッシュレートの変更は失敗した

どの値が返却されているか確認してみてください。以下は、戻り値を表示するサンプルになります。

#include "DxLib.h"
 
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
    // ウィンドウモードの変更(TRUE : ウインドウモード、FALSE:フルスクリーン)
    int nResult = ChangeWindowMode(TRUE);

    if( DxLib_Init() == -1 )    // DXライブラリ初期化処理
    {
         return -1; // エラーが起きたら直ちに終了
    }

    //  0 … DX_CHANGESCREEN_OK            : モードの移行は成功した
    // -1 … DX_CHANGESCREEN_RETURN        : モードの変更は失敗し、元の画面モードに戻された
    // -2 … DX_CHANGESCREEN_DEFAULT       : モードの変更は失敗しデフォルトの画面モードに変更された
    // -3 … DX_CHANGESCREEN_REFRESHNORMAL : 画面の変更は成功したが、リフレッシュレートの変更は失敗した
    DrawFormatString( 0, 0, GetColor( 255, 255, 255 ), "ChangeWindowMode() = [%d]", nResult );

    WaitKey();      // キー入力待ち
    DxLib_End();    // DXライブラリ終了処理
    return 0;
}

また、使用されている、ライブラリが古いようであれば、最新版(ver3.08a)を使用されることをお勧めします。

■ DXライブラリのダウンロード
http://homepage2.nifty.com/natupaji/DxLib/dxdload.html

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません