① MFC怎么使用
【MFC控件的使用方法】
VC++6.0控件工具箱:
2 图形控件(picture):常用于显示位图(Bitmap)和图标(Icon)
3 静态文本(Static Text):用来在指定的位置显示特定的字符串,一般用来标识附近另一个控件的内容。显示在静态文本控件中的字符串一般不再改变,但是在需要的时候,也可以通过调用相应的函数来进行设置。MFC提供了CStatic类支持静态控件。
4 编辑框(Edit Box):用来接收用户输入的字符串。通过选择编辑框的选项,编辑框可以接收字符串、数字、密码等;编辑框还可以设置成接收多行字符串的模式;可以自动进行大小写转换。编辑框可能向其父窗口发送多种控件通知,如果用户需要,可以对这些控件通知进行处理。MFC提供了CEdit类支持编辑框控件。
5 组成框(Group Box):用来包围具有逻辑关系的一组控件,在这些控件的周围加上边界和标题。需注意的是,组成框仅仅是在视觉效果上对控件进行“成组”,真正的“成组”工作还需要另外一些工作。
6 按钮(Button):用来接收用户的命令,应用程序在接收到用户命令后,通常需要进行一些后台工作。按钮可以响应单击或双击动作,在按钮接收到鼠标动作后,向其父窗口发送相应的控件通知,用户可以对这些控件通知进行消息映射,从而进行相应的处理。在一个对话框中,可以定义一个默认按钮,这只要选中按钮属性中的“Default”选项。如果在对话框活动的时候按下了Enter键,则等同于单击了默认按钮。MFC提供了CButton类支持按钮控件。
7 复选框(Check Box):用来显示某种可能的选择,该项选择是独立的,用户可以选中或取消该选项。在选项被选中的时候核选标记出现,选项被取消时核选标记消失。MFC中由CButton类对核选框进行支持,用户可以通过SetCheck()函数和GetCheck()函数设置或获取核选框当前的状态。
8 单选按钮(Radio Button):用来选择某种可能的选择,与核选框不同,该选项不是独立的。一般是几个单选按钮组成一组,同组中的单选按钮可以有也只能有一个按钮被选中。MFC同样使用CButton类对单选按钮控件进行支持,SetCheck()函数和GetCheck()函数对单选按钮也是适用的。
9 组合框(Combo Box):列表框和编辑框的组合,用户除了可以在列表中对已经存在的选项进行选择外,还可以输入新的选择。MFC提供了CComboBox类对组合框控件进行支持。
10 列表框(List Box):用来选择一系列的可能选择,用户通过滚动条可以在这些选择中浏览。在列表框中,可以进行单项选择,也可以进行多项选择,这取决于用户在控件属性对话框中的设置。MFC提供了CListBox类对列表框控件进行支持。
11、12 滚动条(Scroll Bar):这包括水平滚动条和垂直滚动条,除了在视觉效果上的方向不同外,水平滚动条在被滚动时发生WM_HSCROLL消息,而垂直滚动条在被滚动时发送WM_VSCROLL消息。MFC提供了CScrollBar进行支持。
13 微调按钮(Spin Button):包括一对紧靠在一起的上下箭头,使用微调按钮可以增大或者缩小某个特定的数值。微调按钮往往都需要一个“伙伴”控件,这通常都是一个编辑框。当微调按钮的向上箭头被单击时,编辑框中的数字就增大;反之则减小。MFC提供了CPinButtonCtrl类进行支持。
14 进度条(Progress):在进行一项需要占有较长时间的操作时来反应当前的进度。当操作的进度不断前进时,进度条就用特色颜色填充进度条框。用户可以设定进度条的范围和当前位置。MFC提供了CProgressCtrl类进行支持。
15 滑块控件(Slider):通常用来在程序中接受一系列离散的数值。用户可以设置滑块控件的取值范围,并可以为控件加上刻度标记以显示特定位置的含义。MFC提供了CSliderCtrl类进行支持。
16 热键控制(Hot Key):热键控件看起来就像一个编辑框,但是在热键控件中能够立刻反应用户刚刚按下的键组合,这在设置程序的热键时特别有用。热键控件只是在“视觉”上显示了按键组合,设置热键的工作还需要用户添加代码完成。MFC提供了CHotKey类进行支持。
17列表控制(List Control):按一定的排列顺序显示一系列带图标的字符串,列表控件提供了四种显示模式:大图标、小图标、列表和详细信息。用户可以向列表控件中添加新的项,也可以控制列表控件的显示模式。MFC提供了CListCtrl类进行支持。
18树形控件(Tree Control):用来显示一系列项目的层次关系,最典型的例子是显示磁盘上的文件与文件夹。如果有子项目的话,单击树形控件中的项目可以展开或者收缩其子项目。MFC提供了CTreeCtrl类进行支持。
19属性表控件(Tab Control):用来包含大量的控件,可以满足用户显示或者获取大量数据的要求。每个属性表又分为好几个属性页,这些属性页由各自的标签进行区分,这些属性页中都可以包容其他控件。在显示属性表的时候,一次只能够显示一个属性页的全部内容,同时显示其他属性页的标签,用户通过单击标签打开相应的属性页。MFC提供了CTabCtrl类进行支持。
20 动画控件(Animation):用来播放一段AVI格式的视频剪辑。用户可以控制视频剪辑的播放、停止和定位,但也仅限于这些功能。动画控件设置不能播放音频剪辑,如果用户需要更高层次的视频或者音频的支持,请选用MCIWnd控件。MFC提供了CAnimateCtrl类对动画控件进行支持。
21 高级编辑框(Rich Edit):编辑控件功能的扩展。在高级编辑框中,除了简单的输入和编辑字符串外,用户还可以为字符或段落指定特定的格式,用户甚至还可以向高级编辑框中插入OLE项。高级编辑框基本上实现了一个带格式的文本编辑器功能,而只需要用户添加少量的接口。MFC提供了CRichEditCtrl类进行支持。
22 日历控件(Month Calender):看似与真正的日历类似,操作也类似,直观的为用户提供了观察和显示当前日期的途径。MFC提供了CMonthCalCtrl类进行支持。
23 日期/时间选择器(Date Time Picker):向用户提供了一种直观的选择日期和时间的方法、日期/时间选择器在外观上类似于一个组合框,但是当用户单击下拉箭头时就会展开一个日历控件供用户选择,而一旦用户做出了选择,日期/时间选择器会自动显示新的日期/时间。MFC提供了CDateTimeCtrl类进行支持。
24 IP地址控件(IP Adress):IP地址控件用来输入和编辑IP地址。该控件外观类似于一个编辑框,但是可以自动对输入的字符按3个一组进行区分和加间隔圆点。IP地址控件为开发支持Internet技术的程序提供了方便。MFC提供了CIPAddressCtrl类进行支持。
26 扩展组合框(Extended Combo Box):在普通组合框的基础上还支持图像列表。即,可以在组合框中显示特定的图标表示相应的选择,而不仅仅是显示文本。MFC提供了CComboBoxEx类进行支持。
所有控件的公共属性:
ID:控件的资源标识。
Visiable:控件是否可见。
Disabled:控件是否被禁止、被禁止的控件无法接受键盘和鼠标输入。
Group:是否从这个空间开始一个新组。
Tab stop:在程序中是否可以用【Tab】键切换到这个控件。
Help ID:是否给控件分配一个帮助标识,帮助标识基于控件本身的资源标识。
Client edge:给控件增加一个凹陷的边界,使整个控件看起来像是凹下去的一样。
Static edge:给控件增加一个边界。
Modal frame:给控件增加一个3维的框架,与Client edge相反,它是凸出来的。
Transparent:拥有此属性的窗口是透明的,它下面的窗口不会被它遮掩住。
Accept files:拥有此属性的窗口可以接收拖放文件,如果一个文件被拖动到这个控件上面,控件会收到WM_DROPFILES消息。
No parent notify:表示控件不向其父窗口发送WM_PARENTNOTIFY消息。
Right aligned text:表示文本右对齐。
以上属性可通过控件的属性对话框进行设置,在属性对话框中按【F1】键可以查看属性的帮助信息。
每一种控件都由一个MFC控件类来管理,当通过资源编辑器在对话框上添加一个控件时,visualC++会自动为控件类生成一个实例,即对象,并调用构造函数,当对话框关闭时,其各个子控件对象被自动销毁。
也可以不使用资源编辑器,自己在程序中写代码创建、显示控件并设置控件的属性。
所有的控件类都继承自CWnd,控件的某些操作和属性设置需要用到CWnd本身的成员函数,CWnd某些函数经常用来操纵控件和设置控件属性。
SetWindowText:设置控件上要显示的标题文本,即用来设置控件的caption属性
GetWindowText:得到控件的标题文本。
EnableWindow:设置控件的Disabled属性,即社会自控件是否可以接收键盘和鼠标的输入。
SetWindowPos:改变窗口的大小、位置和Z轴次序。
MoveWindow:改变窗口的大小和位置
GetWindowRec:得到窗口的大小、位置(信息存放在一个矩形结构中)。
GetClientRect:得到窗口客户区的大小(信息存放在一个矩形结构中 )。
ShowWindow:设置窗口的可见性(即窗口是否可见)。
SetWindowText/GetWindowText还可以用来设置/得到对话框的标题文本。
② 怎样掌握mfc宏的基本原理和使用方法
这个宏,是和资源相关的,资源就是MFC工程里,你通过可视化编辑生成的菜单,图片和对话框。就是xxxx.rc里面的东西。如果你的dll里没这些东西,则不需要使用这个宏如果你在dll里的某个函数里,要弹出一个对话框,则需要在这个函数前面加上这个宏,意思就是告诉系统,程序进入这个函数的时候,就从当前DLL去查找资源。也就是说,在函数堆栈结构中,(针对当前DLL)只需要在最外层入口的地方使用一次即可。并且使用了这个宏的接口,最好不要再嵌套调用,那样就相当于上面说的“告诉系统,程序进入这个函数的时候,就从当前DLL去查找资源”执行了多次。
③ 求学过mfc图像处理的(最好是医学图像处理)大神给小弟介绍下常用的功能,函数,方法
图像处理如果用C++的话一般是用OpenCV开源库,MFC一般只是做界面的。
要求有图像处理经验不只是要会写图像处理的代码,重要的还是要熟悉图像处理的基础知识,比方图像滤波(模糊、锐化)、边缘提取、形态学、颜色等等各方面的知识。这些找本图像处理的书看看就可以大致了解了。
写代码方面的话用C++的话就看OpenCV相关的书籍,看《学习OpenCV》那本书或者上OpenCV中文论坛看看,可以快速入手。
另外Matlab的图像处理功能比较强大,上手迅速,如果Matlab熟的话更适合了。
④ mfc中不同方法话直线
通常的做法是把
HDC hdc;
hdc=::GetDC(m_hWnd);
MoveToEx(hdc,spoint.x,spoint.y,NULL);
LineTo(hdc,epoint.x,epoint.y);
::ReleaseDC(m_hWnd,hdc);
放在OnLButtonUp里面,这样每次在左键弹起时都可以响应到。
⑤ 如何学好VC和MFC(各前辈学习方法及感受整理
多看多练习,找会的人带。
⑥ MFC OnSetActive方法是干什么的
CPropertyPage::OnSetActive 当页由用户选择并成为活动页时,此成员函数由框架调用。
⑦ 什么是MFC编程
MFC(Microsoft Foundation class)微软基本类(库),它是一个面向对象的应用程序架构。程序员利用它可以很方便搭建应用程序框架。
MFC结合了面向对象的编程技术和WINDOWS消息驱动的编程技术,并封装了WIN32API,其设计好处是:消除了WIN32API的复杂性,封装了WIN32API,统一了程序的概念,而且可扩展。
MFC实际上是微软提供的,用于在C++环境下编写应用程序的一个框架和引擎。VC++是Windows下开发人员使用的专业C++SDK,MFC就是挂在它之上的一个辅助软件开发包。
(7)mfc常用方法扩展阅读
MFC编程优势
面对底层程序,它能很轻松的与Windows API或驱动程序结合,就是在自己的代码中直接使用API函数,而API和驱动程序的资料都是以C语言为基础的,这使得VC程序员能够更轻松的使用Windows API。
这样造成了一个很有意思的现象,即入门时VC程序员要付出更多的努力来学习,但是一旦掌握后,开发其他领域的程序或使用第三方软件时,如工业控制类的程序,由于底层的程序都是用C语言编写,反倒是VC程序员能够更快的掌握该领域的编程技术。而很多其他的编程语言甚至找不到相关的资料。
这就说明VC(MFC)实际上是一种入门困难,但是扩展学习却很轻松的语言框架。
⑧ MFC 画线的几种方式
在同一个线程中,当你使用动态画线的方法时,如果没有给消息环留出空闲时间,那么界面就是不响应的。
解决办法有很多,根据你的实际情况来甄别使用:
使用界面线程。这是最彻底的办法,通过线程技术,将画线放在子线程中,主线程的任何动作都不影响。(这个稍微复杂)
定时器画线。如果你实现的是简单动画,那么使用定时器是不错的办法,实现简单,改动较小。
如果“动画”不是你需要的,只是画线实在很多,那么推荐你使用内存DC的办法,通过双缓冲技术,在首次绘制前线画好内存DC,并保持在View类中,每次只需要一个BitBlt语句就可以了,显示会很快
⑨ MFC编程方法
从网上找些代码看看
多看帮助文档(MSDN),尽快熟悉MFC类的了解
其实现在你应该能做些东西了,有机会的进软件公司, 真正的东西还是从工作中学习的
大家都是一步步走出来的
⑩ 新手学MFC,有什么方法快速入门
先找一本VC的书,然后去做个小的系统,比如学生成绩管理,图书馆管理系统,还有什么其他的简单的。边做边学,基本上5天就能入门。
PS:我在课程设计的时候完全不懂MFC,不懂如何连接数据库,通过3天自学,2天编程,就基本上完成了 可以查询,删除,添加,修改功能的小项目。