//
#include "stdafx.h"
#include "MY.h"
#include "TestDlg.h"
#include "afxdialogex.h"
// CTestDlg 对话框
IMPLEMENT_DYNAMIC(CTestDlg, CDialogEx)
CTestDlg::CTestDlg(CWnd* pParent /*=NULL*/)
: CDialogEx(IDD_DIALOG1, pParent)
, m_num1(0)
, m_num2(0)
, m_num3(0)
{
// m_num1 = 0;
}
CTestDlg::~CTestDlg()
{
}
void CTestDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
// DDX_Control(pDX, IDC_EDIT1, m_num1);
// DDX_Control(pDX, IDC_EDIT2, m_num2);
// DDX_Control(pDX, IDC_EDIT3, m_num3);
// DDX_Control(pDX, IDC_EDIT1, m_num1);
// DDX_Control(pDX, IDC_EDIT2, m_num2);
// DDX_Control(pDX, IDC_EDIT3, m_num3);
DDX_Text(pDX, IDC_EDIT1, m_num1);
DDX_Text(pDX, IDC_EDIT2, m_num2);
DDX_Text(pDX, IDC_EDIT3, m_num3);
DDX_Control(pDX, IDC_EDIT1, m_edit1);
DDX_Control(pDX, IDC_EDIT2, m_edit2);
DDX_Control(pDX, IDC_EDIT3, m_edit3);
}
BEGIN_MESSAGE_MAP(CTestDlg, CDialogEx)
ON_STN_CLICKED(IDC_NUMBER1, &CTestDlg::OnClickedNumber1)
//ON_BN_CLICKED(IDC_BUTTON1, &CTestDlg::OnBnClickedButton1)
ON_BN_CLICKED(IDC_ADD, &CTestDlg::OnBnClickedAdd)
// ON_EN_CHANGE(IDC_EDIT3, &CTestDlg::OnEnChangeEdit3)
END_MESSAGE_MAP()
// CTestDlg 消息处理程序
void CTestDlg::OnClickedNumber1()
{
// TODO: 在此添加控件通知处理程序代码
CString str;
if (GetDlgItem(IDC_NUMBER1)->GetWindowText(str), str == "Number1")
{
GetDlgItem(IDC_NUMBER1)->SetWindowText("数字1");
}
else
{
GetDlgItem(IDC_NUMBER1)->SetWindowText("Number1");
}
}
void CTestDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
}
void CTestDlg::OnBnClickedAdd()
{
// TODO: 在此添加控件通知处理程序代码
int num1, num2, num3;
char ch1[10],ch2[10],ch3[10];
GetDlgItemText(IDC_EDIT1, ch1, 10);
GetDlgItemText(IDC_EDIT2, ch2, 10);
num1 = atoi(ch1);
num2 = atoi(ch2);
num3 = num1 + num2;
_itoa_s(num3, ch3, 10);
SetDlgItemText(IDC_EDIT3,ch3);/*
------------------------------------------------------------------------------
SendDlgItemMessage(IDC_EDIT1, WM_GETTEXT, 10, (LPARAM)ch1);
SendDlgItemMessage(IDC_EDIT2, WM_GETTEXT, 10, (LPARAM)ch2);
num1 = atoi(ch1);
num2 = atoi(ch2);
num3 = num1 + num2;
_itoa_s(num3, ch3, 10);
SendDlgItemMessage(IDC_EDIT3, WM_SETTEXT, 0, (LPARAM)ch3);
------------------------------------------------------------------------------------------
GetDlgItem(IDC_EDIT1)->GetWindowText(ch1, 10);
GetDlgItem(IDC_EDIT2)->GetWindowText(ch2, 10);
num1 = atoi(ch1);
num2 = atoi(ch2);
num3 = num1 + num2;
itoa(num3, ch3, 10);
GetDlgItem(IDC_EDIT3)->SetWindowText(ch3);
UpdateData();
m_num3 = m_num1 + m_num2;
UpdateData(FALSE);
int num1, num2, num3;
char ch1[10], ch2[10], ch3[10];
m_edit1.GetWindowText(ch1,10);
m_edit2.GetWindowText(ch2,10);
num1 = atoi(ch1);
num2 = atoi(ch2);
num3 = num1 + num2;
_itoa_s(num3, ch3, 10);
m_edit3.SetWindowTextA(ch3);*/
//int num1, num2, num3;
//char ch1[10], ch2[10], ch3[10];
//::SendMessage(GetDlgItem(IDC_EDIT1)->m_hWnd, WM_GETTEXT, 10, (LPARAM)ch1);
//GetDlgItem(IDC_EDIT1)->SendMessage(WM_GETTEXT, 10, (LPARAM)ch1);
//::SendMessage(m_edit1.m_hWnd, WM_GETTEXT, 10, (LPARAM)ch1);
//m_edit1.SendMessage(WM_GETTEXT, 10, (LPARAM)ch1);
//m_edit2.SendMessage(WM_GETTEXT, 10, (LPARAM)ch2);
//num1 = atoi(ch1);
//num2 = atoi(ch2);
//num3 = num1 + num2;
//_itoa_s(num3, ch3, 10);
//m_edit3.SendMessage(WM_SETTEXT, 0, (LPARAM)ch3);
}
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1、在菜单项新增一个菜单,更改ID
2、新建一个对话框,设置ID,给对话框添加类
3、在View类中添加一个函数来创建窗口,并将ID加入,窗口一般为模态窗口
4、在窗口中增加部件,工具箱中寻找,同时可使用增加成员变量,空间变量等方式实现
注:
模态对话框用DoModal实现
非模态对话框用Create成员函数实现,但最后得调用showwindow显示
判断是否已经创建窗口可增加判断调用一个成员变量(静态变量)来判断,或者CWnd派生类中都自带一个m_hwnd句柄成员变量进行判断
静态文本框处理
GetDlgText()-------获取指定控件指针
GetDlgItem(IDC_NUMBER1)->GetWindowText(str)
atoi将字符串内容转化为整型
GetDlgItenText() 获取控件文本
GetDlgItemInt 获取控件文本,并返回整型
或者定义整型变量跟ID关联,直接相连,但是使用需使用UpdateData函数
对话框控件访问七种方式:
1、GetDlgItem()->Get(Set)WindowText();(获取控件指针,,,此方法最常用)
2、GetDlgItemText()/SetDlgItemText() 直接获取/设置对话框文本
3、GetDlgItemInt()/SetDlgItemInt() 获取和设置一个值
4、将控件和整型变量相关联
5、将控件和控制变量相关联
6、SendMessage()发消息,引用win32的AP函数,也可用CWnd成员函数调用
7、SendDlgItemMessage()直接给对话框子控件发送一个消息