- 633 名前:624 mailto:sage [2008/11/23(日) 11:35:19 ]
- >>630
> DoDataExchangeよりも先にOnSizeが先に呼ばれてしまうから、 DoDataExchangeとの順番は関係なく、最小化のタイミング等でもWM_SIZEは 飛んでくるから、何らかの判定は必要だと思うけど? codeguru.comの「CResizeDialog」だと、ダイアログにCRect型のメンバ変数 を追加して、コンストラクタでCRect::Empyt()しといて、一発目のOnSize で、CRect::IsRectEmpty()がTRUEなら、現在のダイアログサイズを変数に 取り込み、FALSEなら、直前のOnSize()時に取り込んだダイアログサイズと、 新しいサイズの差を計算して、子コントロールのダイアログ内での移動や、 サイズ変更をやっていたかと。 OnCreate()⇔OnDestroy()のように、明らかに逆で呼ばれることはないメッ セージを除いて、安易にフレームワークが呼び出す順番に依存するような 造りにはしない方がいいのでは? アイコンやビットマップを貼り付けるスタティックコントロールとか、貼り 付けたイメージのサイズに合わせて、コントロールのみ単独でOnSize()が 呼び出されることもあるし。
|

|