對話框操作

// TestDlg.cpp : 實現文件
//


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




發佈了10 篇原創文章 · 獲贊 7 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章