C++ MFC各控件代码练习例子
void CMy122Dlg::OnButton1open() { m_OPEN.EnableWindow(false ); //EnableWindow()方法可以使按钮失效 MessageBox("已打开"); m_CLOSE.EnableWindow(true ); }
void CComboboxDlg::Onmony() { UpdateData(TRUE); CString str,strmoy; strmoy.Format("%d",m_money); str="你确定要将"; str+=strmoy; str+="元打入对方账户?"; if (IDOK==MessageBox(str,"提示",MB_ICONQUESTION|MB_OKCANCEL)) { MessageBox("付款成功","提示",MB_ICONASTERISK); } }
控制显示的文本利用成员函数SetWindowText/GetWindowText 用于设置/得到当前显示的文本。 通过GetLimitText/SetLimitText 可以得到/设置在输入框中输入的字符数量。 输入框几种常用的消息映射宏:
ON_EN_CHANGE 输入框中文字更新后产生 ON_EN_ERRSPACE 输入框无法分配内存时产生
ON_EN_KILLFOCUS / ON_EN_SETFOCUS 在输入框失去/得到输入焦点时产生
在创建滚动条后需要调用void SetScrollRange( int nMinPos, int nMaxPos, BOOL bRedraw = TRUE )设置滚动范围, int GetScrollPos( )/int SetScrollPos( )用来得到和设置当前滚动条的位置。 void ShowScrollBar( BOOL bShow = TRUE );用来显示/隐藏滚动条。
BOOL EnableScrollBar( UINT nArrowFlags = ESB_ENABLE_BOTH )用来设置滚动条上箭头是否为允许状态。nArrowFlags 可取以下值:
ESB_ENABLE_BOTH 两个箭头都为允许状态 ES_DISABLE_LTUP 上/左箭头为禁止状态 MessageBox("这个是自定义的消息!!!" ,"自定义消息对话框!!!",MB_ICONINFORMATION); MB_ABORTRETRYIGNORE 显示终止重试或忽然按钮 MB_OK 显示确定按钮 MB_RETRYCANCEL 显示确定或取消按钮 MB_YESNO 显示重试或取消按钮 MB_YESNOCANCEL 显示是或否按钮 MB_ICONQUESTION 带问号图标 MB_ICONHAND 、MB_ICONSTOP 、MB_ICONERROR 三种都是带叉号图标 MB_ICONEXCLAMA TION 、MB_ICONW ARNING 两种都是带感叹号图标 MB_ICONASTERISK MB_ICONINFORMA TION 带信息号图标 AfxMessageBox()函数缺点就无法设置消息对话框的标,提示消息框的标题与工程名称相同, 优点:就是在动态链接库工程或其它工程中,可以直接用它来显示消息提示对话框。 MessageBox()函数必须用于一个窗口对象,没有窗口对象,就无法调用MessageBox()函数
ESB_DISABLE_BOTH 两个箭头都为禁止状态
SB_TOP/SB_BOTTOM 已滚动到顶/底部
SB_LINEUP/SB_LINEDOWN 向上/下滚动一行
SB_PAGEDOWN/SB_PAGEUP 向上/下滚动一页
SB_THUMBPOSITION/SB_THUMBTRACK 滚动条拖动到某一位置,参数nPos指明当前位置(参数nPos在其它的情况下是无效的)
SB_ENDSCROLL 滚动条拖动完成(用户松开鼠标)
注意:如果出现以上功能不好使的情况,可以关闭当前的工程,然后在工程目录下删除扩展名为“.ncb”的文件,然后重新打开工程,Visual C++会重建一个“.ncb”文件,此时完全取词功能将恢复正常。
void C_bj::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default
void C_bj::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
SCROLLINFO scrollinfo;
SetScrollRange (SB_VERT, 0, 850, TRUE);//这个就是设置你的滚动条的范围
GetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);
switch (nSBCode)
{
case SB_BOTTOM:
ScrollWindow(0,(scrollinfo.nPos-scrollinfo.nMax));
scrollinfo.nPos = scrollinfo.nMax;
SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);
break;
case SB_TOP:
ScrollWindow(0,(scrollinfo.nPos-scrollinfo.nMin));
scrollinfo.nPos = scrollinfo.nMin;
SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);
break;
case SB_LINEUP:
scrollinfo.nPos -= 20;
if (scrollinfo.nPos { scrollinfo.nPos = scrollinfo.nMin; break; } SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL); ScrollWindow(0,20); break; case SB_LINEDOWN: scrollinfo.nPos += 20; if (scrollinfo.nPos>scrollinfo.nMax) { scrollinfo.nPos = scrollinfo.nMax; break; } ScrollWindow(0,-20); break; case SB_PAGEUP: scrollinfo.nPos -= 20; if (scrollinfo.nPos { scrollinfo.nPos = scrollinfo.nMin; break; } SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL); ScrollWindow(0,20); break; case SB_PAGEDOWN: scrollinfo.nPos += 20; if (scrollinfo.nPos>scrollinfo.nMax) { scrollinfo.nPos = scrollinfo.nMax; break; } SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL); ScrollWindow(0,-20); break; case SB_ENDSCROLL: // MessageBox("SB_ENDSCROLL"); break; case SB_THUMBPOSITION: // ScrollWindow(0,(scrollinfo.nPos-nPos)); // scrollinfo.nPos = nPos; // SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL); break; case SB_THUMBTRACK: ScrollWindow(0,(scrollinfo.nPos-nPos)); scrollinfo.nPos = nPos; SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL); break; } CDialog::OnVScroll(nSBCode, nPos, pScrollBar); } void CTestScrollDlg::OnSize(UINT nType, int cx, int cy) { SCROLLINFO scrollinfo; SetScrollRange (SB_VERT, 0, 600, TRUE);//这个就是设置你的滚动条的范围 GetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL); scrollinfo.nPage=400;//页的大小, SetScrollInfo(SB_VERT,&scrollinfo,SIF_PAGE); CDialog::OnSize(nType, cx, cy); // TODO: Add your message handler code here } void CFirstProjectDlg::OnOK() { if (!IsWindow(m_Book.m_hWnd)) //是否关联了对话框 { m_Book.Create(IDD_BOOKDLG, NULL); //创建对话框 } m_Book.ShowWindow(SW_SHOW); //显示对话框 } void CMy122Dlg::OnButton2close() { m_CLOSE.EnableWindow(false); MessageBox("已关闭"); m_OPEN.EnableWindow(true); } void CFirstProjectDlg::OnOK() { if (!IsWindow(m_Book.m_hWnd)) //是否关联了对话框 { m_Book.Create(IDD_BOOKDLG, NULL); //创建对话框 } m_Book.ShowWindow(SW_SHOW); //显示对话框 } 1.自定义一个消息;------> 2.申明一个涵数----------------> 3.把函数设成消息响应函数---------------> 4.发送消息处理函数#define MESSAGE1 WM_USER+1 //windows定义好从下一个开始如有多个+1或+2 前面都是大写。 void CTtDlg::f1() //右键Add Member Function添加成员函数void f1 { MessageBox("这个是自定义的消息!!!" ,"自定义消息对话框!!!"); } BEGIN_MESSAGE_MAP(CTtDlg, CDialog) (//ON_WM_SYSCOMMAND() //<--------------------3.捕获用户所触发的事件)ON_MESSAGE(MESSGAE1,f1) //3.把函数设成消息响应函数MESSGAE1用f1去响应 void CTtDlg::OnButton3() //用按钮来触发 { this->PostMessage(MESSAGE1); //处理消息 } 通用打开保存对话框 void CFileDialogdlgDlg::OnButton1() //第一种方式打开用编辑框显示 { CFileDialog dlg(true ); //true 为真时打开,false 为假时为保存 if (dlg.DoModal()==IDOK) { m_path=dlg.GetPathName(); UpdateData(false ); } } void CFileDialogdlgDlg::OnButton2() //{ CFileDialog dlg(true ); if (dlg.DoModal()==IDOK) { m_spath=dlg.GetPathName(); m_filename=dlg.GetFileName(); UpdateData(false ); } } CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONL Y|OFN_OVERWRITEPROMPT, "All Files(*.TXT)|*.TXT||",AfxGetMainWnd()); //构造文件打开对话框//第三种方式打开用文本显示 CString strPath,strText=""; //声明变量 if (dlg.DoModal() == IDOK) //判断是否按下"打开"按钮 { /*m_path=dlg.GetPathName(); m_pathname=dlg.GetFileName(); UpdateData(false);*/ strPath = dlg.GetPathName(); //获得文件路径 m_controtfilename.SetWindowText(strpath); //显示文件路径SetWindowText 用于设置窗口文本。 CFile file(strPath,CFile::modeRead); //打开文件 char read[10000]; //声明字符数组 file.Read(read,10000); //读取文件内容 for (int i=0;i %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% void CComboboxDlg::OnButton10() { CColorDialog coldlg;//实例化一个颜色对话框类,要使用通用对话框类必须包含头文件#include { // //获取当前用户所选择的颜色信息,COLORREF是一个32位值,用于指定一个RBG颜色COLORREF cl=coldlg.GetColor(); m_nRV ALUE=GetRValue(cl); //GetGValue(cl)是从COLORREF中提取RGB颜色红色的数值 m_nGV ALUE=GetGValue(cl); m_nBV ALUE=GetBValue(cl); UpdateData(FALSE); } } &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& void CColorDialogDlg::OnColor() { CColorDialog dlg(m_Color);//创建颜色对话框 if (dlg.DoModal()==IDOK) //判断是否按下"确定"按钮 { m_Color = dlg.GetColor(); //获取用户选择的颜色 Invalidate(); //重绘窗口 } } HBRUSH CColorDialogDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); if(nCtlColor == CTLCOLOR_STA TIC) //判断是否为静态文本控件 pDC->SetBkColor(m_Color); //设置文本的背景颜色 return hbr; } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%保存 CButton * btn =(CButton *)GetDlgItem(IDC_BUTTON1); //定义指针获取要加载图标的按钮ID btn->ModifyStyle(0,BS_ICON); //修改样式对象名。函数成员名(赋值) btn->SetIcon(AfxGetApp()->LoadIcon(IDI_ICON3)); //加载图标 第二种方法 m_btnfind1.SetIcon(LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON1)));加载图标 m_Imagelist.add(LoadIcon(AfxGetResourceHandle(),MAKINTRERESOURCE(IDI_ICON1)) void CComboboxDlg::OnButton7() ///加载打开图片 { CFileDialog fldlg(true,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"位图 (*.bmp)||"); if (fldlg.DoModal()==IDOK) { CString BMPname; BMPname=fldlg.GetPathName(); HBITMAP hOldBmp=m_Bmp.SetBitmap((HBITMAP)LoadImage( NULL,BMPname,IMAGE_BITMAP,0,0,LR_LOADFROMFILE)); //中间0,0代表要设定图片大小 } } HBRUSH CSIP::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); CBitmap m_BKGround; //加载背景图片 m_BKGround.LoadBitmap(IDB_BITMAP7); if (nCtlColor==CTLCOLOR_DLG) { CBrush m_Brush(&m_BKGround); CRect rect; GetClientRect(rect); pDC->SelectObject(&m_Brush); //m_Brush前面不加引用会引起系统漰溃;//选中画刷 pDC->FillRect(rect,&m_Brush); //填空客户区域 return m_Brush; } if (nCtlColor==CTLCOLOR_STATIC) //STATIC { //pDC->SetBkMode(TRANSPARENT); //pDC->SetBkMode(RGB(29,118,60)); TRANSPARENT //设置背景透明 pDC->SetBkColor(RGB(20,255,85)); //CLR_NONE pDC->SetTextColor(RGB(255,80,0)); //255,80,155 设置文本颜色 } return hbr; 选窗口ID对话框,再选WM_CTLCOLOR在编辑模式写以上代码,可更改静态文本的颜色 } extern CString struu; CBitmap bitmap; CStatic *pwnd = (CStatic*)GetDlgItem(IDC_STATIC1); CString stra,strb; strb="CALC\\res\\jishuziliao\\标准分类\\D2000\\AK材料.bmp"; stra=struu; stra+=strb; pwnd->SetBitmap((HBITMAP)::LoadImage(NULL,_T(stra),IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION | LR_DEFAULTSIZE | LR_LOADFROMFILE)); //********************************************************************************************************* ***************** CString stra,strb; strb="CALC\\res\\buttonbmp\\tongyontubiao\\计算器.bmp"; stra=struu; stra+=strb; m_jisuan.SetBitmaps((HBITMAP)LoadImage(AfxGetInstanceHandle(),_T(stra),IMAGE_BITMAP,0,0,LR_LOADFROMFILE| LR_CREATEDIBSECTION), RGB(0, 255, 0)); CString stra1,strb1; strb1="CALC\\res\\buttonbmp\\tongyontubiao\\归零.bmp"; stra1=struu; stra1+=strb1; m_guiling.SetBitmaps((HBITMAP)LoadImage(AfxGetInstanceHandle(),_T(stra1),IMAGE_BITMAP,0,0,LR_LOADFROMFI LE|LR_CREATEDIBSECTION), RGB(0, 255, 0)); CString stra2,strb2; strb2="CALC\\res\\buttonbmp\\pinmiantuxing\\gongshitubiao\\yuanzhuitigs1.bmp"; stra2=struu; stra2+=strb2; m_gongshi.SetBitmaps((HBITMAP)LoadImage(AfxGetInstanceHandle(),_T(stra2),IMAGE_BITMAP,0,0,LR_LOADFROMFI LE|LR_CREATEDIBSECTION), RGB(0, 255, 0)); CString stra3,strb3; strb3="CALC\\res\\buttonbmp\\pinmiantuxing\\gongshitubiao\\yuanzhuitigs1.bmp"; stra3=struu; stra3+=strb3; m_gs3.SetBitmaps((HBITMAP)LoadImage(AfxGetInstanceHandle(),_T(stra3),IMAGE_BITMAP,0,0,LR_LOADFROMFILE| LR_CREATEDIBSECTION), RGB(0, 255, 0)); //********************************************************************************************************* ***************** CString stra,strb; strb="CALC\\res\\chuanpintuxing\\bwg.bmp"; stra=struu; stra+=strb; HBITMAP hbmp = ((HBITMAP)::LoadImage(NULL,_T(stra),IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION | LR_DEFAULTSIZE | LR_LOADFROMFILE)); void CFileDialogdlgDlg::OnButton4() { CFileDialog dlg(FALSE,NULL,NULL,OFN_HIDEREADONL Y|OFN_OVERWRITEPROMPT, "All Files(*.TXT)|*.TXT||",AfxGetMainWnd()); //构造文件另存为对话框 CString strpath,strtext=""; //声明变量 char write[10000]; //声明字符数组 if (dlg.DoModal() ==IDOK) //判断是否按下"保存"按钮 { strpath=dlg.GetPathName(); //获得文件保存路径 if (strpath.Right(4)!=".TXT") //判断文件扩展名 { strpath +=".TXT"; //设置文件扩展名 } m_controlspath.SetWindowText(strpath); //显示文件路径 CFile file(_T(strpath),CFile::modeCreate|CFile::modeReadWrite); //创建文件 m_controleditfile.GetWindowText(strtext); //获得编辑框中内容 strcpy(write,strtext); //将字符串拷贝到字符数组中sttcpy(a,b)是将字符数组b复制到a字符数组中。 file.Write(write,strtext.GetLength()); //向文件中写入数据 file.Close(); //关闭文件 } } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% void CComboboxDlg::OnButton12() { CFontDialog dlgfon; if (dlgfon.DoModal()==IDOK) { LOGFONT lfg; //用来保存当前字体信息的结构体不包括颜色,所以字体颜色为黑色 dlgfon.GetCurrentFont(&lfg); //把当前字体信息存入lfg中 CFont cft; //实例化一个字体类,因为设置字体时只能通过CFont类传递cft.CreateFontIndirect(&lfg); //将lfg中的字体信息导入cft中 GetDlgItem(IDC_STfont)->SetFont(&cft,TRUE); //得到静态文本框,调用CWND方法设置其字体,TRUE代表重绘} } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% void CMy122Dlg::OnOK() { CDialog::OnOK(); } void CMy122Dlg::OnCancel() { CDialog::OnCancel(); } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% void CDylDlg::OnButton3() { this->SetWindowText("图书管理系统"); //设置对话框Caption标题属性名字 } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% void CYuDlg::OnButton1() //方法一用值 { UpdateData(true); //把控件值赋给关联变量 CString str; str += "用户名为:"; if( m_T1=="杨慧") //m_T1为文本框成员变量名,值类型为CString字符串按CTRL+W { MessageBox("用户名正确"); } else { MessageBox("用户名不对,请重输"); } str += "密码为:"; str += m_T2; MessageBox(str); //把关联变量值连接到str里 } void CYuDlg::OnButton1() //方法二用控件无UpdateData(true);因为是控件不是值 { CString str,edc1,edc2; m_ed1c1.GetWindowText(edc1); //m_ed1c1为文本框成员变量名,控件类型为CEDIT按CTRL+W m_ed2c2.GetWindowText(edc2); str += "用户名为:"; if( edc1=="杨慧") { str +=edc1; MessageBox("用户名正确"); //MessageBox是消息框AfxMessageBox带有一个感叹号的警告消息框 } else { AfxMessageBox("用户名不对,请重输"); } str += "密码为:"; if (edc2=="123456") { str += edc2; MessageBox("密码正确"); } else { AfxMessageBox("密码不对,请重输"); //MessageBox是消息框AfxMessageBox带有一个感叹号的警告消息框} MessageBox(str); } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 静态文本 HBRUSH CComboboxDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); if (nCtlColor==CTLCOLOR_STATIC) { pDC->SetTextColor(RGB(255,100,255)); } return hbr; } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Cbtton按钮 CButton * btn =(CButton *)GetDlgItem(IDC_BUTTON1); //定义指针获取要加载图标的按钮ID btn->ModifyStyle(0,BS_ICON); //修改样式对象名。函数成员名(赋值) btn->SetIcon(AfxGetApp()->LoadIcon(IDI_ICON3)); //加载图标 第二种方法 m_btnfind1.SetIcon(LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON1)));加载图标 m_Imagelist.add(LoadIcon(AfxGetResourceHandle(),MAKINTRERESOURCE(IDI_ICON1))),void CShowGifDlg::OnBtLoad() { CFileDialog flDlg(TRUE, "", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "GIF动画|*.gif||"); //定义文件打开对话框 if (flDlg.DoModal()==IDOK) { CString szGif = flDlg.GetPathName(); //获取文件名称 m_GifName.SetWindowText(szGif); //在编辑框中显示文件名称 m_Gif.LoadImage(szGif); //在OCX控件中显示GIF动画 } CXingqi1Dlg::CXingqi1Dlg(CWnd* pParent /*=NULL*/) : CDialog(CXingqi1Dlg::IDD, pParent) { //m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); m_hIcon = AfxGetApp()->LoadIcon(IDI_ICON3); //4)删除原图标资源IDR_MAINFRAME,将新的图标资源ID修改为IDR_MAINFRAME。此ID是更改系统窗口图标ICON 加载图标需要在初始化中定义和设置 背景图片的加载,用图片控件拖动,在插入一张BMP图片,在设置位图选取这个加载的图片。 选窗口ID对话框,再选WM_CTLCOLOR在编辑模式写以上代码,可更改静态文本的颜色 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 单选按钮 void CTtDlg::OnButton1() { UpdateData(true); CString str = "你选择的职业是:"; //初始值 switch(m_RD1) //m_RD1是单选按钮成员变量名,值类型int按CTRL+W { case 0: str +="老师"; break; case 1: str +="工程师"; break; case 2: str +="设计师"; break; default:str +="您还没有选择您的职业"; break; } MessageBox(str); } void CJisuanqiDlg::OnButton1() { UpdateData(true); switch(m_rad) { case 0 : UpdateData(true); m_ed3 =m_ed1 + m_ed2; UpdateData(false); break; case 1: UpdateData(true); m_ed3 =m_ed1 - m_ed2; UpdateData(false); break; case 2: UpdateData(true); m_ed3 =m_ed1 * m_ed2; UpdateData(false); break; case 3: UpdateData(true); m_ed3 =m_ed1 / m_ed2; UpdateData(false); break; break; } void CJisuanqiDlg::OnRadio1() { m_rad = 1; } void CJisuanqiDlg::OnRadio2() { m_rad = 2; } void CJisuanqiDlg::OnRadio3() { m_rad = 3; } void CJisuanqiDlg::OnRadio4() { m_rad = 4; } if (m_rad ==1) { UpdateData(true); m_ed3 =m_ed1 + m_ed2; UpdateData(false); } if (m_rad ==2) { UpdateData(true); m_ed3 =m_ed1 - m_ed2; UpdateData(false); } if (m_rad ==3) { UpdateData(true); m_ed3 =m_ed1 * m_ed2; UpdateData(false); } if (m_rad ==4) { UpdateData(true); m_ed3 =m_ed1 / m_ed2; UpdateData(false); } void CGetRadioDlg::OnButtonok() { CString str; CButton* Radiobutton = (CButton*)GetDlgItem(IDC_RADIO1 + m_Radio - 1); //计算选中的文本Radiobutton->GetWindowText(str); //获得按钮的文本 MessageBox(str); //显示按钮的文本 } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 复选框 void CTtDlg::OnButton2() { UpdateData(true); CString str = "你喜欢的菜是:"; //初始值 if (m_Clb1) //m_Clb1是复选按钮成员变量名,值类型BOOL按CTRL+W { str +="萝卜"; } if (m_Cbc2) { str += "白菜"; } if (m_Cbc3) { str += "菠菜"; } if (!m_Clb1 && !m_Cbc2 && !m_Cbc3) { str = "你是个很挑的人"; //不要用+=用了会带上初始值字符"你喜欢的菜是:"你是个很挑的人} MessageBox(str); } void CCountCheckDlg::OnButrefer() { CString ID,Name; //声明字符串变量保存编辑框文本 GetDlgItem(IDC_EDIT1)->GetWindowText(ID); //获得学号 GetDlgItem(IDC_EDIT2)->GetWindowText(Name); //获得姓名 CString str,text; //声明字符串变 str = "学号:" + ID + "姓名:" + Name + "\r\n"; //设置字符串 str += "必修科目:语文、数学\r\n选修科目:"; //设置字符串 for(int i=0;i<6;i++) { CButton* but = (CButton*)GetDlgItem(IDC_CHECK3+i); //设置指向复选框的指针 if(but->GetCheck()==1) { but->GetWindowText(text); str += text + "、"; } str = str.Left(str.GetLength()-2); //去掉末尾字符串的顿号 MessageBox(str); } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 列表框 void CTtDlg::Onbtn3() { UpdateData(true); m_LSTAD.AddString(m_ED); //将文本框中字符串添加到列表框控件类型Clisbox方法很多如添加删除插入等m_ED =" "; //清空文本框 UpdateData(false); GetDlgItem(IDC_EDIT1)->SetFocus(); //设置文本框为焦点,即把光标置于文本框 } void CTtDlg::Onbtn4() { int index; //定义索引 index=m_LSTAD.GetCurSel(); //选中列表框项目索引 m_LSTAD.DeleteString(index); //删除列表框索引指向的元素字符串 } void CTtDlg::OnSelchangeList1() { int index; DeleteString方法从列表框中删除一个字符串。 GetCurSel方法返回选中字符串的索引。 GetText(index,str)方法从列表框中获取一个字符串复制到指定的缓冲区。 AddString方法用于向列表框中添加字符串。 GetDlgItem方法根据指定的窗口ID返回一个窗口指针。 SetFocus方法使窗口获得焦点。 index = m_LSTAD.GetCurSel(); m_LSTAD.GetText(index,str); //得到索引所指向元素的字符串信息 res += str; MessageBox(res); } void CCMyListDlg::OnButton1() { CListBox* listbox2 = (CListBox*)GetDlgItem(IDC_LIST2); listbox2->SelectString(0,"英语"); } void CCMyListDlg::OnButton2() { CButton* button = (CButton*)GetDlgItem(IDC_BUTTON2); CListBox* listbox3 = (CListBox*)GetDlgItem(IDC_LIST3); CString str; int index = listbox3->GetCurSel(); if (index >=0) { listbox3->GetText(index,str); button->SetWindowText(str); } } void CCMyListDlg::OnButton3() { CListBox* listbox4 = (CListBox*)GetDlgItem(IDC_LIST4); listbox4->Dir(DDL_DIRECTORY|DDL_SYSTEM,"c:\\*.*"); } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 组合框 void CTtDlg::Onbtn5() { UpdateData(TRUE); if (m_stradd ==" ") { AfxMessageBox("请输入地址!"); GetDlgItem(IDC_COMBO1)->SetFocus(); //设置文本框为焦点,即把光标置于文本框 return; } m_ed2 ="欢迎浏览:"; // m_ctradd控件类型Ccombobox m_ed2 += m_stradd; //m_stradd是组合框成员变量名,值类型Cstring按CTRL+W int index=m_ctradd.FindStringExact(-1,m_stradd); //搜索下拉列表找到m_cm0的完全匹配并返回索引值 if (index==CB_ERR) // 同等于(index== -1) 负1 m_ctradd.InsertString(0,m_stradd); // m_ctradd.AddString(0,m_stradd); } else { m_ctradd.DeleteString(index); m_ctradd.InsertString(0,m_stradd); // m_ctradd.AddString(0,m_stradd); } m_stradd=" "; //操作完成后将组合框中编辑框清空 UpdateData(FALSE); } Array void CTtDlg::OnSelendokCombo1() { //MessageBox("你选中了"); int index; index=m_ctradd.GetCurSel(); m_ctradd.DeleteString(index); m_ctradd.InsertString(0,m_stradd); m_ed2="欢迎再次浏览"; m_ed2+=m_stradd; //得到所选元素项的索引颠值,将所选元素项的文本信息赋给m_stradd,删除此元素,UpdateData(false); //重新插入到第1行 } void CCMyComDlg::OnButton1() { CComboBox* combobox1 = (CComboBox*)GetDlgItem(IDC_COMBO1); combobox1->AddString("男"); combobox1->AddString("女"); } void CCMyComDlg::OnButton2() { CComboBox* combobox2 = (CComboBox*)GetDlgItem(IDC_COMBO2); combobox2->ResetContent(); } void CCMyComDlg::OnButton3() { CComboBox* combobox3 = (CComboBox*)GetDlgItem(IDC_COMBO3); CString text; if(combobox3->GetCurSel()==-1) { MessageBox("请选择列表中字符串","提示"); return; combobox3->GetLBText(combobox3->GetCurSel(),text); MessageBox(text,"提示"); } void CCMyComDlg::OnButton4() { CComboBox* combobox4 = (CComboBox*)GetDlgItem(IDC_COMBO4); combobox4->Dir(DDL_DRIVES|DDL_EXCLUSIVE,"c:\*.*"); } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 列表视图 BOOL CTtDlg::OnInitDialog() //设置列表视图先初始化//显示对话框之前初始化工作,如设置图标,弹出菜单等 { // LVS_EX_FULLROWSELECT 可选择一行,LVS_EX_FLATSB扁平风格显示滚动条 // LVS_EX_HEADERDRAGROP允许整列拖动,LVS_EX_ONCECLICKACTIV ATE单击选中项m_listCtrl.SetExtendedStyle(m_listCtrl.GetExtendedStyle() | LVS_EX_GRIDLINES); // 用'或'运算符为控件添加额外网格型属性 m_listCtrl.InsertColumn(0, "编号", LVCFMT_LEFT, 70); // 插入一列索引号为0,列名为编号,左对齐70像素,下同m_listCtrl.InsertColumn(1, "姓名", LVCFMT_RIGHT, 80); //LVCFMT_RIGHT右对齐//80代表长度,可手动调节m_listCtrl.InsertColumn(2, "职位",LVCFMT_CENTER, 100); //LVCFMT_CENTER居中对齐 }