1 // DlgExec.cpp : 实现文件 2 // 3 4 #include "stdafx.h" 5 #include "Self.h" 6 #include "DlgExec.h" 7 #include "afxdialogex.h" 8 9 10 // CDlgExec 对话框 11 12 IMPLEMENT_DYNAMIC(CDlgExec, CDialogEx) 13 14 CDlgExec::CDlgExec(CWnd* pParent /*=NULL*/) 15 : CDialogEx(CDlgExec::IDD, pParent) 16 { 17 18 } 19 20 CDlgExec::~CDlgExec() 21 { 22 } 23 24 void CDlgExec::DoDataExchange(CDataExchange* pDX) 25 { 26 CDialogEx::DoDataExchange(pDX); 27 DDX_Control(pDX, IDC_TEXT, m_Static_Text); 28 DDX_Control(pDX, IDC_BUTTON4, m_Button_Dj); 29 } 30 31 32 BEGIN_MESSAGE_MAP(CDlgExec, CDialogEx) 33 ON_BN_CLICKED(IDC_BUTTON2, &CDlgExec::OnBnClickedButton2) 34 ON_BN_CLICKED(IDC_BUTTON3, &CDlgExec::OnBnClickedButton3) 35 ON_BN_CLICKED(IDC_BUTTON5, &CDlgExec::OnBnClickedButton5) 36 37 ON_BN_CLICKED(IDC_BUTTON4, &CDlgExec::OnBnClickedButton4) 38 END_MESSAGE_MAP() 39 40 41 // CDlgExec 消息处理程序 42 43 //点击修改内容 44 void CDlgExec::OnBnClickedButton2() 45 { 46 // TODO: 在此添加控件通知处理程序代码 47 //设置文本 48 m_Static_Text.SetWindowTextA(TEXT("呵呵")); 49 } 50 51 //获取内容 52 void CDlgExec::OnBnClickedButton3() 53 { 54 // TODO: 在此添加控件通知处理程序代码 55 56 CString str; 57 58 59 m_Static_Text.GetWindowTextA(str); 60 MessageBox(str); 61 62 63 } 64 65 66 void CDlgExec::OnBnClickedButton5() 67 { 68 // TODO: 在此添加控件通知处理程序代码 69 m_Static_Text.SetWindowTextA(TEXT("吼吼")); 70 } 71 72 73 void CDlgExec::OnBnClickedButton6() 74 { 75 // TODO: 在此添加控件通知处理程序代码 76 77 CString str; 78 m_Static_Text.GetWindowTextA(str); 79 MessageBox(str); 80 81 } 82 83 84 void CDlgExec::OnBnClickedButton4() 85 { 86 // TODO: 在此添加控件通知处理程序代码 87 88 //点击修改显示内容 89 m_Button_Dj.SetWindowTextA(TEXT("(;′⌒`)")); 90 //获取里面的内容 91 CString str; 92 m_Button_Dj.GetWindowTextA(str); 93 MessageBox(str); 94 95 //设置点击的状态 96 m_Button_Dj.EnableWindow(FALSE); 97 }
1 // DlgShow.cpp : 实现文件 2 // 3 4 #include "stdafx.h" 5 #include "Self.h" 6 #include "DlgShow.h" 7 #include "afxdialogex.h" 8 9 10 // CDlgShow 对话框 11 12 IMPLEMENT_DYNAMIC(CDlgShow, CDialogEx) 13 14 CDlgShow::CDlgShow(CWnd* pParent /*=NULL*/) 15 : CDialogEx(CDlgShow::IDD, pParent) 16 , m_Edit_ShowText(_T("")) 17 { 18 19 } 20 21 CDlgShow::~CDlgShow() 22 { 23 24 } 25 26 void CDlgShow::DoDataExchange(CDataExchange* pDX) 27 { 28 CDialogEx::DoDataExchange(pDX); 29 30 DDX_Control(pDX, IDC_EDIT1, m_Edit_Show); 31 DDX_Control(pDX, IDC_EDIT2, m_Edit_Copy); 32 33 //对话框的初始数据 34 m_Edit_Show.SetWindowTextA(TEXT("复制一个Y的数据")); 35 DDX_Text(pDX, IDC_EDIT3, m_Edit_ShowText); 36 } 37 38 39 BEGIN_MESSAGE_MAP(CDlgShow, CDialogEx) 40 ON_BN_CLICKED(IDC_BUTTON_COPY, &CDlgShow::OnBnClickedButtonCopy) 41 ON_BN_CLICKED(IDC_BUTTON_CLOSE, &CDlgShow::OnBnClickedButtonClose) 42 ON_BN_CLICKED(IDC_BUTTON2, &CDlgShow::OnBnClickedButton2) 43 ON_BN_CLICKED(IDC_BUTTON3, &CDlgShow::OnBnClickedButton3) 44 END_MESSAGE_MAP() 45 46 47 // CDlgShow 消息处理程序 48 49 50 51 52 //获取数据 53 void CDlgShow::OnBnClickedButtonCopy() 54 { 55 // TODO: 在此添加控件通知处理程序代码 56 CString str; 57 m_Edit_Show.GetWindowTextA(str); 58 m_Edit_Copy.SetWindowTextA(str); 59 60 } 61 62 63 void CDlgShow::OnBnClickedButtonClose() 64 { 65 // TODO: 在此添加控件通知处理程序代码 66 //exit(0);//退出整个程序 67 68 //退出当前的对话框 69 //CDialog::OnOK(); 70 CDialog::OnCancel(); 71 } 72 73 74 void CDlgShow::OnOK() 75 { 76 // TODO: 在此添加专用代码和/或调用基类 77 78 //CDialogEx::OnOK(); 79 } 80 81 82 void CDlgShow::OnBnClickedButton2() 83 { 84 // TODO: 在此添加控件通知处理程序代码 85 86 //利用value的方式,设置和改变edit 的内容 87 88 //设置内容 89 m_Edit_ShowText=TEXT("Y的数据为:456"); 90 91 //将变量的内容 同步控件中 92 UpdateData(FALSE); 93 } 94 95 96 void CDlgShow::OnBnClickedButton3() 97 { 98 // TODO: 在此添加控件变量中 99 //将控件的内容同步到变量中 100 UpdateData(TRUE); 101 //获取内容 102 MessageBox(m_Edit_ShowText); 103 }
1 // Self.cpp : 定义应用程序的类行为。 2 // 3 4 #include "stdafx.h" 5 #include "Self.h" 6 #include "SelfDlg.h" 7 8 #ifdef _DEBUG 9 #define new DEBUG_NEW 10 #endif 11 12 13 // CSelfApp 14 15 BEGIN_MESSAGE_MAP(CSelfApp, CWinApp) 16 ON_COMMAND(ID_HELP, &CWinApp::OnHelp) 17 END_MESSAGE_MAP() 18 19 20 // CSelfApp 构造 21 22 CSelfApp::CSelfApp() 23 { 24 // 支持重新启动管理器 25 m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART; 26 27 // TODO: 在此处添加构造代码, 28 // 将所有重要的初始化放置在 InitInstance 中 29 } 30 31 32 // 唯一的一个 CSelfApp 对象 33 34 CSelfApp theApp; 35 36 37 // CSelfApp 初始化 38 39 BOOL CSelfApp::InitInstance() 40 { 41 // 如果一个运行在 Windows XP 上的应用程序清单指定要 42 // 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式, 43 //则需要 InitCommonControlsEx()。否则,将无法创建窗口。 44 INITCOMMONCONTROLSEX InitCtrls; 45 InitCtrls.dwSize = sizeof(InitCtrls); 46 // 将它设置为包括所有要在应用程序中使用的 47 // 公共控件类。 48 InitCtrls.dwICC = ICC_WIN95_CLASSES; 49 InitCommonControlsEx(&InitCtrls); 50 51 CWinApp::InitInstance(); 52 53 54 AfxEnableControlContainer(); 55 56 // 创建 shell 管理器,以防对话框包含 57 // 任何 shell 树视图控件或 shell 列表视图控件。 58 CShellManager *pShellManager = new CShellManager; 59 60 // 标准初始化 61 // 如果未使用这些功能并希望减小 62 // 最终可执行文件的大小,则应移除下列 63 // 不需要的特定初始化例程 64 // 更改用于存储设置的注册表项 65 // TODO: 应适当修改该字符串, 66 // 例如修改为公司或组织名 67 SetRegistryKey(_T("应用程序向导生成的本地应用程序")); 68 69 CSelfDlg dlg; 70 m_pMainWnd = &dlg; 71 INT_PTR nResponse = dlg.DoModal(); 72 if (nResponse == IDOK) 73 { 74 // TODO: 在此放置处理何时用 75 // “确定”来关闭对话框的代码 76 } 77 else if (nResponse == IDCANCEL) 78 { 79 // TODO: 在此放置处理何时用 80 // “取消”来关闭对话框的代码 81 } 82 83 // 删除上面创建的 shell 管理器。 84 if (pShellManager != NULL) 85 { 86 delete pShellManager; 87 } 88 89 // 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序, 90 // 而不是启动应用程序的消息泵。 91 return FALSE; 92 }
1 // SelfDlg.cpp : 实现文件 2 // 3 4 #include "stdafx.h" 5 #include "Self.h" 6 #include "SelfDlg.h" 7 #include "afxdialogex.h" 8 #include "DlgExec.h" 9 #include "DlgShow.h" 10 #include "TAB.h" 11 #include "SYSTEM.h" 12 #include "SYSTEM2.h" 13 #ifdef _DEBUG 14 #define new DEBUG_NEW 15 #endif 16 17 18 // 用于应用程序“关于”菜单项的 CAboutDlg 对话框 19 20 class CAboutDlg : public CDialogEx 21 { 22 public: 23 CAboutDlg(); 24 25 // 对话框数据 26 enum { IDD = IDD_ABOUTBOX }; 27 28 protected: 29 virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 30 31 // 实现 32 protected: 33 DECLARE_MESSAGE_MAP() 34 }; 35 36 CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD) 37 { 38 } 39 40 void CAboutDlg::DoDataExchange(CDataExchange* pDX) 41 { 42 CDialogEx::DoDataExchange(pDX); 43 } 44 45 BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx) 46 END_MESSAGE_MAP() 47 48 49 // CSelfDlg 对话框 50 51 52 53 54 CSelfDlg::CSelfDlg(CWnd* pParent /*=NULL*/) 55 : CDialogEx(CSelfDlg::IDD, pParent) 56 { 57 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); 58 } 59 60 void CSelfDlg::DoDataExchange(CDataExchange* pDX) 61 { 62 CDialogEx::DoDataExchange(pDX); 63 64 } 65 66 BEGIN_MESSAGE_MAP(CSelfDlg, CDialogEx) 67 ON_WM_SYSCOMMAND() 68 ON_WM_PAINT() 69 ON_WM_QUERYDRAGICON() 70 ON_BN_CLICKED(IDC_BUTTON1, &CSelfDlg::OnBnClickedButton1) 71 ON_BN_CLICKED(IDC_BUTTON2, &CSelfDlg::OnBnClickedButton2) 72 ON_BN_CLICKED(IDC_BUTTON3, &CSelfDlg::OnBnClickedButton3) 73 END_MESSAGE_MAP() 74 75 76 // CSelfDlg 消息处理程序 77 78 BOOL CSelfDlg::OnInitDialog() 79 { 80 CDialogEx::OnInitDialog(); 81 82 // 将“关于...”菜单项添加到系统菜单中。 83 84 // IDM_ABOUTBOX 必须在系统命令范围内。 85 ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); 86 ASSERT(IDM_ABOUTBOX < 0xF000); 87 88 CMenu* pSysMenu = GetSystemMenu(FALSE); 89 if (pSysMenu != NULL) 90 { 91 BOOL bNameValid; 92 CString strAboutMenu; 93 bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX); 94 ASSERT(bNameValid); 95 if (!strAboutMenu.IsEmpty()) 96 { 97 pSysMenu->AppendMenu(MF_SEPARATOR); 98 pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); 99 } 100 } 101 102 // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动 103 // 执行此操作 104 SetIcon(m_hIcon, TRUE); // 设置大图标 105 SetIcon(m_hIcon, FALSE); // 设置小图标 106 107 // TODO: 在此添加额外的初始化代码 108 //显示图片 109 110 111 112 dlg.Create(IDD_SHOW); 113 return TRUE; // 除非将焦点设置到控件,否则返回 TRUE 114 } 115 116 void CSelfDlg::OnSysCommand(UINT nID, LPARAM lParam) 117 { 118 if ((nID & 0xFFF0) == IDM_ABOUTBOX) 119 { 120 CAboutDlg dlgAbout; 121 dlgAbout.DoModal(); 122 } 123 else 124 { 125 CDialogEx::OnSysCommand(nID, lParam); 126 } 127 } 128 129 // 如果向对话框添加最小化按钮,则需要下面的代码 130 // 来绘制该图标。对于使用文档/视图模型的 MFC 应用程序, 131 // 这将由框架自动完成。 132 133 void CSelfDlg::OnPaint() 134 { 135 if (IsIconic()) 136 { 137 CPaintDC dc(this); // 用于绘制的设备上下文 138 139 SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0); 140 141 // 使图标在工作区矩形中居中 142 int cxIcon = GetSystemMetrics(SM_CXICON); 143 int cyIcon = GetSystemMetrics(SM_CYICON); 144 CRect rect; 145 GetClientRect(&rect); 146 int x = (rect.Width() - cxIcon + 1) / 2; 147 int y = (rect.Height() - cyIcon + 1) / 2; 148 149 // 绘制图标 150 dc.DrawIcon(x, y, m_hIcon); 151 } 152 else 153 { 154 CDialogEx::OnPaint(); 155 } 156 } 157 158 //当用户拖动最小化窗口时系统调用此函数取得光标 159 //显示。 160 HCURSOR CSelfDlg::OnQueryDragIcon() 161 { 162 return static_cast<HCURSOR>(m_hIcon); 163 } 164 165 166 //X数据的对话框 167 void CSelfDlg::OnBnClickedButton1() 168 { 169 // TODO: 在此添加控件通知处理程序代码、 170 //弹出X的数据对话框 171 CDlgExec dlg; 172 dlg.DoModal(); 173 } 174 175 //Y 轴的数据 176 void CSelfDlg::OnBnClickedButton2() 177 { 178 // TODO: 在此添加控件通知处理程序代码 179 //CDlgShow dlg; 180 //创建 181 //dlg.Create(IDD_SHOW);//创建一个窗口,多了崩溃 182 //显示 183 dlg.ShowWindow(SW_SHOWNORMAL); 184 185 } 186 187 188 void CSelfDlg::OnBnClickedButton3() 189 { 190 // TODO: 在此添加控件通知处理程序代码 191 CTAB dlg; 192 dlg.DoModal(); 193 }