WM5.0でVC++、MFCのアプリを開発していて、一つの問題がやっと解決しました。
その問題というのはBitmapButtonをタップしたときに、指定したSelectedのBitmapが表示されずに、ホールド時のアニメーションが出てしまうこと。
ネットで色々調べた結果、::SHRecognizeGestureという関数がアニメーションを表示しているらしい…。そして、この関数はCWnd::OnLButtonDown()で呼ばれていること。MFCのソースを見てみたら、確かに呼ばれてます。
色々試行錯誤した挙句、次の対処で問題解決しました。
1. CBitmapButtonクラスでOnLButtonDownをオーバーライド。
2. デフォルトで呼ばれているCButton::OnLButtonDown()をコメントアウトし、CWnd::Default()を呼び出す。
MFCのソースをチェックしたところ、CButton::OnLButtonDown()はオーバーライドされていないので、これで問題ないと思われます。ちなみに、CBitmapButtonクラスはCButtonの派生クラスです。(VS2005のMFCには入ってないんだよね…)
これでずっと気になっていたBitmapButtonの動きがすっきりしました。解決すると嬉しいなぁ(*^-^)