トップページ > 過去ログ > 記事閲覧
オプションなどの項目選択の点滅矢印について
名前:カエル 日時: 2007/03/16 10:24

オプションなどの項目選択などである点滅矢印についての質問なんですけど (点滅矢印こういうもの) http://pleasant-every-day.hp.infoseek.co.jp/yajirusi.gif DxLibでgif画像が使えなくてやり方に困ってるんですけど なにかいい方法はありますでしょうか? WaitTimer(ミリ秒)を使うと他の処理がとまってしまうので使えません。 現在は DATEDATA Date ; GetDateTime( &Date ) ; if(Date.Sec%2==0){DrawGraph(400 , 382, rlyaji , TRUE );} これを利用しているんですけど 表示間隔1秒単位までしかできないので 他の方法を探しています よろしくお願いします

Page: 1 |

Re: オプションなどの項目選択の点滅矢印について ( No.1 )
名前:wiz 日時:2007/03/16 12:19

DxLibのヘッダを見ましたが、 現状は管理人さんの対応待ちでしょうか。 Windowsの時間精度を上げるには以下のような 方法があります。 #include <mmsystem.h> #pragma comment(lib,"winmm.lib") INT WINAPI WinMain( 〜 ) { MMRESULT mmRet; DWORD dwSaveTime; //時間制御の開始 mmRet = TIMERR_NOERROR; mmRet = timeBeginPeriod( 1 );//精度を1ミリ秒へ(最小タイマ分解能を、ミリ秒単位で指定) if( mmRet!= TIMERR_NOERROR ){ //精度制御の失敗 } dwSaveTime = timeGetTime();//現在時間取得 //1秒待ち while(dwSaveTime+1000 > timeGetTime()) ; //時間制御の終了 timeEndPeriod( 1 );//timeBeginPeriodを同じ値を渡す }
Re: オプションなどの項目選択の点滅矢印について ( No.2 )
名前:カエル 日時:2007/03/17 02:00

ミリ秒単位でできるんですか! 参考になります、ありがとうございました。
Re: オプションなどの項目選択の点滅矢印について ( No.3 )
名前:管理人 日時:2007/03/17 11:35

 カエルさんどうも、DXライブラリの管理人です。  wizさんがご紹介されている timeGetTime 関数と同じくミリ秒単位で PCが起動してからの経過時間を取得できる GetNowCount という関数が DXライブラリにもあります。  恐らくもう解決されているかと思いますが、カエルさんが書かれた if(Date.Sec%2==0){DrawGraph(400 , 382, rlyaji , TRUE );}  という部分を if( GetNowCount() % 1000 < 500 ){DrawGraph(400 , 382, rlyaji , TRUE );}  とすれば、0.5秒毎に点滅を繰り返す処理が出来ると思います。
Re: オプションなどの項目選択の点滅矢印について ( No.4 )
名前:カエル 日時:2007/03/17 13:43

GetNowCount関数の説明見てみました。 PC起動してからの時間を測定するさえに変数に代入して 減算によって時間を求め、処理を分ける。 こんなアルゴリズム考え付きませんでした;; ありがとうございます。全て解決しました。

Page: 1 |