投稿日時 : 2008年9月17日 20:19
CProgressCtrl::SetMarquee()の定義に飛んでみてください。 > #if (_WIN32_WINNT >= 0x0501) && defined(UNICODE) なる一文が確認されないでしょうか?
> st.lain さん はい。確認した上での投稿です。 疑問に感じたのは、何故 && defined(UNICODE) を付けているのかというところです。
確かにメッセージ(PBM_SETMARQUEE)自体には文字列を 要求するパラメータは見当たらないですね。 # 確かにご指摘のとおり、条件にUNICODE制約が含まれている # 意図がわかりませんね 確認はしてませんが、直接コントロールに対して メッセージを送ってみては? LRESULT lRet = SendMessage( m_progress.GetSafeHwnd(), PBM_SETMARQUEE, (WPARAM)TRUE, (LPARAM)nInterval); ASSERT(lRet == TRUE); になるんカナ。
SDK側では > #if (_WIN32_WINNT >= 0x0501) > #define PBM_SETMARQUEE (WM_USER+10) > #endif // _WIN32_WINNT >= 0x0501 なので、WinVerさえ間違えなければ文字セットは 関係なくコンパイルはされると思います。 動くかどうかは(ry
ヘルプを見ても、UNICODEって記述はこれといってなさそうですね。 とすると、このメッセージのための段取りのどこかで何かあるか?くらいかな。<影響ありの場合 まぁ、その後ろに続くやつも、UNICODE でくくってるけど...w 都合悪い...ということであれば、connect でバグ報告するといいですよ。 #次期SPでは直してくれそうな気がする<ANSIでも使えるだけなのでw その際には CProgressCtrl* pWnd; pWnd->SendMessage( PBM_SETMRQUEE, ... ); と、同じコードを自分で書かなければならない!と すると、効果が高そうな気がしますw #クラッシュ系じゃないから優先順位低いかもだけど...w
> pWnd->SendMessage( PBM_SETMRQUEE, ... ); そうぢゃん。なんでわざわざGetSafeHwnd()使ったのやら。 MSDNからのコピペ癖直さないとアカンですよね orz
Powered by: Copyright © keichan (keichan@wankuma.com)