ビットマップ表示と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);
}
お礼
有難うございます。 できました(^0^) CButton m_Button1; m_Button1.SetBitmap(hBitmap); を付け加えてできました。 あと、もうひとつ悩みができてしまったのですが・・・このボタンの色を変更したいのですがどのようにすればよろしいでしょうか?
補足
[補足です] 色が変わるのはボタンが押されたときです