欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    关于MFC的有些知识.docx

    • 资源ID:6159077       资源大小:192.92KB        全文页数:14页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    关于MFC的有些知识.docx

    1、关于MFC的有些知识实验一1、 在VC+中,工程与各种源文件之间是什么关系?解答:工程的实质是一些相互关联的源文件的集合,可以把项目理解成一个工作任务, 开发环境中,工程包含在工作区间中,一个工作区可以管理多个工程2、 一个VC+工程下会有3个文件夹,这3个文件夹分别是什么?以.cpp为后缀的文件会添加到哪个文件夹中?以.h为后缀文件会添加到哪个文件夹中?解答:分别是 head Files ,Sourse Files, Resourse Files ,.cpp放在Sourse 文件里面,.h放在Head Files文件里3,以win32 console application工程为例,简述工程

    2、的建立,文件的添加,工程的编译和链接及工程的执行过程。解答:这个就是win32 console application工程的实例验证过程。实验二1. 简述Windows应用程序的特点。解答: 1.事件驱动的程序设计 它是一种“被动”式程序设计方法,程序开始运行时,处于 等待用户输入事件状态,然后取得事件并作 出相应反应,处理完毕又返回并处于等待事件状态。 二. 消息循环与输入 消息是一种报告有关事件发生的通知。 事件驱动是靠 消息循环 机制来实现的。 Windows应用程序的消息来源有以下四种: (1)输入消息 (2)控制消息 (3)系统消息 (4)用户消息 三. 图形输出 Windows程序

    3、的所有输出都是图形,字符也被作为图形来处理。 GDI提供两种基本服务:创建图形输出 和 存储图象。 绘图函数分为三类: 一是 文字 输出; 二是 矢量图形 函数,用于画线、圆等几何图形; 三是 光栅(位图)图形 函数,用于绘制位图。 四. 用户界面对象 用户界面对象: 窗口 边框 系统菜单框 标题栏 菜单栏 工具条 客户区 垂直滚动条 和 水平滚动条 状态栏 图标 光标 插入符 对话框 控件 消息框 5. 资源共享 常见的资源包括: 设备上下文,画刷,画笔,字体,对话框控制,对话框,图标,定时器,插入符号,通信端口,电话线等。 Windows要求应用程序必须以一种能允许它共享Windows资源

    4、的方式进行设计,它的基本模式是这样的: 1.向Windows系统请求资源; 2.使用该资源; 3.释放该资源给Windows以供别的程序使用。 即使最有经验的Windows程序员也常常会忽略第三步。 2. 消息结构体中最重要的数据成员是哪几个?简述消息附加参数的作用。解答: hwd成员:该成员是一个句柄,它标示了将要接受此消息的窗口 Message成员:该成员是消息号,为无符号整形,在系统或者应用中是一个预定义的常量,它是消息的标志符成员:该成员在中一般作为常用的消息参数,它携带消息的附加消息,依据的具体指有所不同成员:该成员和成员的作用类似,在中一般作为常用的消息参数,它携带消息的附加消息,

    5、依据的具体有所不同成员:该成员是一个时间值,标志消息被发送时的时间成员:该成员指定了消息被发送时光标的位置,单位是屏幕坐标。3. 什么是句柄类型:VC+中为何要引入该类型?解答:句柄是WINDOWS程序标识每个资源的32位数据值,每一个句柄同一个指针对应。但句柄由WINDOWS统一管理,就是说你可以在某软件运行时通过WINDOWS API函数捕获其它程序的名柄. 因为在windows中,内存块是可移动的(优化内存的使用),所以我们在使用内存时,当内存发生移动时,原来的指针值代表的内存已经发生了变化。所以windows引入了句柄的概念。句柄值不会变,指针值会变(内存块移动)。 4. 简述API和

    6、MFC消息处理的特点及两者的区别。解答:API 是代码片段, MFC 是类库。而是对封装后的类库,他是微软公司提供的 MFC封装了决大多数的API函数(MFC把所有我们常用到和不常用到的API封装起来,用类的形式,构成了一个框架),而且为了让曾经的API程序员方便记忆和使用,名字也和API的相同,但是是有区别的 5. API应用程序中WinMain()函数和WndProc()函数的作用分别是什么?(根据例程源程序叙述或者用流程图说明)解答:WndProc函数传回一个型态为LRESULT的值,该值简单地被定义为一个LONG。WinMain函数被指定了一个WINAPI型态(在表头文件中定义的所有W

    7、indows函数都被指定这种型态),而WndProc函数被指定一个CALLBACK型态。这两个标识符都被定义为_stdcall,表示在Windows本身和使用者的应用程序之间发生的函数呼叫的呼叫参数传递方式。 实验三1、 搭建简单应用程序框架需要哪些类?搭建文档/视图结构的应用程序框架需要哪些类?解答:简单的应用程序由CWinApp类和CFrameWnd类搭建的。简单的文档视图结构由CWinApp类、CFrameWnd类、CView类、CDocument类和CDocTemplate类搭建的。2、 在简单应用程序框架中CWinApp类和CframeWnd类分别执行了什么工作?解答:MFC 中的主

    8、应用程序类封装用于 Windows 操作系统的应用程序的初始化、运行和终止。基于框架生成的应用程序必须有且仅有一个从 CWinApp 派生的类的对象。在创建窗口之前先构造该对象。CWinApp 是从 CWinThread 派生的,后者表示可能具有一个或多个线程的应用程序的主执行线程。在最新版本的 MFC 中,InitInstance、Run、ExitInstance 和 OnIdle 成员函数实际位于 CWinThread 类中。此处将这些函数作为 CWinApp 成员来探讨,因为探讨所关心的是对象作为应用程序对象而不是主线程的角色。CFrameWnd类往往用于创建应用程序的主窗口,因为它能很

    9、好地支持系统菜单和控制条(工具条、状态条等),为此定义了大量的成员函数和变量。在编写文档/视图结构的应用程序时,CFrameWnd作为主窗口管理视图和文档对象。视图对象和控制条都成为CFrameWnd的子窗口,它们分享客户区,其位置被CFrameWnd有效地排列。 CFrameWnd直接支持单文档界面(SDI),对于多文档界面(MDI),使用其派生类CMDIFrameWnd和CMDIChildWnd。 3、 消息WM_LBUTTONDOWN的默认消息映射和消息处理函数是什么?这一消息的附加参数IParam中存放着什么信息?消息处理函数的参数如何对这一信息进行分割包装?4、 默认消息影射是 ON

    10、_WM_LBUTTONDOWN() 消息处理函数是WindowProc函数接收此消息。WM_LBUTTONDOWN消息当用户在window客户区域点击鼠标左键的时候发送。如果当前鼠标没有被捕捉,消息发送给鼠标下面的window窗体。否则,消息发送给当前捕捉鼠标消息的方法。window窗体通过WindowProc函数接收此消息。 5、 Invalidate()函数的作用是什么?是刷新啊!调用这个函数后会刷新整个矩形客户区,或者部分指定的客户区.这是wm_paint会被触发.区域将会重绘6、 AppWizard和ClassWizard的作用是什么AppWizard:在可视化开发环境下,生成一个应用

    11、程序要做的工作主要包括编写源代码、添加资源和设置编译方式。向导实质上是一个源代码生成器,利用应用程序向导可以快速创建各种风格的应用程序框架,自动生成程序通用的源代码,同时自动生成程序框架所需要的支持文件。 ClassWizard:它是一个类向导,为工程添加类的对象以及成员函数,数据成员,试验四1. CDC类有哪些派生类?简述CDC类和CClientDC类的一般使用方法。解答:CDC类封装了Windows的DC(设备描述表),是MFC设备环境类的基类,其他的MFC设备环境类都是CDC类的派生类。CDC类指针的生成是用GetDC()函数来实现的,CDC类指针的销毁是用ReleaseDC()函数来实

    12、现的。CGDIObject类及其派生类只封装了GDI中的部分实体,所以CGDIObject类和GDI并不具有想CDC类和DC那样的对应关系。2. 写出完成一下功能的消息处理函数:单击鼠标左键,用一个黄色的三像素宽的实线笔在窗口中心画一个边长为50,50的矩形,矩形内部以黑色的水平、垂直交叉线填充。解答:void CGraphicsView:OnLButtonDown(UINT nFlags, CPoint point) CDC *pDC=GetDC(); CBrush newbrush(HS_CROSS,RGB(255,0,0);/创建一个新画刷 CBrush *poldbrush; pold

    13、brush=pDC-SelectObject(&newbrush);/将新画刷选入设备环境 pDC-Rectangle(100,100,150,150); pDC-SelectObject(poldbrush);/恢复旧画刷 CView:OnLButtonDown(nFlags, point);3. LOGFONT架构与CFont类之间是什么关系?结构体TEXTMETRIC的作用是什么?解答:LOGFONT: 一个结构,用来逻辑上表达一个字体,比如LOGFONT.lfFaceName是字体的名字 CFont: 是mfc对于HFONT的一种封装 4. 简述定时器的使用步骤。1. 利用MFC Ap

    14、pWizard创建一个标准的工程,接受所有缺省选项。名为s1 2. 在Classview中选中“CMainFrame”类,然后按Ctrl+W激活ClassWizard,在“Message Map”选项卡中Class Name选“CMainFrame”,接着在“Message”中选“WM_TIMER”,最后按下“Add Funcation”。以上步骤加入了对WM_TIMER消息的映射处理。 3. 回到Classview中,双击“OnCreate”成员函数,在函数的末尾添加申请Timer的语句: SetTimer(100,1000,NULL);/申请一个标识值为100的Timer,定时间隔为100

    15、0毫秒(1秒)。 4. 在“Classview”中双击OnTimer函数,输入要定时实现的代码。本例子中为: MessageBeep(1000);/每隔一秒发出通告声 5. 编译并执行之,我们可以每隔一秒就听到声音。这正是我们在OnTimer函数内要求执行的。 5. Invalidate()函数的作用是什么?解答:该函数的作用是使整个窗口客户区无效,此时就需要重绘,这个就会自动调用窗口类的OnPaint函数,OnPaint负责重绘窗口。视图类中就调用OnDraw函数,实际的重绘工作由OnPaint或者OnDraw来完成。这个函数有一个bool型参数,默认为true,此时会首先将整个窗口的内容清

    16、除,然后使用OnPaint函数绘制内容;如果设置为false,则不清除原有窗口内容,直接调用OnPaint函数绘图。前者的优点是窗口清理干净、一致;后者是节约时间,多用于一个窗口中分若干操作区域的场合。试验五1. 资源描述文件的作用是什么?资源页面的作用是什么?解答:资源描述文件的作用是为软件创建所需要的 菜单、工具栏和状态栏,资源页面的作用就是提供一个可视化的页面设置,显示窗口。2. resource.h文件的作用是什么?就是你所有资源的ID呀,如果你的源代码中需要使用这些ID的话,就需要包含这个文件。它是由VC自己维护的,一般不用你去修改它 3. 菜单消息的消息映射为什么不采用标准的消息映

    17、射?能动态的制定菜单项和菜单ID 使其更有灵活性。4. 为什么一般把快捷键和图标资源的ID定义为菜单的ID相同?图标资源是以位图形式保存的,这一位图资源会放在工程的哪个文件夹中?解答:这样就更容易的让使用者去使用和理解这个菜单的功能,也能使得使用更加方便,一位图资源放在APP的文件中。5. 在使用CStatusBar类创建状态栏时,定义了全局数组UNIT Indicator=ID_SEPARATOR,ID_INDICATOR_CAPS,ID_INDICATOR_NUM,ID_INDICATOR_SCRL,试说明这一全局数组的作用。ID_SEPARATOR用作消息行窗格,用来显示菜单项或工具按钮

    18、的提示信息 其余三个元素是用作状态指示器窗格,分别用于caps Lock ,Num lock 和Scrok Lock 这三个键的状态显示。 6. 工具栏类(CStatusBar)如何和工具栏资源进行链接?解答:CStatusBar是状态栏,不是标准工具栏。class CStatusBar : public CControlBar,这是状态栏定义,从这里可以看出,虽然和ToolBar是出自同源,但没有从属关系。 BOOL CStatusBar:CreateEx(CWnd* pParentWnd, DWORD dwCtrlStyle = 0, DWORD dwStyle = WS_CHILD |

    19、WS_VISIBLE | CBRS_BOTTOM, UINT nID = AFX_IDW_STATUS_BAR);从创建函数上看,就知道,CStatusBar是不能使用Toolbar资源的,所以,如果你需要做一个类似工具条的状态条,或者从CToolBar派生自己的类(也可以直接使用),或者从CControlBar做派生,做成自己想要的样子。试验六 1、 对话框模版怎么样与对话框类进行连接:解答:在MFC中,对话框窗口的功能主要由CWnd和CDialog两个类实现。MFC通过CDialog来封装对话框的功能。CDialog从CWnd继承了窗口类的功能(包括CWnd实现的有关功能),并添加了新的成

    20、员变量和函数来处理对话框。 2、 对话框类拥有自己独立的消息循环,它一般处理什么消息?按钮控件发出什么消息,其消息映射怎么写,为什么采用这种消息映射?解答:实对话框得返回是在关闭对话框得时候调用的,从创建到关闭一直在DoModal中执行,更本没有到别的地方去,DoModal()只是用来创建并显示对话框,对话框一旦创建,它将进入一个无限循环RunModalLoop(),因此,我们一旦调用了DoModal(),其他窗体就不能执行了,上面的自子窗体例外,因为在这个循环中,他一直在监视上面自窗体的消息,并为之处理,当你关闭对话框时,也就是点击了关闭按钮,EndModalLoop(nResult)被调用

    21、,无限循环才被跳出,这样对话框关闭,并返回结果nResult。我们可以通过这个来返回任意整形,不一定时IDOK,IDCANCLE 映射消息:;ON_COMMAND_RANGE(ID_BUTTON, ID_BUTTON+count, OnButton) SendMessage(WM_COMMAND,MAKELONG(IDC_CHECK5,BN_CLICKED), (LPARAM)(GetDlgItem(IDC_CHECK5)-GetSafeHwnd(); SendMessage(.) 可以发送消息给控件 这样做的目的就是能记录下鼠标点击的次数,以及它的状态。3、 IDOK和IDCANCEL按钮的

    22、默认处理函数分别是什么?这两个函数都可以关闭对话框,但为何要使DoModal()函数的返回值不同?解答:IDOK和IDCANCEL的默认处理函数是 CDialog:OnCancel() CDialog:OnOK()这样才能对两个函数有区分,从而避免了一定的混淆的发生。4、 颜色对话框为什么要采用GetColor()函数来获取用户选择的颜色?解答:这个函数可以使得用户自己自定义他们自己需要的颜色,从而使得用户得到自己需要的颜色,增加了和用户的互动的功能。5、 文件对话框用什么函数来获取所选文件的完整路径?解答:GetFullPathName 6、 DDX数据交换语句根据什么决定控件与数据成员之间

    23、的数据交换方向?解答:当程序需要交换数据时,不要直接调用DoDataExchange函数,而应该调用CWnd:UpdateData。UpdataData函数内部调用了DoDataExchange。该函数只有一个布尔型参数,它决定了数据传送的方向。调用UpdateData(TRUE)将数据从对话框的控件中传送到对应的数据成员中,调用UpdateData(FALSE)则将数据从数据成员中传送给对应的控件。 7、 如何用CFileDialog类来完成文件的打开?文件选择对话框的使用:首先构造一个对象并提供相应的参数,构造函数原型如下:CFileDialog:CFileDialog( BOOL bOp

    24、enFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL ); CString CFileDialog:GetPathName( ) 得到完整的文件名,包括目录名和扩展名如:c: est est1.txtCString CFileDialog:GetFileName( ) 得到完整的文件名,包括扩展名如

    25、:test1.txtCString CFileDialog:GetExtName( ) 得到完整的文件扩展名,如:txtCString CFileDialog:GetFileTitle ( ) 得到完整的文件名,不包括目录名和扩展名如试验七1. 单选按钮如何成组?单选按钮控件组与什么类型的变量进行数据交换?如果控件组中第二个按钮被选中,则变量的值为多少?解答:用resource symbols编辑控件ID,同组的控件ID相连,然后用checkbutton 和int类型的变量进行数据交换 ,如果选择第二个,则变量的值是12. 复选框与什么类型的变量进行数据交换?如果复选框被选中则变量的值为多少?

    26、解答:和int型进行数据交换,被选中则变量为0;3. 列表框的支持类是什么?简述如何给列表框添加选项。解答:支持的类是 CComboBox ;在属性的data标签中添加 一行表示ComboBox 下来表一行 ,换行ctrl+回车; 4. 组合框可以分为哪集中?简述下拉组合框与下拉列表的区别。解答: 有三种类型,第一种:CBS_STYLE风格,它上面可以输入文本,下面的列表可供选择预设文本;第二种:CBS_DROPDOWN,上面可以输入文本,下面的列表是下拉式的,平时处于收起状态,点击编辑框右边的三角形才会拉下来;第三种是CBS_DROPDOWNLIST,它仅是一个下拉的选择框,上面框中不允许输入文字。


    注意事项

    本文(关于MFC的有些知识.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开