Menu 関数リファレンス デフォルトプロジェクトを使ってスクリーンセーバーを作る。 最初から作る。 DxLibScreenSaverLibrary Style1をダウンロードする 2005/02/06 / screen_saver02.hpp / DxLibでスクリーンセーバーを製作するクラス |
DxLibScreenSaverLibrary Style1 関数リファレンスC言語で記述!?されているのでDxLib使用経験者は使いやすいと思う^^;
HINSTANCE *hInst, LPSTR *lplpCmdLine, WORD Resorce, DLGPROC lpDialogFunc ); DxLibと一緒に初期化します。必ずこれを呼び出してください。 引数: *hInst WinMainの第一引数をぶち込みます。HINSTANCE hInstanceってやつです。 &hInstanceって感じでぶち込んでください。 (まぁ人によりいろんな名前だけどね^^;デフォルトはこう。よく分からなかったら付属のサンプルソースを見よう^^) *lplpCmdLine WinMainの第三引数をぶち込みます。LPSTR lpCmdLineってやつです。 &lpCmdLineって感じでぶち込んでください。 Resorce スクリーンセイバーの設定時に表示するダイアログのリソースIDを渡します。 リソースってスペル間違っているみたいだけど気にしないでね( ̄ー ̄; ヒヤリ デフォルトプロジェクトのサンプルではIDD_DIALOG1になっています。 lpDialogFunc ダイアログのコールバック関数をぶち込んでください。 サンプルではMyDefDlgProcになっています。 そのまま使用する事をオススメします。 戻り値 私が定義した列挙が戻ってくる。詳細は以下 //モード列挙 enum{ enuSSaverSetDataDialog=1, enuSSaverPreview, enuSSaverFullScreen, enuSSaverChangePasswd }; enuSSaverSetDataDialog 設定ウインドウモードで起動した。 enuSSaverPreview プレビューモードで起動した。(実際帰ってこないみたい^^; enuSSaverFullScreen フルスクリーンで起動した。これが帰ってきたらDxLibの描画関数等を使ってスクリーンセーバーのプログラムを組む。音楽とかムービーももちろん使用できる。 つまり〜^^;すべてのDxLib関数を使用できるって訳よ。 あとエラーログ出したくない場合は int SetOutApplicationLogValidFlag( FALSE ) ; をして下さい。どうぞよろしく^^; (追記:こちら側で上記の関数はデフォルトでFALSEにするようにしました) enuSSaverChangePasswd パスワードチェンジモードで帰ってきた。 実際ライブラリ側で自動で設定するので帰ってきても無視して良い。 サンプル //このサンプルはダウンロードしたファイルの //ScreenSaverLibrary->デフォルトプロジェクトを参考にしています。 #include "nsaverDxlib.h" #include "resource.h" int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { int r; r=DxLibScreenSaverInit( &hInstance, &lpCmdLine, IDD_DIALOG1, MyDefDlgProc ); //戻ってきたらDxLib if(r==enuSSaverFullScreen){ WaitKey(); DxLibScreenSaverEnd(); } return 0; } int DxLibScreenSaverEnd(void); DxLibと一緒に終了します。DxLib_Endと使い方は一緒です。 戻り値 DxLib_Endと同じ?だと思うけど^^;無視してよし bool CheckPasswd(bool autoflg); パスワードをチェックする。(内部でマウス処理やキーボード処理も行う。) よってメインループ内にこの関数を呼び出すだけで良い。 引数 autoflg tureにすると、パスワードが一致した際すぐに終了する。 戻り値 tureでパスワード入力成功。 falseでパスワード入力失敗。またはパスワード入力はされなかった、パスワード入力ダイアログを表示しなかった。 bool GetDxLibSaverData(); GetGraphicFileNamePointerやGetMusicFileNamePointerを使用する前に呼び出してください。falseが返るとGetGraphicFileNamePointerやGetMusicFileNamePointerは使用できません。 戻り値 false: GetGraphicFileNamePointerやGetMusicFileNamePointerは使用不可能 true: GetGraphicFileNamePointerやGetMusicFileNamePointerは使用可能 char *GetGraphicFileNamePointer(char **p=NULL); 設定モードで使用したグラフィックファイルPathのポインターを返す。 引数 戻り値と一緒。&で渡す。 戻り値 グラフィックファイルPathの先頭アドレス 注意 GetDxLibSaverDataを呼び出さないのにこの関数を呼び出すと、 グラフィックファイルが設定されてないと帰ってくる値は不明です。 また、DxLibScreenSaverInitでデフォルトのダイアログを渡さないと正常に機能しません。 よってオリジナルに凝る場合はこの関数は無視していいです。 char *GetMusicFileNamePointer(char **p=NULL); 前説明したGetGraphicFileNamePointerとほぼ一緒。 ダイアログで設定した音楽ファイルフルパスの先頭のアドレスを返す。 GetGraphicFileNamePointerと一緒なので説明は省略させてもらう。 void SetTestFunc(BYTE (*f)(void)); デフォルトダイアログを表示したとき”テスト”というボタンがある。 そのボタンを押したときに実行する関数を登録する。 ちなみに登録する関数は引数はvoid戻り値はBYTEと決まっている。 引数 引数はvoid戻り値はBYTEの関数の名前を渡す。(ポインタを渡すらしい) (文字列ではない 詳しくはサンプルにて) 戻り値 ナシ 注意 DxLibScreenSaverInit関数を呼び出す前に呼び出すこと。 サンプル BYTE sample(void){ DrawBox(0,0,600,400,0xffff,TRUE); ScreenFlip(); WaitKey(); DxLibScreenSaverEnd();//必ずこの終了関数を呼び出すこと } SetTestFunc(sample); //タブンこれでOK!? |
デフォルトプロジェクトから作る
|
SEO | [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送 | ||