• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:メインダイアログのデータをウィンドウに反映させたい)

メインダイアログのデータをウィンドウに反映させたい

このQ&Aのポイント
  • メインダイアログからウィンドウを生成し、ダイアログの値を取得してウィンドウに反映させたい。しかし、どのようにすれば良いか分からない。
  • プログラムを添付します。
  • メインダイアログの値をウィンドウに反映させる方法についてアドバイスをお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

CMyWindowクラスにメソッドを追加して CMyDlgから文字列を受け取れるようにします class CMyWindow : public CFrameWnd { private:   CString MyMainStr; //これを追加 public:   void SetMainStr( CString ss ); protected:   afx_msg void OnPaint();   DECLARE_MESSAGE_MAP() }; // OnPaintを変更 void CMyWindow::OnPaint() {   CPaintDC dc(this);   // この2行は不要   // CMyDlg dlg;   // MyMainStr = dlg.m_MyStr;   dc.TextOut(0, 0, MyMainStr); } // 追加メソッド void CMyWindow::SetMinStr( CString ss ) {   MyMainStr = ss; } // CMyDlgのOnOKを修正 void CMyDlg::OnOK() {   GetDlgItemText(IDC_EDIT1, m_MyStr);   const RECT rc = {10, 10, 320, 240};   m_pMyWnd = new CMyWindow();   m_pMyWnd->Create( NULL, "ダイアログから起動", WS_OVERLAPPEDWINDOW, rc, this,NULL);   // これを追加   m_pMyWnd->SetMainStr( m_myStr );   m_pMyWnd->ShowWindow(SW_SHOW); } といった具合です

fwhf0162
質問者

お礼

どうもありがとうございました。おかげで思うように動作しました。 勉強にもなりました。ありがとうございました。