読者です 読者をやめる 読者になる 読者になる

流れるまにまに。

のんびり人の日々のめも。

【C/C++】引数ありコンストラクタの呼び出し

 

MFCアプリで、引数呼びしたのをダイアログの方に渡したかった。

-------AppDlg.cpp-----------------------
//(色々略)
CAppDlg::CAppDlg(const CString FilePath, CWnd* pParent /*=NULL*/)
: CDialogEx(IDD_APP_DIALOG, pParent)
, m_FilePath(_T(""))
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
m_FilePath = FilePath;
}

void CAppDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Text(pDX, IDC_PATH_EDIT, m_FilePath);
}


-------AppDlg.h-------------------------
class CAppDlg : public CDialogEx
{
// コンストラクション
public:
CAppDlg(const CString FilePath, const CString OriginalFilePath, CWnd* pParent = nullptr);

// ダイアログ データ
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_App_DIALOG };
#endif

protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV サポート

// 実装(略)
private:
CString m_FilePath;
};

 

-------App.cpp-------------------------
CAppDlg dlg(__targv[0], __targv[2]);
m_pMainWnd = &dlg;
dlg.DoModal();

-------------------------------------------

 

オーバーライドって便利\(^o^)/