1

メニューを押してアクティブにしたい共通色のダイアログ ボックスがあります。残念ながら、アイテムを押すたびに、ダイアログ ボックスが表示されるかのように、ウィンドウはフォーカスを失いますが、ダイアログ ボックスは表示されません。

私が現在使用しているコードは以下のとおりです。

case ID_TOOL_CHOOSECOLOR:
//show colour dialog
ChooseColor(&cc);

CHOOSECOLOR 構造体を次のように初期化しました。

 cc.lStructSize    = sizeof (CHOOSECOLOR) ;
 cc.hwndOwner      = NULL ;
 cc.hInstance      = NULL ;
 cc.rgbResult      = RGB (0x80, 0x80, 0x80) ;
 cc.lpCustColors   = crCustColor ;
 cc.Flags          = CC_RGBINIT | CC_FULLOPEN ;
 cc.lCustData      = 0 ;
 cc.lpfnHook       = NULL ;
 cc.lpTemplateName = NULL ;

奇妙なのは、「ALT」キー (および Alt キーのみ) を押した後にのみダイアログ ボックスが表示されることです。任意のヒント?

ちなみに、MDIドキュメントでこれをやろうとしています。

ありがとう

4

3 に答える 3

0

修正しました!

結局のところ、私が抱えていた問題はメイン ウィンドウの WndProc にありました。

WM_PAINTコマンドをreturn 0;の代わりに に設定しましbreak;た。

私を変更してすべてreturn 0break解決しました!returnこれが、wndproc を終了する原因であると思いますがbreakreturn MDIFrameProc(hwnd, message, wparam, lparam).

私は間違っているかもしれませんが、それは私が思いつくことができる最良の説明であり、機能するのに機能しない理由を説明してbreakreturn 0ます。

于 2013-04-10T05:59:32.400 に答える
0

絵を描いたら、必ず電話してくださいValidateRect(HWND,CONST RECT*);

于 2013-05-17T01:21:05.583 に答える