DXライブラリで最大化ボタンって有効なんですか?
http://hpcgi2.nifty.com/natupaji/bbs/pa ... ew&no=1096
ここ見て一応やってみましたが、ウインドウから最大化すると
真っ暗になります。
最大化ボタンで真っ暗に
Re:最大化ボタンで真っ暗に
> 因みに、ウインドウモードが切り替わった際にグラフィック
> ハンドルは全て解放されてしまいますので、
と書いてます。
画像の再ロードを忘れていませんか?
> ハンドルは全て解放されてしまいますので、
と書いてます。
画像の再ロードを忘れていませんか?
Re:最大化ボタンで真っ暗に
それはもう一度コンパイルしろってことでしょか?
実行した後、ウインドウの最大化で画面を表示させると暗くなるって意味
で私は語っているんですが・・・。すいません。
実行した後、ウインドウの最大化で画面を表示させると暗くなるって意味
で私は語っているんですが・・・。すいません。
Re:最大化ボタンで真っ暗に
画像ロード
↓
最大化
↓
もう一度ロード(←ここが重要)
というふうにプログラムが組まれていれば問題ないはずですが。
現状のソースを提示してもらえると具体的な回答が得られるかと思います。
↓
最大化
↓
もう一度ロード(←ここが重要)
というふうにプログラムが組まれていれば問題ないはずですが。
現状のソースを提示してもらえると具体的な回答が得られるかと思います。
Re:最大化ボタンで真っ暗に
初心者なんでポインタは基礎しかわからないですが、
int SetUseASyncChangeWindowModeFunction( int Flag, void (*CallBackFunction)(void*), void *Data );
特に↑が良く分からないです。
仮に最大化された時に前の画面データを呼び出す簡単な例があったら教えてくれませんか?
考えてみます。よろしくお願いします。
int SetUseASyncChangeWindowModeFunction( int Flag, void (*CallBackFunction)(void*), void *Data );
特に↑が良く分からないです。
仮に最大化された時に前の画面データを呼び出す簡単な例があったら教えてくれませんか?
考えてみます。よろしくお願いします。
Re:最大化ボタンで真っ暗に
リンク先の本家管理人さんサンプルの改変です。
画像はサンプルプログラム実行用フォルダに入っていたのを使っています。
VC++2008EEで動作確認済み。
画像はサンプルプログラム実行用フォルダに入っていたのを使っています。
VC++2008EEで動作確認済み。
#include "DxLib.h" int iGraph; // 画面モード変更時に呼ばれるコールバック関数 void ChangeCallback( void *Data ) { // 画像の再ロード iGraph = LoadGraph("TestTex1.jpg"); } int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { // 最大化ボタンを有効にする SetUseASyncChangeWindowModeFunction( TRUE, ChangeCallback, NULL ); // ウインドウモードで起動する ChangeWindowMode( TRUE ); // DXライブラリ初期化処理 if( DxLib_Init() == -1 ) return -1; // 描画先画面を表にする SetDrawScreen( DX_SCREEN_FRONT ) ; // 画像のロード iGraph = LoadGraph("TestTex1.jpg"); // ESC キーが押されたら終了する while( CheckHitKey( KEY_INPUT_ESCAPE ) == 0 ) { // メッセージ処理(エラーが発生したらループを抜ける) if( ProcessMessage() == -1 ) break; DrawGraph(0, 0, iGraph, FALSE); // 裏画面の内容を表画面に反映します ScreenFlip() ; } // DXライブラリの後始末 DxLib_End() ; // ソフトの終了 return 0 ; }
Re:最大化ボタンで真っ暗に
タブの所がずれるのでもう一度。
(何でタブ幅8なんだorz)
#描画先が表になってたのを裏に修正(影響ないけど念のため)
(何でタブ幅8なんだorz)
#描画先が表になってたのを裏に修正(影響ないけど念のため)
#include "DxLib.h" int iGraph; // 画面モード変更時に呼ばれるコールバック関数 void ChangeCallback( void *Data ) { // 画像の再ロード iGraph = LoadGraph("TestTex1.jpg"); } int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { // 最大化ボタンを有効にする SetUseASyncChangeWindowModeFunction( TRUE, ChangeCallback, NULL ); // ウインドウモードで起動する ChangeWindowMode( TRUE ); // DXライブラリ初期化処理 if( DxLib_Init() == -1 ) return -1; // 描画先画面を裏にする SetDrawScreen( DX_SCREEN_BACK ) ; // 画像のロード iGraph = LoadGraph("TestTex1.jpg"); // ESC キーが押されたら終了する while( CheckHitKey( KEY_INPUT_ESCAPE ) == 0 ) { // メッセージ処理(エラーが発生したらループを抜ける) if( ProcessMessage() == -1 ) break; DrawGraph(0, 0, iGraph, FALSE); // 裏画面の内容を表画面に反映します ScreenFlip() ; } // DXライブラリの後始末 DxLib_End() ; // ソフトの終了 return 0 ; }