摘要: Windows应用程序绘制图形时使用的是一种逻辑单位,每个逻辑单位的大小由映射模式决定, 这个逻辑单位既可以与设备单位(屏幕或打印机上的一个像素点)相同,也可以是一种物理单 位(如毫米),还可以是用户自定义的一种单位。在Windows应用程序中,只要与输出有关系,都 要使用映射模式。本文的目的是帮助读者了解映射模式的一些基本知识,并对在使用中经常 出现的一些问题提出解决方案。一、映射模式基本知识当Windows应用程序在其客户区绘制图形时,必须给出在客户区的位置,其位置用x和y 两个坐标表示,x表示横坐标,y表示纵坐标。在所有的GDI绘制函数中,这些坐标使用的是一 种"逻辑单位&qu 阅读全文
posted @ 2014-01-14 17:32 陳さん様 阅读(488) 评论(0) 推荐(0) 编辑
摘要: 我们知道一个窗体建立的过程.首先注册一个wndClass的结构体.然后才是用createWindow函数来建立窗体.现在有个问题了,我们想知道我们建立的wndClass结构体是否已经注册了,怎么办?GetClassInfo就是用来解决这个问题的.先看msdn中的东西.TheGetClassInfofunction retrieves information about a window class.这个函数返回一些信息关于某个windowClassNote TheGetClassInfofunction has been superseded by theGetClassInfoExfunct 阅读全文
posted @ 2014-01-14 17:26 陳さん様 阅读(2522) 评论(0) 推荐(0) 编辑
摘要: 1,回调函数工作机制回调函数由操作系统自动调用,回调函数的返回值当然也是返回给操作系统了。2,截获操作系统发出的消息,截获到后,将另外一个消息返回给操作系统,已达到欺骗操作系统的目的。下面还是以具体例子来说明比较好。在 Windows下,每一个鼠标消息都是由 WM_NCHITTEST 消息产生的,这个消息的参数包含了鼠标位置的信息。通常情况下,要把这个消息直接交给 DefWindowProc 函数处理,该函数会返回一个值来告诉 Windows 鼠标按下的是窗口的哪一部分。Windows 利用这个返回值来决定要发送的鼠标消息的类型。例如,如果用鼠标左键单击窗口的标题栏,处理WM_NCHITTES 阅读全文
posted @ 2014-01-14 10:12 陳さん様 阅读(618) 评论(0) 推荐(0) 编辑
摘要: VC中在对话框上使用Rich Edit控件相关问题1.设置edit只读属性 方法一: m_edit1.SetReadOnly(TRUE); 方法二: ::SendMessage(m_edit1.m_hWnd, EM_SETREADONLY, TRUE, 0);2.判断edit中光标状态并得到选中内容(richedit同样适用) int nStart, nEnd; CString strTemp; m_edit1.GetSel(nStart, nEnd); if(nStart == nEnd) { strTemp.Format(_T("光标在%d"), nStart); Af 阅读全文
posted @ 2013-11-11 14:06 陳さん様 阅读(554) 评论(0) 推荐(0) 编辑
摘要: MFC支持两种类型的拆分窗口:静态的和动态的。静态拆分窗口的行列数在拆分窗口被创建时就设置好了,用户不能更改。但是用户可以缩放各行各列。一个静态拆分窗口最多可以包含16行16列。要找一个使用了静态拆分窗口的应用程序,只要看一下windows管理器即可。动态拆分窗口最多可以有两行两列,但它们可以相互拆分和合并。Vc就使用了动态拆分窗口使得可以同时编辑源程序文件的两个以上不同的部分。选择静态或动态拆分的一个准则是是否希望用户能够交互地修改拆分窗口的行列配置。另一个决定因素是计划在拆分窗口中使用的视图种类。在静态拆分窗口中很容易使用两个以上不同种类的视图,因为您可以在每个窗格中指定所用的视图类型。但 阅读全文
posted @ 2013-11-11 14:03 陳さん様 阅读(8985) 评论(0) 推荐(0) 编辑
摘要: 在这里,我想谈谈自己学习MFC的一些体会。我是从1997年才开始在Window下编写程序的。在这之前,我编写过一些DOS程序,包括一个简单的全屏幕编辑器和一个带函数的表达式解释器,都是一些小的程序。Window 3.1流行后,我开始在它下面编写程序。从编写DOS程序到编写Window程序,需要从编程思想上作一个比较大的调整。在DOS下编写程序,程序的总体流程完全由应用程序自己控制;但在Window下,程序的总体流程是由操作系统控制的,这一点对在DOS下“胡作非为”的DOS程序员而然,特别不习惯,思想上一时很难转过弯来,总觉得操作系统所控制的应用程序流程能够满足我们所提出的任意要求吗?万一某个应 阅读全文
posted @ 2013-11-08 16:01 陳さん様 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 最近在做实验室项目的时候需要在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) 编辑