当前位置:首页 > 专题范文 > 公文范文 >

vc及MFC部分控件及功能实现总结(范例推荐)

时间:2022-10-24 12:15:02 浏览量:

下面是小编为大家整理的vc及MFC部分控件及功能实现总结(范例推荐),供大家参考。

vc及MFC部分控件及功能实现总结(范例推荐)

 

 目录

 1、 表格控件的使用 CListCtrl ............................................................... 1 2、CString 转 Char 数组和指针、Int 等数据类型 ................................................ 1 3、消息窗口的使用 MessageBox()AfxMessageBox()

 .......................................... 2 4 、编辑框 CEdit 使用 ....................................................................... 2 5、按钮的使用 .............................................................................. 3 6、Flash 控件的使用 ........................................................................ 5 7、为 VC 界面加载 ssk 皮肤 ................................................................... 5 8、窗口菜单的使用 .......................................................................... 5 9、窗口添加右击菜单 ........................................................................ 5 10、为静态文本添加动态显示时间 ............................................................. 6 11、状态栏的使用 ........................................................................... 6 12、改变 VC 对话框的颜色实现 ................................................................ 7 13、为 MFC 对话框添加背景图片 ............................................................... 9 14、进度条的使用 ........................................................................... 9 15、下拉列表框 CComboBox 的使用 ............................................................ 10 16、使用 Vc 读取数据库中的数据实现 ......................................................... 11 17、VC 下删除、复制和移动文件实现 ......................................................... 12 18、VC 与 MFC 组合键的使用 ................................................................. 15 19、VC 中线程的使用 ....................................................................... 16 20、 MFC 实现打开和连接一个文件、一个程序、一个网页 ................................................. 17 21、VC 中常用文件操作 ..................................................................... 17 22、MFC 中画直线和曲线 .................................................................... 18 23、将十进制数转化为指定长度的二进制数 .................................................... 20 24、实现 VC 程序打包 ....................................................................... 20

 vc++及 MFC 部分控件及功能实现总结---上善若水整理

 第 1 页 共 21 页

  1、 表格控件的使用 CListCtrl 将表格控件托到窗口后,将 properies 中 style 中的 view 改为 report ,在 classwizard 中的 menber variables 添加对应的 controll 变量 m_list,在 OnInitDialog()中初始化表格:

 // 初始化 Listctrl 表头 m_list.SetBkColor(RGB(255, 255, 255));//设置背景颜色m_list.SetTextColor(RGB(0,0,0));//设置文本颜色m_list.SetTextBkColor(RGB(255, 151, 240)); // 设置文本背景颜色

 m_list.SetExtendedStyle(LVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDR OP|LVS_EX_ONECLICKACTI V ATE|LVS_EX_GRIDLINES);/ / 设置表格风格

 m_list.InsertColumn(0,_T(" 序号 "),LVCFMT_IMAGE|LVCFMT_LEFT); / 设 /

 m_list.InsertColumn(1,_T(" 信源符号 "));// 设置列名m_list.InsertColumn(2,_T(" 概 率 ")); m_list.SetColumnWidth(0,60); // 设置列宽m_list.SetColumnWidth(1,120); 往表格中插入数据:

 for(i=0;i<cnt;i++)//将编码信息存入表格 {

 置列名 m_list.InsertItem(i,"");// 初始化行si.Format("%d",i+1); m_list.SetItemText(i,0,si); // 插入字符str1.Format("%c",zifu[i]); m_list.SetItemText(i,1,str1); str2.Format("%.3f",weigh[i]); m_list.SetItemText(i,2,str2); }

 删除表格所有数据:

 m_list.DeleteAllItems();/ / 删除表格中所有数据

 2、CString 转Char 数组和指针、Int 等数据类型 CString cstr;

 Char s[100];

 char *p = (LPSTR)(LPCTSTR)cstr; strcpy(s,p); string 转 CString CString.format(”%s”, string.c_str()); char 转 CString CString.format(”%s”, char*); char 转 string string s(char *); string 转 char * char *p = string.c_str(); CString 转 string string s(CString.GetBuffer());

 vc++及 MFC 部分控件及功能实现总结---上善若水整理

 第 2 页 共 21 页

  3、消息窗口的使用 MessageBox()AfxMessageBox()

 函数原型:int MessageBox(HWND hWnd,LPCTSTRlpText,LPCTSTR lpCaption,UINT UType); 参数:

 hWnd:标识将被创建的消息框的拥有窗口。如果此参数为 NULL,则消息框没有拥有窗口。及为显示内容 lpText:指向一个以 NULL

 结尾的、含有将被显示的消息的字符串的指针。

 lpCaption:指向一个以 NULL 结尾的、用于对话框标题的字符串的指针。

 uType:指定一个决定对话框的内容和行为的位标志集。此参数可以为下列标志组中标志的组 合。

 指定下列标志中的一个来显示消息框中的按钮,标志的含义如下。MB_ABORTRETRYIGNORE:消息框含有三个按钮:Abort,Retry 和 Ignore。MB_OK:消息框含有一个按钮:OK。这是缺省值。

  MB_OKCANCEL:消息框含有两个按钮:OK

 和 Cancel。MB_RETRYCANCEL:消息框含有两个按钮:Retry

  和 Cancel。MB_YESNO:消息框含有两个按钮:Yes

 和

  No。MB_YESNOCANCEL:消息框含有三个按钮:Yes,No 和 Cancel。

 指定下列标志中的一个来显示消息框中的图标:标志的含义如下。

 MB_ICONEXCLAMATION: MB_ICONWARNING:一个惊叹号出现在消息框。MB_ICONINFORMATION:

 MB_ICONASTERISK:一个圆圈中小写字母 i 组成的图标出现在消息框。

 MB_ICONQUESTION:一个问题标记图标出现在消息框。MB_ICONSTOP: MB_ICONERROR:

 MB_ICONHAND:一个停止消息图标出现在消息框。

 指定下列标志中的一个来显不缺省的按钮:标志的含义如下。

 MB_DEFBUTTON1:第一个按钮为缺省按钮。如果 MB_DEFBUTTON2,MB_DEFBUTTON3, MB_DEFBUTTON4 没有被指定,则 MB_DEFBUTTON1 为缺省值。MB_DEFSUTTON2;第二个按钮为缺省按钮。MB_DEFBUTTON3:第三个按钮为缺省按钮。

 MB_DEFBUTTON4:第四个按钮为缺省按钮。使用举例:

 MessageBox("字符串为空!请输入字符串!","警告",MB_ICONEXCLAMATION); AfxMessageBox("字符串为空!请输入字符串!"); 4 、编辑框 CEdit 使用 添加滚动条使其自动换行,选择 properties 中 style ,选上 multiline 、 vertical scroll 和 Auto Vscroll 属性; 设置编辑框字体颜色:在窗口中添加函数OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor):

 在其中加入代码:

 if(pWnd->GetDlgCtrlID()==IDC_EDIT1) {

 pDC->SetTextColor(RGB(255,125,0));// 设置字体颜色 }

 vc++及 MFC 部分控件及功能实现总结---上善若水整理

 第 3 页 共 21 页

  设置编辑框和静态框为透明效果:

 HBRUSH CloginDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) {

 HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); if(nCtlColor==CTLCOLOR_STATIC) // 对所有的 STATIC控件的属性进行设定 {

 pDC->SetBkMode(TRANSPARENT); return (HBRUSH)::GetStockObject(NULL_BRUSH); }

 if(nCtlColor==CTLCOLOR_EDIT) // 对所有的 STATIC控件的属性进行设定 {

 pDC->SetBkMode(TRANSPARENT); return (HBRUSH)::GetStockObject(NULL_BRUSH); }

 return hbr;

 }

 将文件内容读入到编辑框:在打开文件按钮添加代码 CFileDialog

 dlg(true,NULL,"*.txt",OFN_FILEMUSTEXIST|OFN_HIDEREADONL Y ,

 "Text Files (*.txt;*.doc;*.docx)|*.txt;*.doc;*.docx|All CompressFiles (*.*)|*.*||",this);

 件打开对话框 CString strPath,strText="",s; if(dlg.DoModal() == IDOK)

 {

 // 构造文 strPath = dlg.GetPathName();// 获得文件路径CStdioFile file2; if(!file2.Open( strPath,CFile::modeRead)) // 打开文件return; while(true)//按行循环读取文件内容存入 s {

 if(!file2.ReadString(s)) break;

 strText=strText+s;

 }

 }

 m_edit1=strText;

 UpdateData(false);

 5、按钮的使用

 按钮添加图片:

 第一种:

 vc++及 MFC 部分控件及功能实现总结---上善若水整理

 第 4 页 共 21 页

  Button 属性页里 Style 的 Bitmap 点上CBitmap Bitmap; Bitmap.LoadBitmap(IDB_BITMAP1);

 HBITMAP hBitmap=(HBITMAP)Bitmap.Detach(); CButton *pButton=(CButton*)GetDlgItem(IDCANCEL); pButton->SetBitmap(hBitmap); 感觉效果不是很好。因为图片不会自动拉伸。

 第二种:

 可以采用 CButtonST 控件,挺好用的,比 MFC 的那些封装好用。第三种:

 把 button 按钮属性设置为 ower draw 然后映射 onDrawItem 消息 在 ondraw 函数内自己绘制就可以了 void CUi6Dlg::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct) {

 if(nIDCtl == IDC_HELLO_CFAN) {

 // 绘制按钮框架 UINT uStyle = DFCS_BUTTONPUSH; // 是否按下去了? if (lpDrawItemStruct->itemState & ODS_SELECTED) uStyle |= DFCS_PUSHED; CDC dc; dc.Attach(lpDrawItemStruct->hDC);

 dc.DrawFrameControl(&lpDrawItemStruct->rcItem, DFC_BUTTON, uStyle); // 输出文字dc.SelectObject(&m_Font); dc.SetTextColor(RGB(0, 0, 255)); dc.SetBkMode(TRANSPARENT); CString sText; m_HelloCFan.GetWindowText(sText);

 dc.TextOut(lpDrawItemStruct->rcItem.left + 20, lpDrawItemStruct->rcItem.top + 20, sText);

 // 是否得到焦点 if(lpDrawItemStruct->itemState & ODS_FOCUS) {

 // 画虚框 CRect rtFocus = lpDrawItemStruct->rcItem; rtFocus.DeflateRect(3, 3); dc.DrawFocusRect(&rtFocus);

 }

 return;

 }

 CDialog::OnDrawItem(nIDCtl, lpDrawItemStruct);

 }

 vc++及 MFC 部分控件及功能实现总结---上善若水整理

 第 5 页 共 21 页

  第四种:

 1, 按钮属性 Onwer Drew 选上,按钮 ID: IDC_BUTTON1 2,定义 private 变量:

 CBitmapButton m_button;

 3,在初始化里边 m_button.LoadBitmaps(IDB_BITMAP1, IDB_BITMAP2);//IDB_BITMAP1: 平时; IDB_BITMAP2 :按下

 m_button.SubclassDlgItem(IDC_BUTTON1, this); m_button.SizeToContent();

 设置按钮显示的文字代码:

 GetDlgItem(IDC_BUTTON2)->SetWindowText("开始编码"); 6、Flash 控件的使用 [ 工具 (T)]--[ActiveX Control Test Container]--[ 弹出对话框 ] [File]--[Register Controls]--[弹出对话框] 找到 C:WINDOWS\system32\Macromed\lash\Flash10e.ocx , [ 打开 ]

 弹出 "MFC ClassWizard" 框里为 FLASH 的 ID 添加映射 : 选择 IDC_SHOCKWAVEFLASH1 、 FSCommand 、 [Add Function],弹出"Add Member Function"选[OK] 在 "MFC

 ClassWizard " 框里第

 2

 页 "Member

 Variables " ,为

 FLASH

 的

 ID

 添加类,弹出提示对话框选择 [ 确定 ] ,我们定义类名字,为 m_flash,基类为 CShockwaveFlash " 播放按钮 " 代码:

 为视图资源里的 " 播放 " 按钮消息响应函数修改代码

 void CTest0407Dlg::OnOK() // 对应"播放"按钮 {

 // TODO: Add extra validation here

  //CDialog::OnOK();

 m_flash.LoadMovie(0,"c:\\VC\\tu\\12.swf"); // 播放 FLASH 文件,路径 C:\VC\tu\12.swf m_flash.Play(); }

 7、为VC 界面加载 ssk 皮肤 到网上下载这三个文件 skinppwtl.dll , SkinPPWTL.h , SkinPPWTL.lib 放到工程下,我的百度网盘下载连接

 ( http://pan.baidu.com/netdisk/singlepublic?fid=564282_898919684 )

 在界面的 .cpp 中添加头文件 SkinPPWTL.h ,在 InitInstance() 中添加 skinppLoadSkin("skin\\xp_corona.ssk");//

 初始化皮肤 xp_corona.ssk,按 Alt+F7,选择连接,添加 SkinPPWTL.lib 确认即可。

 8、窗口菜单的使用 在资源框中选中工程,右击选择 insert->menu 创建菜单,右击窗口,选择 properties->general->menu ;

 为子菜单添加事件:右击子菜单选择-> MFC ClassWizard,弹出一个对话框,->select a exist class->选择创建的类如CMyDlg ;在 Message maps 中选择对应子菜单的 ID ,在 Messages 选择 command->add function-> 确定 ->edit code 即可二级菜单的使用:选择一个子菜单右击选择->properties->general->Pop-up 即可 9、窗口添加右击菜单

 vc++及 MFC 部分控件及功能实现总结---上善若水整理

 第 6 页 共 21 页

  按照上面的方法添加一个菜单, MFC ClassWizard 中 Messages 添加 WM_OnRButtonDown 事件,在 OnRButt...

推荐访问:标签 控件 功能 vc及MFC部分控件及功能实现总结 mfc控件介绍