質問

私は私のMFCアプリケーションで設定レイヤードウィンドウを持っています。私は、私は、ウィンドウのレンダリング方法のさまざまな部分をカスタマイズできるようにするためにはCDialogの私自身の導出を設定しています。私はおよそ最小限に抑え、最大限に心配を開始するまで、すべてがすぐに正常に動作します。

あなたは(つまり、正確にレイヤードウィンドウを使用しない場合はそれがないとして)期待どおりに、ウィンドウが反応最小化または最大化をクリックした場合。しかし、私は非常に奇妙な問題が発生したウィンドウの何かを復元します。

私のテストウィンドウのデフォルトのクライアント領域の四角形は324x102です。私は、これはウィンドウのために報告されたサイズである(OnSize関数内)GetClientRectをすれば、私は最小化された状態から復元すると、例えば、CXとCYはOnSize関数に渡されたが、550 994です。不気味、私はGetWindowRectを行う場合、私は(明らかに私のすべての非クライアント領域を含むが)戻って正しいサイズを得るのにます。

誰もが、私はそれは、このようなGetClientRectは、正しい情報を報告することを修正することができますどのように、より重要なのは、ここで起こっている任意のアイデアを持っていますか?

事前に感謝します!

役に立ちましたか?

解決

私はこの問題を解決するためのハックの一種が出ています。 OnSize関数とOnMoveに私が受信(C)xおよび(c)はYを無視し、GetWindowRectからすべてをうまく。アプリケーションは現在、予想通りに反応します。私は[HACK]コメントとコードをマークしています。これは私がなぜこれが起こっている聞いてみたい、しかし非常に奇妙に思えるん。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top