ビットマップ表示とSetTimer関数を同居させる方法
ビットマップ表示とSetTimer関数を同居させる方法
現在、vc++2005を使用して、簡易的なGUIアプリケーションを作成しようとしているのですが、自分では解決ができない問題が発生してしまったので、質問させていただきます。
それはビットマップ表示とSetTimer関数を同居させる方法についてです。
ビットマップを読み込んで表示させる機能を追加してから、SetTimer関数が反応しなくなってしまい困っています。
ちなみにビットマップ表示の機能を追加する前まではSetTimer関数が正常に機能していました。
ウィンドウのハンドルhWndが何か関係しているのかと思ったのですが、解決方法がわからず・・・・・・
ご存知の方がいらっしゃましたら御教授いただけると幸いです。
↓ ソースの一部です
case WM_CREATE:
//ビットマップファイル読み込み + 表示の準備
static HBITMAP hbitmap,prebitmap;
static HDC hDC, hcomDC;
hbitmap = (HBITMAP)LoadImage(NULL,_T("kouen.bmp"),IMAGE_BITMAP,0,0, LR_LOADFROMFILE);
if( hbitmap == NULL )
{
MessageBox(hWnd, _T("ビットマップのロードに失敗しました"), _T("エラー"),MB_OK | MB_ICONWARNING);
return 0;
}
hDC =GetDC(hWnd);
hcomDC =CreateCompatibleDC(hDC);
prebitmap= (HBITMAP)SelectObject(hcomDC,hbitmap);
(中略)
break;
case WM_LBUTTONDOWN:
//2連続のシングルクリック防止
EnableWindow(hWnd,FALSE);
SetTimer(hWnd, ID_TIMER1, 500, NULL); ← これが機能していない
(中略)
break;
case WM_PAINT:
BitBlt( hDC, 0, 0, 1024, 690, hcomDC, 0, 0, SRCCOPY );
break;
case WM_TIMER://機能しなくなってしまった部分
if(wParam==ID_TIMER1){
KillTimer(hWnd,ID_TIMER1);
EnableWindow(hWnd,TRUE);
}
お礼
回答ありがとうございました。Timerの使用方法が分かりました。