MFC坐标系】的更多相关文章

MFC坐标系分为设备坐标系和逻辑坐标系两种.在设备坐标系中,一个像素表示一个单位长度,设备的原点(0,0)始终在显示平面的左上角位置,x轴正向向右,y轴正向向下. 逻辑坐标系中,原点可以放在任何一个位置,并且随着映射模式的变化,x轴,y轴方向以及缩放比例因子(一个逻辑单位的像素点数目)都会发生变化.默认映射模式下(MM_TEXT),x轴和y轴方向与设备坐标系一直,其他模式则不同. 设备坐标系表示的范围我们称之为视口,逻辑坐标系表示的范围我们称之为窗口.除此之外,我们还经常听到“用户坐标值”和“屏…
一.实验目的 1.掌握建立MFC应用程序的方法: 2.掌握映射模式. 二.实验内容 1.在MFC中绘制直尺,直尺需要有刻度,类似于日常学生使用的透明塑料直尺,需要建立四个直尺,分别分布在屏幕客户区的上.下.左.右四个边界.尺子需要有刻度,那客户区上端的尺子距离,应该有厘米.5毫米.1毫米刻度,刻度用竖线显示,长度分别为7毫米.6毫米.5毫米,外观类似于学生直尺,右端留出一公分,防止4个尺子碰在一起. 2.画出一坐标系,给出x坐标变化范围.y坐标变化范围,画出坐标轴,并在坐标轴上标出刻度.原点,要…
主要讨论映射模式:MM_ANISOTROPIC,MM_ISOTROPIC.及相关方法的应用. 1,先建立一个MFC单文档,过程不再赘述. 2,在View类中找到CMainFrame::PreCreateWindow函数,在其中设置默认窗口大小为400 pixel*300 pixel: 1 BOOL CTestView::PreCreateWindow(CREATESTRUCT& cs) 2 { 3 // TODO: 在此处通过修改 4 // CREATESTRUCT cs 来修改窗口类或样式 5…
1.在MainFrm中的PreCreateWindow中设置默认窗口大小 BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { if( !CFrameWndEx::PreCreateWindow(cs) ) return FALSE; // TODO: 在此处通过修改 // CREATESTRUCT cs 来修改窗口类或样式 //设置默认窗口大小为400pixel*300pixel cs.cx = ; cs.cy = ; return TRUE…
http://www.cppblog.com/bestcln/articles/83189.html 1 几何对象的结构和类 为了使用绘图函数,应该先了解绘图所用到的几种表示几何对象的结构和类.这些结构和类分别定义在头文件windef.h和afxwin.h中. 1.点 1)点结构POINT 点数据结构POINT用来表示一点的x.y坐标: typedef struct tagPOINT { LONG x; LONG y; } POINT; 2)点类CPoint 点类CPoint为一个没有基类的独立…
获取窗口句柄 FindWindow               根据窗口名获取 GetSafehWnd                取你程序所在窗口类的句柄 GetActiveWindow          取当前活动窗口句柄 AfxGetMainWnd            取主窗口句柄 GetForegroundWindow   取前台窗口句柄 窗口对象和CWnd对象,Attach和Detach函数 CWnd对象实际上并没有把整个Windows对象都包装在其中,它只是有一个窗口句柄.(在M…
一.关于GDI的基本概念 什么是GDI? Windows绘图的实质就是利用Windows提供的图形设备接口GDI(Graphics Device Interface)将图形绘制在显示器上. 在Windows操作系统中,动态链接库C:/WINDOWS/system32/gdi32.dll(GDI Client DLL)中定义了GDI函数,实现与设备无关的包括屏幕上输出像素.在打印机上输出硬拷贝以及绘制Windows用户界面功能.在Visual C++6.0中的头文件C:/Program Files…
>_<:这是一个时钟小程序 >_<:通过调用获得系统时间然后经过计算得出当前时间,然后再以3个圆环表示时分秒. >_<:TAO_CLOCK.h class CMyApp : public CWinApp { public: virtual BOOL InitInstance (); }; class CMainWindow : public CFrameWnd { protected: int m_nPrevSecond; int m_nPrevMinute; int…
memset void memset( void dest, int c, size_t count ); dest: Pointer to destination c: Character to set count: Number of characters 注意:这里count代表字符个数(字节数),如果为整数则为:整数个数*sizeof(int) _T与L宏 L宏为宽字节宏,无论什么环境下都能转化为宽字符,即Unicode字符: _T宏为一个适配宏,可使编译器会根据编译目标环境选择合适的(…
1.SystemParametersInfo函数可以获取和设置数量众多的windows系统参数 MFC中可以用 SystemParametersInfo(……) 函数来获取和设置系统信息,如下面例子所示,改变的是系统菜单栏的高度.示例:改变系统菜单栏的高度 NONCLIENTMETRICS ncm;ncm.cbSize = sizeof( NONCLIENTMETRICS );  //这个非常重要,否则下面函数调用将返回0,即ret=0,说明函数调用失败 int ret=::SystemPara…
1.vc使用的控件分为三类: windows标准控件--MFC对这些进行了再封装 ActiveX 控件 其他MFC控件类 2.CWind是所有窗口的基类 3.GDI也属于一种API,主要用于绘图,(Graphics Device Interface),windows系统本身也是用GDI实现的 4.常见句柄 HWND(Handle of window):窗口句柄,被MFC封装于CWnd类中 HDC (Handle of DC):设备环境句柄专门用于绘图的句柄,被MFC封装在CDC类中. 5绘图方式…
一.OpenGL简介 众所周知,OpenGL原先是Silicon Graphics Incorporated(SGI公司)在他们的图形工作站上开发高质量图像的接口.但最近几年它成为一个非常优秀的开放式三维图形接口.实际上它是图形软件和硬件的接口,它包括有120多个图形函数,"GL"是"GRAPHIC LIBRARY"的缩写,意思是“图形库”.OpenGL的出现使大多数的程序员能够在PC机上用C语言开发复杂的三维图形.微软在Visual C++ 7中已提供了三个Ope…
分为两步:OpenCV获取摄像头数据+图像在Picture上显示 第一步:OpenCV获取摄像头数据 参考:http://www.cnblogs.com/epirus/archive/2012/06/04/2535190.html http://blog.sina.com.cn/s/blog_6dbe9bdb0100nii7.html http://blog.csdn.net/augusdi/article/details/8762961 #include "stdafx.h" #in…
函数纹理(国际象棋棋盘纹理&粗布纹理)MFC实现  源码百度云下载 国际象棋棋盘纹理(效果图见最后) //国际象棋纹理函数 //g(u, v) = a , 向下取整(8u)+向下取整(8v) 为 偶数 //g(u, v) = b ,向下取整(8u)+向下取整(8v) 为 奇数 void CChessGiagView::DrawChess(double a, double b, double step) { CDC * pDC = GetDC(); //自定义二维坐标系 CRect rect; G…
Wu反走样圆 原理:参考Bresenham算法,在主位移过程中计算出离理想圆最近的两个点,赋予不同的亮度值,绘制像素点即可! MFC 中CXXXView类中添加函数: //Wu算法画反走样圆 void CMy3_4View::OnwuCir() { // TODO: Add your command handler code here yoci5 dlg;//定义对话框 对象 yoci5:对话框类 if(IDOK==dlg.DoModal()) { int y=dlg.m_R;//对话框输入半径…
Bresesnham算法绘制直线段 Bresenham算法的意义:高效的将图形光栅化.其计算过程中均采用加法运算,故大大减少了程序的开销. 绘制直线段(MFC中) //传入参数:起点.终点,颜色 void CMy3_4View::Bresenham(CPoint p0, CPoint p1, COLORREF CLR) { //自定义二维坐标系 CDC *pDC = GetDC(); CRect rect; GetClientRect(&rect); pDC->SetMapMode(MM_A…
1.GetWindowRect是取得窗口在屏幕坐标系下的RECT坐标(包括客户区和非客户区),这样可以得到窗口的大小和相对屏幕左上角(0,0)的位置. 2.GetClientRect取得窗口客户区(不包括非客户区)在客户区坐标系下的RECT坐标,可以得到窗口的大小,而不能得到相对屏幕的位置,因为这个矩阵是在客户区坐标系下(相对于窗口客户区的左上角)的. 3.ClientToScreen把客户区坐标系下的RECT坐标转换为屏幕坐标系下的RECT坐标. 4.ScreenToClient把屏幕坐标系下…
一.简介 GDI是通过设备句柄(Device Context以下简称"DC")来绘图,而OpenGL则需要绘制环境(Rendering Context,以下简称"RC").每一个GDI命令需要传给它一个DC,但与GDI不同,OpenGL使用当前绘制环境(RC).一旦在一个线程中指定了一个当前RC,在此线程中其后所有的OpenGL命令都使用相同的当前RC.虽然在单一窗口中可以使用多个RC,但在单一线程中只有一个当前RC.下面我将首先产生一个OpenGL RC并使之成为…
MFC中提供了CString的类,可以用在一切使用字符串的地方.可以完美取代const char* 或者 LPCTSTR(经常在WinAPI)中传递参数.并且如果需要通过空间进行字符串的数据传递DDX机制,则必须通过CString类型传递. 使用编辑框控件 添加对话框上的编辑框下的控件类型,通过如下类向导的方式:将控件ID与控件类型的成员变量关联.在类别中定义的是空间类别,或者是值类别.注意如果是值类别的时,则需要定义如果使用string类型,则必须使用CString类型.…
MFC中的窗口控件,都是从CWnd类中继承的.MFC以及ResourceEditor支持的所有控件称为标准控件. 在对话框资源文件夹下,然后邮件新建添加新对话框,新建对话框后要在资源视图中的对话框文件夹下修改对话框的ID .添加新对话框资源后保存,在添加类向导,MFC则自动弹出“类定义”向导,将新生成的类与新创建的对话框资源相关联的向导.在类向导中可以定义生成的类头文件与定义文件的物理位置,这样可以在物理存储层面对代码进行管理.注意在.cpp .h文件修改时,需要(1)添加引用目录的形式,或者(…
Window消息可以分为三类:(1)标准Window消息(CWnd子类处理),(2)控制通知消息(CWnd子类处理),(3)命令消息(应用中的5类都可以).所有派生自CCmdObjec对象的类都可以处理Windows消息. (1)前缀以“WM_  ”开头,但是WM_COMMAND消息除外.如窗口重回WM_PAINT,WM_QUIT (2)WM_COMMAND消息,窗口上的各种空间发出的消息 (3)WM_COMMAND消息,只是指控制界面发出的消息,如菜单项与工具栏的按钮操作.MFC为“标准菜单”…
MFC技巧学习 摘自:http://www.cnblogs.com/leven20061001/archive/2012/10/17/2728023.html 1."属性页的添加:创建对话框的类,该类要从CpropertyPage继承: 然后在要添加该对话框为属性页的类(头文件)里创建CpropertySheet类的一个对象m_tabsheet和新创建的对话框类的对象m_skatch: 最后,在.cpp文件里的OnInitDialog()之类的函数里实现如下代码: { m_tabsheet.Cr…
如何在MFC创建的程序中更改主窗口的属性 摘自:http://blog.sina.com.cn/s/blog_4bebc4830100aq1m.html 在MFC创建的单文档界面中: (基于对话框的,直接在对话框的类向导中的虚函数里边添加PreCreateWindow函数,但是实际上有没有用就没有试过.望试验的告知,谢谢.) 在CMainFrame::PreCreateWindow(CREATESTRUCT& cs)中添加下面的代码可以固定窗口大小 cs.style = WS_OVERLAPPE…
Document/View是MFC的基石,负责程序数据的管理和显示,Doculent和Viewd的关系有一档一视,一档多视和多档多视,下面将分别对实现过程中的重点知识进行总结. 1. 视图的同步更新 2. 序列化和反序列化 3. 双缓存绘图 4. CSplitterWnd视图切割 5. 映射模式(SetMapMode) 6. 使用CMDIFrameWnd::OnWindowNew实现多视图显示 7. 多重文件类型 1. 视图的同步更新 UpdateAllViews----->OnUpDate--…
使用VTK嵌入MFC,实现四视图更新,机制和细节参考原文. 原文链接:http://blog.csdn.net/www_doling_net/article/details/8939115 原文代码: #pragma once #include <vtkResliceCursor.h> #include <vtkResliceCursorWidget.h> #include <vtkPlane.h> #include <vtkPlaneSource.h> #…
虽然QT才是王道!MFC的懂一些也是好的. 原文链接:http://blog.csdn.net/www_doling_net/article/details/8939115 之前介绍了基于VTK的单文档应用程序开发,并以图像重采样为例,实现了一个简单的图像重采样的应用程序.对于多文档应用程序,与单文档应用程序基本一致,这里就不再讲述.对话框应用程序是MFC应用程序中一个使用非常广泛的框架,本节就以医学图像可视化中常用的四视图框架程序的实现为例,讲述基于VTK的对话框应用程序开发. 1.  利用V…
·MFC中三种坐标系统: 1.屏幕坐标系 坐标原点位于屏幕左上角 2.(非客户区)窗口坐标系 坐标原点位于窗口左上角(包括标题栏) 3.客户区坐标系 坐标原点位于客户区左上角(不包括标题栏) ·坐标系转换函数 ScreenToClient ClientToScreen ////////////////////////////////// MoveWindow函数改变窗口的位置,对于顶级窗口,移动的原点位于屏幕左上角,对于子窗口,移动的原点位于父窗口的客户区左上角. ·获取几种设备上下文,管理窗口…
从类CCmdTarget派生出绝大多数MFC中的类,其层次结构如下图: 从根类Cobject层层派生出绝大多数MFC中的类,层次结构如下图: MFC中重点类: CObject类是MFC的绝大部分类的基类.该类完成动态空间的分配与回收,支持一般的对象诊断.运行时类型标识,出错信息处理和文档序列化等. (1)对象诊断:利用成员函数AssertValid进行对象有效性检查:利用成员函数Dump输出对象的数据成员的值,诊断信息以文本形式放入一个数据流中,用于调试器的输出窗口信息显示.(只能用于Debug…
原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/13115873.html 第一步 下载PCL库  我的版本是1.8.1的 你都要MFC下跑PCL了 你不会不知道怎么下载吧 ( 不会吧  不会吧  不会有人真的不知道怎么下载吧...) 第二步 新建一个MFC对话框程序(这个不要人教的把 ) 打开VS2017 新建项目-MFC应用程序-基于对话框 第三步 配置PCL 点开属性管理器 debugx64下新建一个属性页命名PCL_ALLINONE …
前言 在我的另一篇博文 Canvas坐标系转换 中,我们知道了所有的平移缩放旋转操作都会影响到画布坐标系.那在我们对画布进行了一系列操作之后,怎么再知道当前矩阵数据状态呢. 具体代码 首先请看下面的一段代码(下文具体解释代码作用): window.TrackTransform = function () { var svg = document.createElementNS("http://www.w3.org/2000/svg", 'svg'); var xform = svg.c…