04 12 CView CMy Dialog CDocument 04 12

  • Slides: 22
Download presentation

04: 12 菜单 CView CMy. Dialog 用户 意见 CDocument 化学软件开发

04: 12 菜单 CView CMy. Dialog 用户 意见 CDocument 化学软件开发

04: 12 CView 控件 CMy. Dialog Control CStatic CDocument CEdit m_cs. Name CRadio CButton

04: 12 CView 控件 CMy. Dialog Control CStatic CDocument CEdit m_cs. Name CRadio CButton OK 用户 意见 化学软件开发

04: 12 // CMy. Dialog 对话框 class CMy. Dialog : public CDialog { protected:

04: 12 // CMy. Dialog 对话框 class CMy. Dialog : public CDialog { protected: virtual void Do. Data. Exchange(CData. Exchange* p. DX); public: CEdit m_edit_Name; // 按控件的类型 CString m_cs. Name; // 按控件的值 }; void CMy. Dialog: : Do. Data. Exchange(CData. Exchange* p. DX) { CDialog: : Do. Data. Exchange(p. DX); DDX_Text (p. DX, IDC_EDIT 1, m_cs. Name); DDX_Control (p. DX, IDC_EDIT 1, m_edit_Name); } 化学软件开发

04: 12 Document header class CSDIC 06 Doc : public CDocument { public: CString

04: 12 Document header class CSDIC 06 Doc : public CDocument { public: CString m_cs. Name; 增添新的变量 protected: // 仅从序列化创建 CSDIC 06 Doc(); DECLARE_DYNCREATE(CSDIC 06 Doc)// 生成的消息映射函数 …… protected: DECLARE_MESSAGE_MAP() public: afx_msg void On. View. Mydlg(); }; 化学软件开发

04: 12 Document cpp #include "SDIC 06 Doc. h" #include "My. Dialog. h“ IMPLEMENT_DYNCREATE(CSDIC

04: 12 Document cpp #include "SDIC 06 Doc. h" #include "My. Dialog. h“ IMPLEMENT_DYNCREATE(CSDIC 06 Doc, CDocument) BEGIN_MESSAGE_MAP(CSDIC 06 Doc, CDocument) ON_COMMAND(ID_VIEW_MYDLG, &CSDIC 06 Doc: : On. View. Mydlg) END_MESSAGE_MAP() void CSDIC 06 Doc: : On. View. Mydlg() { CMy. Dialog mydlg; // TODO: 在此添加命令处理程序代码 mydlg. m_cs. Name = m_cs. Name; mydlg; == IDOK) if. CMy. Dialog (mydlg. Do. Modal() { mydlg. Do. Modal(); } m_cs. Name = mydlg. m_cs. Name; Update. All. Views(NULL, 0, NULL); } // Doc Dialog // Dialog Doc // 更新View 化学软件开发

04: 12 View void CSDIC 06 View: : On. Draw(CDC* p. DC) { CSDIC

04: 12 View void CSDIC 06 View: : On. Draw(CDC* p. DC) { CSDIC 06 Doc* p. Doc = Get. Document(); ASSERT_VALID(p. Doc); if (!p. Doc) return; // TODO: 在此处为本机数据添加绘制代码 p. DC->Text. Out(10, p. Doc->m_cs. Name); } WM_PAINT On. Paint() void CDocument: : Update. All. Views( CView* p. Sender, LPARAM l. Hint = 0 L, CObject* p. Hint = NULL ); 化学软件开发

04: 12 CView 控件 CMy. Dialog Control CDocument m_cs. Name CEdit m_cs. Name OK

04: 12 CView 控件 CMy. Dialog Control CDocument m_cs. Name CEdit m_cs. Name OK 用户 意见 化学软件开发

04: 12 // CMy. Dialog 对话框 class CMy. Dialog : public CDialog { protected:

04: 12 // CMy. Dialog 对话框 class CMy. Dialog : public CDialog { protected: virtual void Do. Data. Exchange(CData. Exchange* p. DX); public: CEdit m_edit_Name; // 按控件的类型 CString m_cs. Name; // 按控件的值 }; void CMy. Dialog: : Do. Data. Exchange(CData. Exchange* p. DX) { CDialog: : Do. Data. Exchange(p. DX); DDX_Text (p. DX, IDC_EDIT 1, m_cs. Name); DDX_Control (p. DX, IDC_EDIT 1, m_edit_Name); } 检查用户输入的数据 化学软件开发

04: 12 // CMy. Dialog 对话框 class CMy. Dialog : public CDialog { protected:

04: 12 // CMy. Dialog 对话框 class CMy. Dialog : public CDialog { protected: virtual void Do. Data. Exchange(CData. Exchange* p. DX); public: // 画笔宽度 UINT m_n. Pen. Width; }; void CMy. Dialog: : Do. Data. Exchange(CData. Exchange* p. DX) { CDialog: : Do. Data. Exchange(p. DX); DDX_Text (p. DX, IDC_EDIT 1, m_n. Pen. Width); DDV_Min. Max. UInt(p. DX, m_n. Pen. Width, 1, 5); 检查用户输入的数据 } 化学软件开发

04: 12 通用对话窗 CColor. Dialog CFont. Dialog CFile. Dialog 化学软件开发

04: 12 通用对话窗 CColor. Dialog CFont. Dialog CFile. Dialog 化学软件开发

04: 12 CColor. Dialog CFont. Dialog CFile. Dialog // 在Doc. h中 COLORREF m_color; m_color

04: 12 CColor. Dialog CFont. Dialog CFile. Dialog // 在Doc. h中 COLORREF m_color; m_color // 在Doc. cpp中 CColor. Dialog dlg; if (dlg. Do. Modal() == IDOK) { m_color = dlg. Get. Color(); Get. Color } void CMy. View: : On. Draw(CDC * p. DC) { CMy. Doc * p. Doc = Get. Document(); CPen mypen; // 定义画笔变量 mypen. Create. Pen( // 创建画笔 PS_SOLID, 2, p. Doc->m_color); m_color } 化学软件开发

04: 12 CColor. Dialog CFont. Dialog CFile. Dialog 化学软件开发

04: 12 CColor. Dialog CFont. Dialog CFile. Dialog 化学软件开发

04: 12 CColor. Dialog CFont. Dialog CFile. Dialog 化学软件开发

04: 12 CColor. Dialog CFont. Dialog CFile. Dialog 化学软件开发

04: 12 // 文件类型: // *. chem 化学实验文件 // *. * 所有文件 TCHAR sz.

04: 12 // 文件类型: // *. chem 化学实验文件 // *. * 所有文件 TCHAR sz. Filters[]= _T(“化学软件 (*. sdic)|*. sdic|所有文件 (*. *)|*. *||"); // 注意:末尾仍要有一个 | 符号 // 在CDocument或者CView中 CFile. Dialog file. Dlg( TRUE, TRUE _T(“sdic"), _T("*. sdic"), OFN_FILEMUSTEXIST | OFN_HIDEREADONLY, sz. Filters); sz. Filters if(file. Dlg. Do. Modal() == IDOK) { CString path. Name = file. Dlg. Get. Path. Name(); Get. Path. Name } 结果:获取一个用户选定的全路径文件名 化学软件开发