MFC建立乙個CDialogEx的基類

2021-10-12 06:29:09 字數 2894 閱讀 4295

有了自動布局縮放的方法,那就建立乙個基類,所有視窗類都繼承此類

新增mfc類

名稱自定義  cbasedlg

cbasedlg.h

#pragma once

#include "afxcontrolbarutil.h"

#include "afxdialogimpl.h"

#include "./layout/controlautolayout.h"

// cbasedlg 對話方塊 基類 自動布局縮放,其他視窗繼承此類

class cbasedlg : public cdialogex

;#endif

protected:

virtual void dodataexchange(cdataexchange* pdx); // ddx/ddv 支援

bool oninitdialog();

afx_msg void onsize(uint ntype, int cx, int cy); // cx 窗體寬度,cy窗體高度

declare_message_map()

private:

controlautolayout control_auto_layout_;

};

cbasedlg.cpp

// cbasedlg.cpp: 實現檔案

//#include "stdafx.h"

#include "servermanager.h"

#include "cbasedlg.h"

#include "afxdialogex.h"

// cbasedlg 對話方塊

implement_dynamic(cbasedlg, cdialogex)

cbasedlg::cbasedlg(uint nidd, cwnd* pparent /*=null*/)

: cdialogex(nidd, pparent)

cbasedlg::~cbasedlg()

void cbasedlg::dodataexchange(cdataexchange* pdx)

bool cbasedlg::oninitdialog()

void cbasedlg::onsize(uint ntype, int cx, int cy)

}begin_message_map(cbasedlg, cdialogex)

on_wm_size()

end_message_map()

// cbasedlg 訊息處理程式

主要是  有兩個函式  

bool cbasedlg::oninitdialog()//初始化的函式

void cbasedlg::onsize(uint ntype, int cx, int cy)//視窗變化的函式

其他視窗類繼承 cbasedlg

使用者設定類

usersetdlg.h

#pragma once

#include"cbasedlg.h"

// usersetdlg 對話方塊

class usersetdlg : public cbasedlg

;#endif

protected:

virtual void dodataexchange(cdataexchange* pdx); // ddx/ddv 支援

afx_msg void onsize(uint ntype, int cx, int cy); // cx 窗體寬度,cy窗體高度

bool usersetdlg::oninitdialog();

declare_message_map()

};

usersetdlg.cpp

// usersetdlg.cpp: 實現檔案

//#include "stdafx.h"

#include "servermanager.h"

#include "usersetdlg.h"

#include "afxdialogex.h"

// usersetdlg 對話方塊

implement_dynamic(usersetdlg, cbasedlg)

usersetdlg::usersetdlg(cwnd* pparent /*=nullptr*/)

: cbasedlg(idd_user_dlg, pparent)

usersetdlg::~usersetdlg()

void usersetdlg::dodataexchange(cdataexchange* pdx)

begin_message_map(usersetdlg, cbasedlg)

on_wm_size()

end_message_map()

void usersetdlg::onsize(uint ntype, int cx, int cy)

bool usersetdlg::oninitdialog()

// usersetdlg 訊息處理程式

這樣  使用者設定視窗  就 自動 繼承了  自動布局的方法

如圖

一 VS2010建立乙個MFC專案

一 建立乙個mfc專案 執行vs2010 雙擊執行vs2010開發工具。新建專案 在彈出的視窗中選擇檔案,然後選擇新建,最後選擇專案。選擇mfc應用程式 在彈出的視窗中的已安裝模板選擇mfc,在右側選擇mfc應用程式。設定工程名和儲存路徑 在下面的名稱處輸入工程的名,在位置處輸入工程在磁碟上的位置。...

乙個Demo初識MFC

如何通過完全 的形式來建立視窗?下面是乙個簡單的程式。設定專案屬性如下 標頭檔案 testall.h class cmainwindow public cframewnd 原始檔 testall.cpp testall.cpp 定義控制台應用程式的入口點。include stdafx.h inclu...

什麼是MFC,用MFC建立乙個簡單的計算器應用程式

2017 03 17 20 25 36 程度上可能 閱讀數 1032 文章標籤 windows 應用 更多 分類專欄 mfc學習筆記 定義 微軟基礎類庫 英語 microsoft foundation classes,簡稱mfc 是乙個微軟公司提供的類庫 class libraries 以c 類的形...