私はこの目的のためにcodeproject.comのeasysizeやsizecbarのような別のクラスを使いたくありません。 MFC CDialogExを使用しています。私はこれを試してみる:どのようにcdialogexのサイズ変更をうまく処理するには?
LRESULT ChildDialog::OnNcHitTest(CPoint point)
{
// TODO: Add your message handler code here and/or call default
//UINT nHitTest = CWnd::OnNcHitTest(uParam, lParam);
//return (nHitTest == HTLEFT) ? HTNONE : nHitTest;
return CDialogEx::OnNcHitTest(point);
}
void ChildDialog::OnSizing(UINT fwSide, LPRECT pRect)
{
//
//TRACE("%d\n", fwSide);
if (fwSide == WMSZ_RIGHT)
{
SetClassLong(m_hWnd,
GCL_HCURSOR,
(LONG)LoadCursor(NULL, IDC_ARROW));
//ASSERT(FALSE);
//AfxMessageBox(_T("right"));
}
// TODO: Add your message handler code here
CDialogEx::OnSizing(fwSide, pRect);
}
私は右のダイアログメッセージの右をクリックしてください。
投手でわかるように、私はこのようにしています。カーソルを変更し、黒い点線を引く。リサイズダイアログは片側を上にして、すべてのコーナーと左、右と下を無効にしたい。また、上からダイアログをリサイズするときにも、上のコントロールを移動したい。
私は誰かが私のためにすべてを行う必要はありません。ちょうど私がこれを達成する方法をアドバイス。私はソフトウェアdepends.exeからこの投手を取る。どんな助けにも感謝します。前もって感謝します。
Visual Studioを使用していますか? IDE内でダイアログのサイズを変更することができます。なぜ車を再発明するのですか? –
@AndrewTruckleはい私はMFCでVisual Studio 2013を使用しています。 –
バージョン2015または2017を試すことを検討してください。ダイアログのサイズ変更のために、IDEでネイティブサポートが追加されました。私は依存していたCSizingDialogクラスを完全に削除しました。 –