MFC访问控件的方式

来源:互联网 发布:赤狐软件怎么样 编辑:程序博客网 时间:2024/05/23 18:49
//访问控件方式1CWnd::GetDlgItemCWnd* GetDlgItem ( int nID ) const; CWnd::GetWindowTextvoid GetWindowText( CString& rString ) const; CWnd::SetWindowTextvoid SetWindowText( LPCTSTR lpszString );//访问控件方式2CWnd::GetDlgItemTextint GetDlgItemText( int nID, LPTSTR lpStr, int nMaxCount ) const; int GetDlgItemText( int nID, CString& rString ) const; CWnd::SetDlgItemTextvoid SetDlgItemText( int nID, LPCTSTR lpszString );//访问控件方式3CWnd::GetDlgItemIntUINT GetDlgItemInt( int nID, BOOL* lpTrans = NULL, BOOL bSigned = TRUE ) const; CWnd::SetDlgItemIntvoid SetDlgItemInt( int nID, UINT nValue, BOOL bSigned = TRUE );//访问控件方式4/*关联成员变量*/CWnd::DoDataExchange  virtual void DoDataExchange( CDataExchange* pDX );CWnd::UpdateDataBOOL UpdateData( BOOL bSaveAndValidate = TRUE );//访问控件方式5/*关联控件变量*///访问控件方式6/*发送消息获取控件内容*/LRESULT SendMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam );//Win32 APICWnd::SendMessageLRESULT SendMessage( UINT message, WPARAM wParam = 0, LPARAM lParam = 0 );//需要ID编号获取指针,再通过指针获取控件句柄CWnd::SendDlgItemMessageLRESULT SendDlgItemMessage( int nID, UINT message, WPARAM wParam = 0, LPARAM lParam = 0 ); //需要ID编号即可


//获取控件内容经处理后输出//在对话框中添加3个编辑框,添加Button和响应函数//demo1 通过CWnd::GetDlgItemInt()和CWnd::SetDlgItemInt()的方式void CTestDialog::OnBtnAdd() {int n1, n2, n3;n1 = GetDlgItemInt(IDC_EDIT1);//从编辑框1获取数据n2 = GetDlgItemInt(IDC_EDIT2);//从编辑框2获取数据n3 = n1 + n2;SetDlgItemInt(IDC_EDIT3,n3);//输出到编辑框三}//demo2 通过控件关联变量的方式实现(自动校验数据类型,可以设定范围)//在ClassWizard中关联变量,添加消息响应函数void CTestDialog::OnBtnAdd() {UpdateData(TRUE);//调用DoDataExchange,从控件到变量m_num3 = m_num1 + m_num2;UpdateData(FALSE);//调用DoDataExchange,从变量到控件}//demo3 通过关联控件变量的方式实现//在ClassWizard中关联CEdit类型变量,添加消息响应函数void CTestDialog::OnBtnAdd() {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(num3,ch3,10);m_edit3.SetWindowText(ch3);}//demo4 发送消息获取控件内容void CTestDialog::OnBtnAdd() {int num1, num2, num3;char ch1[10], ch2[10], ch3[10];    /*Win32  API*///::SendMessage(GetDlgItem(IDC_NUMBER1)->m_hWnd,WM_GETTEXT,10,(LPARAM)ch1);//先获取指针再获取句柄//::SendMessage(m_edit1.m_hWnd,WM_GETTEXT,10,(LPARAM)ch1);//通过关联的控件变量获取句柄/*CWnd的成员函数*///GetDlgItem(IDC_NUMBER1)->SendMessage(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(num3,ch3,10);m_edit3.SendMessage(WM_SETTEXT,0,(LPARAM)ch3);}


原创粉丝点击