摘要: 最近在做实验室项目的时候需要在MFC下生成单文档多视图的结构,经过网上几个小时的寻找以及查书终于找到了一种可行的同时又较好理解的解法,记录下来: 首先,由于是静态创建,所以肯定是先初始化好想创建的视图啦。注意,我所有的操作都在**App类中做。 1 private: 2 CView* m_pView[4]; 我在App类中声明了一个视图数组,并在InitInstance中初始化它,还包括视图的创建等。 视图类初始化 1 CView* m_pActiveView = ((CFrameWnd*)m_pMainWnd)->GetActiveView(); 2 m_... 阅读全文
posted @ 2013-11-06 15:51 陳さん様 阅读(396) 评论(0) 推荐(0) 编辑
摘要: vc中位图伸缩函数StretchBlt在对图片进行缩放时会造成严重的图片失真。在了解解决方法前先巩固下StretchBlt的用法:StretchBlt 函数功能:函数从源矩形中复制一个位图到目标矩形,必要时按目前目标设备设置的模式进行图像的拉伸或压缩。 函数原型:BOOL StretchBlt(HDC hdc, int nXOriginDest, int nYOriginDest, int nWidthDest, int nHeighDest, HDC hdcSrc, int nXOriginSrc, int nYOriginSrc, int nWidthSrc, int nHeightS.. 阅读全文
posted @ 2013-11-06 13:28 陳さん様 阅读(557) 评论(0) 推荐(0) 编辑
摘要: 管理控件函数:ShowWindow()MoveWindow()CreateWindow()CreateWindowEx()系统预定义的窗口类:BUTTON 按钮控件COMBOBOX 组合框控件EDIT 编辑框控件LISTBOX 列表框控件SCROLLBAR 滚动条控件STATIC 静态控件子窗口控件通过向其父窗口发送WM_COMMAND消息进行通讯。WM_COMMAND的wParam参数包含了子窗口的标志ID,而lParam参数的低位是子窗口的句柄,高位是通知代码,通知代码将告诉父窗口用户在子窗口中所进行的操作。 《子窗口控件和相应的通知代码》按钮控件 BN_CLICKED 用户在按钮子窗口中 阅读全文
posted @ 2013-11-06 11:40 陳さん様 阅读(627) 评论(0) 推荐(0) 编辑
摘要: VB:函数原型 BOOL SetWindowPos(HWND hWnd,HWND hWndlnsertAfter,int X,int Y,int cx,int cy,UNIT.Flags);函数功能 该函数改变一个子窗口,弹出式窗口式顶层窗口的尺寸,位置和Z序。 子窗口,弹出式窗口,及顶层窗口根据它们在屏幕上出现的顺序排序、顶层窗口设置的级别最高,并且被设置为Z序的第一个窗口。参数 hWnd:窗口句柄。 hWndlnsertAfter:在z序中的位于被置位的窗口前的窗口句柄。该参数必须为一个窗口句柄,或下列值之一: HWND_BOTTOM:将窗口置于Z序的底部。如果参数hWnd标识... 阅读全文
posted @ 2013-11-06 11:39 陳さん様 阅读(276) 评论(0) 推荐(0) 编辑
摘要: Windows窗体WM_NULL = $0000;WM_CREATE = $0001; 应用程序创建一个窗口WM_DESTROY = $0002; 一个窗口被销毁WM_MOVE = $0003; 移动一个窗口WM_SIZE = $0005; 改变一个窗口的大小WM_ACTIVATE = $0006; 一个窗口被激活或失去激活状态;WM_SETFOCUS = $0007; 获得焦点后WM_KILLFOCUS = $0008; 失去焦点WM_ENABLE = $000A; 改变enable状态WM_SETREDRAW = $000B; 设置窗口是否能重画WM_SETTEXT = $000C; 应用 阅读全文
posted @ 2013-11-06 11:36 陳さん様 阅读(1117) 评论(0) 推荐(0) 编辑
摘要: 今天在看一个代码里头写了GetWindowLong (hwnd, 0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第2个参数为0是指什么,MD,很恼火,最近终于在一个国外网站找到,我在这篇文章贴了,网站是http://www.codeguru.com/forum/archive/index.php/t-243778.html先收集所有关于此函数的使用方法以及程序代码希望后来的人看到我的这篇文章能感动哈:函数功能描述:用这个函数能够获得指定窗口的信息函数原型:LONG GetWindowLong( HWND hWnd,int nIndex )参数:hWnd:指定窗口的句柄nIndex 阅读全文
posted @ 2013-11-06 11:34 陳さん様 阅读(1528) 评论(0) 推荐(0) 编辑
摘要: 一、窗口样式WS_POPUP 弹出式窗口(不能与WS_CHILDWINDOW样式同时使用)WS_CHILDWINDOW 子窗口(不能与WS_POPUP合用)WS_MINIMIZE 创建窗口拥有最小化按钮WS_MINIMIZEBOX 创建窗口拥有最小化按钮,须同时指定WS_SYSTEM样式WS_VISIBLE 可见状态WS_DISABLED 不可用状态WS_CLIPSIBLINGS 使窗口排除子窗口之间的相对区域WS_CLIPCHILDREN 当在父窗口内绘图时,排除子窗口区域WS_MAXIMIZE 具有最大化按钮WS_MAXIMIZEBOX 创建窗口拥有最大化按钮,须同时指定WS_SYSTEM 阅读全文
posted @ 2013-11-06 11:32 陳さん様 阅读(325) 评论(0) 推荐(0) 编辑
摘要: “窗口类的封装,从全局窗口消息处理到窗口对象消息处理的映射方法: 对界面进行封装,一般都是一个窗口一个类,比如实现一个最基本的窗口类CMyWnd,你一定会把窗口过程作为这个类的成员函数,但是使用WINAPI创建窗口时必须注册类WNDCLASS,里面有个成员数据lpfnWndProc需要WNDPROC的函数指针,一般想法就是把窗口类的消息处理函数指针传过去,但是类成员函数除非是静态的,否则无法转换到WNDPROC,而全局的消息处理函数又无法得到窗口类对象的指针。这里有几种解决办法: 一种解决方法是用窗口列表,开一个结构数组,窗口类对象创建窗口的时候把窗口HWND和this指针放入数组,全局消息处 阅读全文
posted @ 2013-11-06 11:31 陳さん様 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 在网上搜了一下这个函数的用法,在此汇总一下!注册窗口类时可以指定“每窗口额外内存”这段内存可以通过Get(Set)WindowLong 来访问SetWindowLong 的 nIndex 参数如果不小于0那么就是访问这段内存,这段内存存放什么东西都可以如果 nIndex 小于零那就是访问窗口的数据结构其实这是另外一个不同的功能*********************************************************************参数 类型 说明 hwnd Long 欲为其取得信息的窗口的句柄 nIndex Long *dwNewLong L... 阅读全文
posted @ 2013-11-06 11:29 陳さん様 阅读(589) 评论(0) 推荐(0) 编辑
摘要: 通过重载CWinApp::OnFileNew()来控制具体用哪个模板: void CMyApp::OnFileNew() { m_ptDefaultTemplate->OpenDocumentFile(NULL); // 你指定的缺省模板 } 阅读全文
posted @ 2013-11-06 11:07 陳さん様 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.winu.cn/htmls/208/065/一、概述①在一个MDI程序中,需要使用到不同类型的子窗口,而每种类型窗口有可能有很多个,对应不同的数据。这时,可以使用多模板的文档视图结构。以利用文档视图结构带来的便利。②建立某种类型的MDI子窗口时,调用对应文档模板的OpenDocumentFile()而其参数LPCTSTR lpszFileName可以作为建立MDI窗口时的参数③在使用过程中,文档对象不一定要对应磁盘文件,而是根据需要定义成内部的数据结构。但MFC文档结构中,很多地方与实际文件相联系,因此,使用中,有些细节需处理。二、多文档文档模板的建立①在应用程序类 阅读全文
posted @ 2013-11-06 11:03 陳さん様 阅读(315) 评论(0) 推荐(1) 编辑
摘要: 请问如何动态决定文档/视的绑定? 如何在程序运行期间根据需要启动不同的文档/视?比如,我要启动一个编辑窗口,那么我的视从CRichEditView继承,要启动一个信息浏览时,我需要启动一个从CListView继承的视。TO: zuohuijun(流言蜚语) MFC 框架的构建顺序为: 1。CWinApp类在InitInstance中增加DocTemplate指定文档视图的关联,并且创建CFrameWnd的实例(这个实例一般说来是主窗口,而不是DocTemplate中指定的窗口类,当然,对于单文档的是这样的。); 2。在FileNew方法中DocManger创建文档的实例,以及关... 阅读全文
posted @ 2013-11-06 10:38 陳さん様 阅读(374) 评论(0) 推荐(0) 编辑
摘要: 一个文档可能对应多个视图,最典型的如股市行情数据有图形界面和表格界面两种,实现这种程序使用MDI是最直接也是最让人接受的。这里只对可能出现的问题做一下简要分析。1,如何显示两个视图首先需要定义要使用的视图类,以股市软件为例(下同),定义一个图形View和一个表格View,这是必须要做的。MDI使用文档模板来加载文档、框架窗口和视图窗口,默认的创建函数在App类的InitInstance中:CMultiDocTemplate* pDocTemplate;pDocTemplate = new CMultiDocTemplate(IDR_MY1TYPE,RUNTIME_CLASS(CMy1Doc), 阅读全文
posted @ 2013-11-06 10:36 陳さん様 阅读(307) 评论(0) 推荐(0) 编辑