//
#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()直接給對話框子控件發送一個消息