WS_THICKFRAME スタイルを追加するアプリケーション ウィンドウがあり、WS_CAPTION スタイルを削除しました。ウィンドウが最大化されたら、WS_THICKFRAME を非表示にするが、Aero-Snap 機能は保持したいので、WS_NCCALCSIZE のハンドラーを変更して、ウィンドウの境界線のサイズに関して膨張した四角形を返します。
つまり、WS_NCCLIENTSIZE ハンドラー コードの重要な部分は次のようになります。
...
CRect rc( lpncsp->rgrc[0] );
if (IsZoomed())
{
int borderSize = GetSystemMetrics(SM_CYSIZEFRAME);
rc.InflateRect(borderSize,topOff+borderSize,borderSize,borderSize);
}
else
rc.InflateRect(0,topOff+0,0,0);
lpncsp->rgrc[0] = rc;
...
このコードは、WS_THICKFRAME を事実上非表示にします。
唯一の問題は、ウィンドウがフォーカスを失うか、(最大化されているときに) フォーカスを取り戻すと、WS_THICKFRAME が境界内に描画されることです。ウィンドウのフォーカスが設定/設定解除されたときに、膨張した四角形を元に戻すか、少なくともウィンドウサイズを再調整して WS_THICKFRAME を再び非表示にすることができるメッセージはありますか?