開發者獲取到一段 MFC 自動縮放類代碼,但不清楚頭文件應放置在哪個目錄,以及在主程序中如何調用。
由於原問題未提供具體代碼,以下為通用 MFC 自動縮放類(如 CAutoResize 或 CResizeDialog)的標準接入流程。請根據實際代碼類名調整。
.h 和 .cpp 文件放入項目目錄(通常與 .sln 同級或 Src/ 子目錄)。.h;右鍵「Source Files」添加 .cpp。在需要使用自動縮放的對話框/視圖類頭文件中包含:
#include "AutoResize.h" // 或實際類名對應的頭文件
class CMyDialog : public CDialogEx {
// ...
private:
CAutoResize m_autoResize; // 自動縮放管理器成員
};
BOOL CMyDialog::OnInitDialog() {
CDialogEx::OnInitDialog();
// 關鍵:初始化縮放管理器,傳入對話框指針
m_autoResize.Init(this);
// 可選:設置控件錨點(若類支持)
m_autoResize.AddControl(IDC_EDIT1, ANCHOR_LEFT | ANCHOR_RIGHT | ANCHOR_TOP);
m_autoResize.AddControl(IDC_BUTTON_OK, ANCHOR_RIGHT | ANCHOR_BOTTOM);
return TRUE;
}
void CMyDialog::OnSize(UINT nType, int cx, int cy) {
CDialogEx::OnSize(nType, cx, cy);
// 關鍵:窗口大小改變時調用縮放調整
m_autoResize.OnSize(cx, cy);
}
| 類名 | 特點 | 適用場景 |
|---|---|---|
| CAutoResize | 輕量、基於錨點、支持對話框/視圖 | 簡單對話框自適應 |
| CResizeDialog | 繼承 CDialog,內建縮放邏輯 | 直接作為基類使用 |
| CXTPResizeDialog | Codejock Xtreme Toolkit 組件 | 使用 XTP 庫的項目 |
接入核心在於:成員變量持有管理器實例 → OnInitDialog 初始化 → OnSize 轉發調用。具體 API 請參考所用類的頭文件聲明。