MFC中访问控件的几种方式

 

// DlgAddTest.cpp : implementation file

//



#include "stdafx.h"

#include "Text.h"

#include "DlgAddTest.h"



#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif



/////////////////////////////////////////////////////////////////////////////

// CDlgAddTest dialog





CDlgAddTest::CDlgAddTest(CWnd* pParent /*=NULL*/)

	: CDialog(CDlgAddTest::IDD, pParent)

{

	//{{AFX_DATA_INIT(CDlgAddTest)

	m_iNum1 = 0;

	m_iNum2 = 0;

	m_iNum3 = 0;

	//}}AFX_DATA_INIT

}





void CDlgAddTest::DoDataExchange(CDataExchange* pDX)

{

	CDialog::DoDataExchange(pDX);

	//{{AFX_DATA_MAP(CDlgAddTest)

	DDX_Control(pDX, IDC_EDIT3, m_Edit3);

	DDX_Control(pDX, IDC_EDIT2, m_Edit2);

	DDX_Control(pDX, IDC_EDIT1, m_Edit1);

	DDX_Text(pDX, IDC_EDIT1, m_iNum1);

	DDX_Text(pDX, IDC_EDIT2, m_iNum2);

	DDX_Text(pDX, IDC_EDIT3, m_iNum3);

	//}}AFX_DATA_MAP

}





BEGIN_MESSAGE_MAP(CDlgAddTest, CDialog)

	//{{AFX_MSG_MAP(CDlgAddTest)

	ON_BN_CLICKED(IDC_BUTTON_ADD, OnButtonAdd)

	//}}AFX_MSG_MAP

END_MESSAGE_MAP()



/////////////////////////////////////////////////////////////////////////////

// CDlgAddTest message handlers



void CDlgAddTest::OnButtonAdd() 

{

	//Edit3 = Edit1+Edit2



	//法1:

	/*char ch1[10],ch2[10],ch3[10];

	int num1,num2,num3;

	this->GetDlgItem(IDC_EDIT1)->GetWindowText(ch1,10);

	this->GetDlgItem(IDC_EDIT2)->GetWindowText(ch2,10);

	num1=atoi(ch1);

	num2=atoi(ch2);

	num3=num1+num2;

	itoa(num3,ch3,10);

	this->GetDlgItem(IDC_EDIT3)->SetWindowText(ch3); */



	//法2:

	/*char ch1[10],ch2[10],ch3[10];

	int num1,num2,num3;

	GetDlgItemText(IDC_EDIT1,ch1,10);

	GetDlgItemText(IDC_EDIT2,ch2,10);

	num1=atoi(ch1);

	num2=atoi(ch2);

	num3=num1+num2;

	itoa(num3,ch3,10);

	SetDlgItemText(IDC_EDIT3,ch3);*/



	//法3:

	/*char ch1[10],ch2[10],ch3[10];

	int num1,num2,num3;

	num1 = GetDlgItemInt(IDC_EDIT1,NULL,TRUE);

	num2 = GetDlgItemInt(IDC_EDIT2,NULL,TRUE);

	num3=num1+num2;

	itoa(num3,ch3,10);

	SetDlgItemText(IDC_EDIT3,ch3);*/



	//法4: DDX1 (DoDataExchange)

	/*UpdateData();

	this->m_iNum3=this->m_iNum1 + this->m_iNum2;

	UpdateData(FALSE);*/



	//法5: DDX2

	/*char ch1[10],ch2[10],ch3[10];

	int num1,num2,num3;

	this->m_Edit1.GetWindowText(ch1,10);

	this->m_Edit2.GetWindowText(ch2,10);

	num1=atoi(ch1);

	num2=atoi(ch2);

	num3=num1+num2;

	itoa(num3,ch3,10);

	this->m_Edit3.SetWindowText(ch3);*/



	//法6:

	/*char ch1[10],ch2[10],ch3[10];

	int num1,num2,num3;

	//::SendMessage(this->GetDlgItem(IDC_EDIT1)->m_hWnd,WM_GETTEXT,10,(LPARAM)ch1);

	//::SendMessage(this->m_Edit1.m_hWnd,WM_GETTEXT,10,(LPARAM)ch1);

	//this->GetDlgItem(IDC_EDIT1)->SendMessage(WM_GETTEXT,10,(LPARAM)ch1);

	//this->m_Edit1.SendMessage(WM_GETTEXT,10,(LPARAM)ch1);

	this->SendDlgItemMessage(IDC_EDIT1,WM_GETTEXT,10,(LPARAM)ch1);

	this->m_Edit2.SendMessage(WM_GETTEXT,10,(LPARAM)ch2);

	num1=atoi(ch1);

	num2=atoi(ch2);

	num3=num1+num2;

	itoa(num3,ch3,10);

	this->m_Edit3.SendMessage(WM_SETTEXT,0,(LPARAM)(LPCTSTR)ch3);*/



//////////////////////////////////////////////////////////////////////////

	//选中部分值

	//this->m_Edit1.SendMessage(EM_SETSEL, (WPARAM) (INT)0,(LPARAM) (INT)-1);

	SendDlgItemMessage(IDC_EDIT1,EM_SETSEL, (WPARAM) (INT)0,(LPARAM) (INT)-1);

	this->m_Edit1.SetFocus();



}



你可能感兴趣的:(mfc)