1、 编辑框(Edit)
CEdit m_edname;
DDX_Control(pDX, IDC_EDIT_NAME, m_edname);
m_edname.SetWindowText("猪");
m_edname.GetWindowText(strName);
Cstring strName;
DDX_Text(pDX, IDC_EDIT_NAME, strName);
2、 复选框/下拉框(combo box)
//初始化
m_cbbGender.AddString(_T("男"));
m_cbbGender.AddString(_T("女"));
m_cbbGender.AddString(_T("其他"));
//获取值
CComboBox m_cbbGender;
m_cbbGender.GetWindowText(strGender);
int index= m_cbbGender.GetCurSel();
3、列表框(list box)
ClistBox m_lbInfo;
Cstring strInfo;
strInfo.Format(_T("%s,%s,现年%s岁,家住:%s,爱好%s%s%s"),
strName, strGender, strAge, strAddr, strBook, strMusic, strGame);
m_lbInfo.InsertString(-1, strInfo); //在尾部添加
m_lbInfo.AddString(strInfo); //添加位置不确定,好像有某种规律
4、单选按钮(radio box)
//初始化
((CButton*)GetDlgItem(IDC_RADIO_XA))->SetCheck(1);
//定义和获取值
CButton* pbtXA, *pbtBJ, *pbtSH;
pbtXA = (CButton*)GetDlgItem(IDC_RADIO_XA);
pbtBJ = (CButton*)GetDlgItem(IDC_RADIO_BJ);
pbtSH = (CButton*)GetDlgItem(IDC_RADIO_SH);
if(pbtXA->GetCheck() == 1)
{
pbtXA->GetWindowText(strAddr);
}
else if(pbtBJ->GetCheck() == 1)
{
pbtBJ->GetWindowText(strAddr);
}
else if(pbtSH->GetCheck() == 1)
{
pbtSH->GetWindowText(strAddr);
}
else
{
m_stTip.SetWindowText(_T("所选信息不完整,请重新选择!"));
}
5、多选框(check box)
CButton m_btMusic;
CButton m_btGame;
CButton m_btBook;
if(m_btBook.GetCheck() == 1)
{
m_btBook.GetWindowText(strBook);
}
if(m_btMusic.GetCheck() == 1)
{
m_btMusic.GetWindowText(strMusic);
}
if(m_btGame.GetCheck() == 1)
{
m_btGame.GetWindowText(strGame);
}
6、树控件(tree control)
CTreeCtrl m_tctree;
DDX_Control(pDX, IDC_TREE1, m_tctree);
HTREEITEM root=m_tctree.InsertItem(_T("系统设置"),0,1);
HTREEITEM subroot1=m_tctree.InsertItem(_T("语言"),2,2,root);
HTREEITEM subroot2=m_tctree.InsertItem(_T("蓝牙"),3,3,root);
HTREEITEM subroot3=m_tctree.InsertItem(_T("网络"),4,4,root);
m_tctree.InsertItem(_T("中文"),5,5,subroot1);
m_tctree.InsertItem(_T("english"),6,6,subroot1);
m_tctree.InsertItem(_T("开"),0,0,subroot2);
m_tctree.InsertItem(_T("关"),0,0,subroot2);
7、列表控件(list control)
CListCtrl m_clText;
DDX_Control(pDX, IDC_LIST1, m_clText);
m_clText.InsertColumn(0,_T("序号"),LVCFMT_LEFT,80);
m_clText.InsertColumn(1,_T("厂商"),LVCFMT_LEFT,80);
m_clText.InsertItem(0,_T("13"),0);
m_clText.InsertItem(0,_T("skyworth"),0);
8、滑块(slider contorl)
CSliderCtrl m_scslider;
m_scslider.SetRange(0,100); //范围
m_scslider.SetPos(37);//设置位置
int curpos=m_scslider.GetPos();//获取位置值,值为整数
CString slstr;
slstr.Format(_T("%d"),curpos);//转换为字符型
8、进度条(process control)
CProgressCtrl m_cprogress;
m_cprogress.SetRange(0,100);
m_cprogress.SetStep(1);
m_cprogress.StepIt();//走一步
1.1 函数说明
该函数中的代码是由ClassWizard自动加入的。DoDataExchange只有一个参数,即一个CDataExchange对象的指针pDX。在该函数中调用了DDX函数来完成数据交换,调用DDV函数来进行数据有效检查。
当程序需要交换数据时,不要直接调用DoDataExchange函数,而应该调用CWnd::UpdateData。UpdataData函数内部调用了DoDataExchange。该函数只有一个布尔型参数,它决定了数据传送的方向。调用UpdateData(TRUE)将数据从对话框的控件中传送到对应的数据成员中,调用UpdateData(FALSE)则将数据从数据成员中传送给对应的控件。
在缺省的CDialog::OnInitDialog中调用了UpdateData(FALSE),这样,在对话框创建时,数据成员的初值就会反映到相应的控件上。若用户是按了OK(确定)按钮退出对话框,则对话框认为输入有效,就会调用UpdataData(TRUE)将控件中的数据传给数据成员。
DoDataExchange(CDataExchange* pDX);
OnInitDialog(); //初始化只调用一次
OnSysCommand(UINT nID, LPARAM lParam);
OnPaint();
OnQueryDragIcon();
1.2图像列表(CImageList)图像列表控件(CImageList)是相同大小图像的一个集合
CimageList m_ilText;
milText.Create(IDB_BITMAP2,14,1,RGB(0,0,0));
m_tctree.SetImageList(&milText,TVSIL_NORMAL);
//TVSIL_NORMAL:Tree View SetImageList(TVSIL)
//LVSIL_NORMAL:List View SetImageList(LVSIL)
m_clText.InsertColumn(0,_T("序号"),LVCFMT_LEFT,80);
m_clText.InsertColumn(1,_T("厂商"),LVCFMT_LEFT,80);
m_clText.InsertItem(0,_T("13"),0);
m_clText.InsertItem(1,_T("14"),1);// InsertItem(第几项,内容,图)
m_clText.SetItemText(0,1,_T("skyworth"));// SetItemText(第几项,第几列,内容)
m_clText.SetItemText(1,1,_T("TCL"));
1.3类型的设置
DWORD dwstyle=GetWindowLong(m_clText.m_hWnd,GWL_STYLE);//获取
SetWindowLong(m_clText.m_hWnd,GWL_STYLE,dwstyle);//设置
1.4定时器
SetTimer(定时器窗口句柄,定时器ID,间隔时间,回调函数)
1.设置定时器
MFC程序中SetTimer被封装在CWnd类中,调用就不用指定窗口句柄
SetTimer(1,1000,NULL);
1:计时器的名称;
1000:时间间隔,单位是毫秒;
NULL:使用OnTimer函数。
2.杀死定时器
KillTimer(1);
例子:
UINT m_ptimer;
m_ptimer=SetTimer(1,50,NULL);
KillTimer(m_ptimer);
1.5提示
::AfxMessageBox(“输入有误”);