VC++获取IDC_EDIT的7种方法

本文介绍了一种在Win32应用程序中实现编辑框内数值相加的方法,共列举了七种不同的实现方式,包括直接使用API获取字符串并转换为整数进行计算,利用成员变量和数据交换函数等。
//第一种方法
int number1, number2, number3;
char char1[10], char2[10], char3[10];
GetDlgItem(IDC_EDIT1)->GetWindowText(cahr1, 10);
GetDlgITem(IDC_EDIT2)->GetWindowText(char2, 10);

number1 = atoi(char1);
number2 = atoi(char2);
number3 = number1 +number2;

itoa(number3, char3, 10);
GetDlgItem(IDC_EDIT3)->SetWindowText(cahr3);

//第二种方法
char char1[10], char2[10], char3[10];
int number1, number2, number3;

GetDlgItemText(IDC_EDIT1, char1, 10);
GetDlgITemText(IDC_EDIT2, char2, 10);

number1 = atoi(char1);
number2 = atoi(char2);
number3 = number1 + number2;
itoa(number3, char3, 10);
SetDlgItemText(IDC_EDIT3, char3);

//第三种方法
int number1, number2, number3;
number1 = GetDlgItemInt(IDC_EDIT1);
number2 = GetDlgITemInt(IDC_EDIT2);
number3 = number1 + number2;

SetDlgItemInt(IDC_EDIT3, number3);

//第四种方法
*在ClassWizard中的Member中找到IDC_EDIT1和IDC_EDIT2的Control IDs双击IDC_EDIT1和IDC_EDIT2打开Add MemberVariable
添加MemberVariableName的新名字(m_number1)
CateGory:Value;
Variable Type: Int;
OK!
void CTest_3Dlg::OnButton1()
{
        UpdateData();
m_number3 = m_number1 + m_number2;
UpdateData(FALSE);

DoDateExChange;MSDN说明这个函数程序代码从来是不调用的,而是由我们通过CWnd类的另一个函数来调用的(UpdateData());来实现的。
}

//第五种方法
int number1, number2, number3;
char char1[10], char2[10], char3[10];

m_ctrlEDIT1.GetWindowText(char1, 10);
m_ctrlEDIT2.GetWindowText(char2, 10);
number1 = atoi(char1);
number2 = atoi(char2);
number3 = number1 + number2;
itoa(number3, char3, 10);
m_ctrlEDIT3.SetWindowText(char3);

//第六种方法
int num1, num 2, num3;
char ch1[10], ch2[10], ch3[10];
::SendMessage(GetDlgItem(IDC_EDIT1)->m_Hwnd),  WM_GETTEXT, 10, (LPARAW)ch1);
::SendMessage(m_ctrlEDIT2.m_Hwnd),  WM_GETTEXT, 10, (LPARAW)ch2);
num1 = atoi(ch1);
num2 = atoi(ch2);
num3 = num1  + num2;
m_ctrlEDIT3.SendMessage(WM_SETTETXT,  10, (LPARAW), ch3);

//第七种方法;
int num1, num2, num3;
char ch1[10], ch2[10], ch3[10];
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;
SendDlgItemMessage(IDC_EDIT3, WM_SETTEXT, 10, (LPARAM)ch3);






void CGxSingleCamDlg::DoDataExchange(CDataExchange* pDX)//用于将控件中的数据加载到变量中,或将变量的数据更新到控件中。 { CDialog::DoDataExchange(pDX); //DDX_Check(pDX, IDC_CHECK_SAVE_BMP, m_bCheckSaveBmp); DDX_Text(pDX, IDC_EDIT_SHUTTER, m_dEditShutterValue); DDX_Text(pDX, IDC_EDIT_GAIN, m_dEditGainValue); DDX_Text(pDX, IDC_EDIT_BALANCE_WHITE_SERISE, m_dEditBalanceRatioValue); DDX_Control(pDX, IDC_SHOW_PICTURE_STATIC, m_p1); DDX_Control(pDX, IDC_SHOW_PICTURE_STATIC2, m_p2); DDX_Control(pDX, IDC_SHOW_PICTURE_STATIC3, m_p3); DDX_Control(pDX, IDC_SHOW_PICTURE_STATIC4, m_p4); } BEGIN_MESSAGE_MAP(CGxSingleCamDlg, CDialog)//消息宏 ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() //}}AFX_MSG_MAP ON_BN_CLICKED(IDC_BTN_OPEN_DEVICE, &CGxSingleCamDlg::OnBnClickedBtnOpenDevice) ON_BN_CLICKED(IDC_BTN_CLOSE_DEVICE, &CGxSingleCamDlg::OnBnClickedBtnCloseDevice) ON_BN_CLICKED(IDC_BTN_START_SNAP, &CGxSingleCamDlg::OnBnClickedBtnStartSnap) ON_BN_CLICKED(IDC_BTN_STOP_SNAP, &CGxSingleCamDlg::OnBnClickedBtnStopSnap) //ON_CBN_SELCHANGE(IDC_COMBO_TRIGGER_MODE, &CGxSingleCamDlg::OnCbnSelchangeComboTriggerMode) //ON_CBN_SELCHANGE(IDC_COMBO_TRIGGER_SOURCE, &CGxSingleCamDlg::OnCbnSelchangeComboTriggerSource) //ON_CBN_SELCHANGE(IDC_COMBO_TRIGGER_ACTIVE, &CGxSingleCamDlg::OnCbnSelchangeComboTriggerActive) //ON_BN_CLICKED(IDC_CHECK_SAVE_BMP, &CGxSingleCamDlg::OnBnClickedCheckSaveBmp) ON_WM_CLOSE() ON_CBN_SELCHANGE(IDC_COMBO_BALANCE_WHITE_AUTO, &CGxSingleCamDlg::OnCbnSelchangeComboBalanceWhiteAuto) ON_CBN_SELCHANGE(IDC_COMBO_BALANCE_WHITE_SELECT, &CGxSingleCamDlg::OnCbnSelchangeComboBalanceWhiteSelect) //ON_BN_CLICKED(IDC_BTN_SOFTTRIGGER, &CGxSingleCamDlg::OnBnClickedBtnSofttrigger) ON_EN_KILLFOCUS(IDC_EDIT_GAIN, &CGxSingleCamDlg::OnEnKillfocusEditGain) ON_EN_KILLFOCUS(IDC_EDIT_BALANCE_WHITE_SERISE, &CGxSingleCamDlg::OnEnKillfocusEditBalanceWhiteSerise) ON_WM_TIMER() ON_EN_KILLFOCUS(IDC_EDIT_SHUTTER, &CGxSingleCamDlg::OnEnKillfocusEditShutter) ON_BN_CLICKED(IDC_BUTTON1, &CGxSingleCamDlg::OnBnClickedButton1) ON_BN_CLICKED(IDC_BUTTON2, &CGxSingleCamDlg::OnBnClickedButton2) ON_BN_CLICKED(IDC_BUTTON4, &CGxSingleCamDlg::OnBnClickedButton4) ON_BN_CLICKED(IDC_BUTTON8, &CGxSingleCamDlg::OnBnClickedButton8) END_MESSAGE_MAP() // CGxSingleCamDlg 消息处理程序 BOOL CGxSingleCamDlg::OnInitDialog() { CDialog::OnInitDialog(); // 设置窗口为可调整大小 //ModifyStyle(0, WS_THICKFRAME | WS_OVERLAPPEDWINDOW); // 使窗口可缩放 // 将“关于...”菜单项添加到系统菜单中。 // IDM_ABOUTBOX 必须在系统命令范围内。 ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { CString strAboutMenu; strAboutMenu.LoadString(IDS_ABOUTBOX); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动 // 执行此操作 SetIcon(m_hIcon, TRUE); // 设置大图标 SetIcon(m_hIcon, FALSE); // 设置小图标 // TODO: 在此添加额外的初始化代码 try { //初始化设备 IGXFactory::GetInstance().Init(); //将窗口指针指向picture控件 m_pWnd = GetDlgItem(IDC_SHOW_PICTURE_STATIC); m_pSampleCaptureEventHandle = new CSampleCaptureEventHandler(); //获取可执行程序的当前路径 char strFileName[MAX_PATH] = {0}; string strSavePath = ""; size_t nPos = 0; GetModuleFileName(NULL,(LPCH)strFileName,MAX_PATH); strSavePath = strFileName; nPos = strSavePath.find_last_of('\\'); m_strSavePath = strSavePath.substr(0,nPos); m_strSavePath = m_strSavePath +"\\GxSingleCamImages"; //设置定时器 SetTimer(0,1000,NULL); //更新界面 __UpdateUI(); } catch (CGalaxyException& e) { if (m_pSampleCaptureEventHandle != NULL) { delete m_pSampleCaptureEventHandle; m_pSampleCaptureEventHandle = NULL; } MessageBox(e.what()); return FALSE; } catch (std::exception& e) { if (m_pSampleCaptureEventHandle != NULL) { delete m_pSampleCaptureEventHandle; m_pSampleCaptureEventHandle = NULL; } MessageBox(e.what()); return FALSE; } // 初始化控件(可选,MFC 默认会绑定) m_Edit1.SubclassDlgItem(IDC_EDIT1, this); m_Edit2.SubclassDlgItem(IDC_EDIT2, this); m_Edit3.SubclassDlgItem(IDC_EDIT3, this); m_Edit4.SubclassDlgItem(IDC_EDIT4, this); m_Edit5.SubclassDlgItem(IDC_EDIT5, this); m_Edit6.SubclassDlgItem(IDC_EDIT6, this); m_Edit7.SubclassDlgItem(IDC_EDIT7, this); m_Edit8.SubclassDlgItem(IDC_EDIT8, this); m_Edit9.SubclassDlgItem(IDC_EDIT9, this); // 初始化 Modbus 连接 ctx = modbus_new_rtu("COM7", 115200, 'N', 8, 1); if (ctx == nullptr) { AfxMessageBox(_T("Unable to create the libmodbus context!")); return FALSE; } // 设置 Modbus 从站ID modbus_set_slave(ctx, 1); // 设置超时 modbus_set_response_timeout(ctx, 0, 200000); // 打开连接 if (modbus_connect(ctx) == -1) { AfxMessageBox(_T("Connection failed!")); modbus_free(ctx); return FALSE; } // 设置定时器,每 200 毫秒更新一次显示 SetTimer(1, 200, NULL); return TRUE; // 除非将焦点设置到控件,否则返回 TRUE }调试代码
最新发布
11-25
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值