MFC几个控件的使用

来源:互联网 发布:英国二战 知乎 编辑:程序博客网 时间:2024/04/30 04:37

使用Pushbutton按钮

1. GetDlgItem()函数得到一个指向CWnd对象的指针,该指针可以传递给相应的类,用来获取或设置控件的属性。使用方法是将要获取指针的控件的ID传递给它,GetDlgItem()即可返回一个指向代表该控件的CWnd对象的指针。
2. 设置按钮的可见与不可见:
BOOL bVisible=GetDlgItem(IDC_BUTTON1)->IsWindowVisible;//获取按钮的是否可见状态
GetDlgItem(IDC_BUTTON1)->ShowWindow(SW_SHOW)//设置为可见
GetDlgItem(IDC_BUTTON1)->ShowWindow(SW_HIDE)//设置为不可见
设置按钮的标题:GetDlgItem(IDC_BUTTON1)->SetWindowText("show")//设置按钮的标题为“show”
3. 按钮的使能与禁止:
BOOL bState=GetDlgItem(IDC_BUTTON1)->IsWindowEnable();
//获取按钮的使能与禁止状态
GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE);//
GetDlgItem(IDC_BUTTON1)->EnableWindow(FLASE);//
也可用用ClassWizard的Member Variables为按钮定义变量,如:m_Button1;然后用
m_Button1.EnableWindow(true); //使按钮处于允许状态
m_Button1.EnableWindow(false); //使按钮被禁止,并变灰显示
4.设置对话框标题
CString strCaption=”你好!”;
SetWindowText(strCaption);


使用单选按钮
1.对单选按钮进行分组:
多个单选按钮被编为一组是通过使用Group属性实现的。在一个单选按钮的属性中选中Group项,它会被自动看作组框中的第一个控件,接下来的每一个控件只要不选择Group项,它都会被认为是同一个组框中的控件。下一次给单选按钮选中Group项时,它会被认为是另一个组框中的第一个控件。
每组的第一个单选按钮设置属性:Group,Tabstop,Auto;其余按钮设置属性Tabstop,Auto。
如:
Ridio1、Ridio2、Ridio3为一组,Ridio4、Ridio5为一组
 
设定Ridio1属性:Group,Tabstop,Auto
设定Ridio2属性:Tabstop,Auto
设定Ridio3属性:Tabstop,Auto
 
设定Ridio4属性:Group,Tabstop,Auto
设定Ridio5属性:Tabstop,Auto
 
2.获取选中的单选按钮:
首先为单选按钮组映射一个变量,实际上给单选按钮组中的第一个单选按钮(选中Group属性的单选按钮)映射变量。
void CCityBreakDlg::OnOK()
{
 
       CString strMessage;
       CString strHotel;
       CString strDest;
      
       //transfer data from contrals to the variables将控件的值传给变量
       UpdateData();
       //UpdateData()从对话框的控件中得到数据,并且更新与他们相联系的变量
      
       //retrieve(重新得到) the caption of each selected radio button
      
       GetDlgItem(IDC_LUXURY+m_nHotel)->GetWindowText(strHotel);
       //得到饭店类型组中被选中的单选按钮的标题
      
       GetDlgItem(IDC_LONDON+m_nDestination)->GetWindowText(strDest);
       //得到目的组中被选中的单选按钮的标题
      
       //format and display the message
      
       strMessage="bon vayage to "+ strHotel+" Hotel in "+strDest;
              //合并选中按钮的文字以得到要显示的信息
       MessageBox(strMessage);
      
       CDialog::OnOK();
}
3.用ClassWizard生成各单选按钮的单击消息函数,并加入内容:
 
void CWEditView::OnRadio1()
{
    m_Ridio1 = 0;    //第一个单选按钮被选中
}
void CWEditView::OnRadio2()
{
    m_Ridio1 = 1;    //第二个单选按钮被选中
}
void CWEditView::OnRadio3()
{
    m_Ridio1 = 2;    //第三个单选按钮被选中
}
void CWEditView::OnRadio4()
{
    m_Ridio4 = 0;    //第四个单选按钮被选中
}
void CWEditView::OnRadio5()
{
    m_Ridio4 = 1;    //第五个单选按钮被选中
}
 
设置默认按钮:
在定义控件变量时,ClassWizard在构造函数中会把变量初值设为-1,只需把它改为其它值即可。
如:
//{{AFX_DATA_INIT(CWEditView)
m_Ridio1 = 0;    //初始时第一个单选按钮被选中
m_Ridio4 = 0;    //初始时第四个单选按钮被选中
//}}AFX_DATA_INIT


使用复选框
1.首先为IDC_CHECK1复选框添加一个BN-LCICKED消息处理函数。
使用CButton类的成员函数GetCheck()函数可以获取复选框的状态,使用SetCheck()函数设置复选框的状态。示例如下:
void CCityBreakDlg::OnChampagne()
{
       CButton *pDance=(CButton*)GetDlgItem(IDC_DANCE);
       //得到得到指向idc_dance复选框的CButton指针
 
       CButton *pChamp=(CButton*)GetDlgItem(IDC_CHAMPAGNE);
       //得到得到指向idc_champagne复选框的CButton指针
      
       //如果champagne复选框被选中,dance复选框也要被选中
       if (pChamp->GetCheck())
       {
              pDance->SetCheck(1);
       }
}
使用文本控件
1.获取和设置编辑框内容
有两种方法:
方法一:使用指针
CEdit* pEdit1=(CEdit*)GetDlgItem(IDC_EDIT1);     //为编辑控件指定指针
CString strText;
pEdit1->GetWindowText(strText);
//得到编辑控件的内容,并把它赋给一个字符串变量
同样,给编辑框赋值:
GetDlgItem(IDC_EDIT1)->SetWindowText("你要赋的值");  
方法二:使用控件变量   
在ClassWizrd中关联一个变量m_Edit,
CEdit   m_Edit;  
m_Edit.SetWindowText("你要赋的值");  

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/microchuan/archive/2007/04/25/1584617.aspx