MFC坐标问题】的更多相关文章

逻辑坐标:使用GDI绘图时使用的坐标系 设备坐标系:实际设备(显示器.打印机)的坐标系,即我们实际看到的坐标系. 坐标空间 在Windows NT/2000中Win32 API中支持以下四层坐标空间: 世界坐标空间:引入World是为了对图像进行平移.缩放.剪切等操作,最大范围为232个单位高和232个单位宽,初始时X轴正向向右,Y轴正向向上,World坐标空间可以成为逻辑空间. 页面坐标空间(Page坐标空间):当没有World坐标空间时,它就是逻辑空间,最大范围是232高和宽.初始时,X正向…
页面空间中的矩形被称为窗口,设备空间中的矩形被称为视口. 页面空间与设备空间的转换示意图: 页面空间到设备空间的转换需要两个矩形的宽高比(转换因子). 设备空间到物理空间转换的唯一作用是平移,并由Windows的窗口管理部分控制. 几乎所有的GDI函数采用的坐标是逻辑坐标.windows必须将逻辑单位转换为设备单位,即像素. Windows对所有的消息和非GDI函数采用设备坐标. Windows默认的映射方式为MM_TEXT,它的逻辑单位和设备单位相同.SetMapMode函数可改变映射方式.…
C#基础教程 第一章       C#语言基础 本章介绍C#语言的基础知识,希望具有C语言的读者能够基本掌握C#语言,并以此为基础,能够进一步学习用C#语言编写window应用程序和Web应用程序.当然仅靠一章的内容就完全掌握C#语言是不可能的,如需进一步学习C#语言,还需要认真阅读有关C#语言的专著. 1.1      C#语言特点 Microsoft.NET(以下简称.NET)框架是微软提出的新一代Web软件开发模型,C#语言是.NET框架中新一代的开发工具.C#语言是一种现代.面向对象的语…
原文:MFC中状态栏显示鼠标坐标位置,蝈蝈 1,利用MFC向导创建一个应用工程ewq. 2,打开ResourceView,右击Menu菜单,插入Menu,在空白处双击,Caption中填入Point. 3,为Point设置下拉菜单,ID为ID_INDICATOR_POINT:Caption为point:Prompt为X:XXXX,Y:YYYY. 4,打开MainFrm.cpp,在indicators数组中的第二个位置添加ID_INDICATOR_POINT. 5,将MainFrm中的成员变量m_…
摘自DoubleLi:   http://www.cnblogs.com/lidabo/archive/2012/08/24/2654678.html mfc控件位置调整和坐标确定 http://my.oschina.net/u/131904/blog/39804 在mfc工程中控件或者窗口位置的调整是经常遇到的,特别是基于对话框的工程.位置的调整包括坐标.长度和宽度的变化,一般在窗口类的OnSize函数中实现.控件位置的调整涉及的函数有:GetWindowRect().ScreenToClie…
int x11=495;                                        int y22=600;                                        LPARAM lparam111 = MAKELPARAM(x11,y22); //x坐标,y坐标                                        Sleep(100);                                        LRESUL…
本文仅用于学习交流,商业用途请支持正版!转载请注明:http://www.cnblogs.com/mxbs/p/6216464.html MFC画线功能要点有二:其一,鼠标按下时记录初始位置为线的起始端点,其二,利用不同的方法实现画线.下面着重学习总结画线功能实现方法. 在OnLButtonDown函数中记录起始端点,CPoint m_ptOrigin = point; 在OnLButtonUp函数中实现画线.方法如下: 画线方法一:利用SDK全局函数实现视图窗口画线功能 //获取设备描述表 H…
近期在忙一个小项目(和同学一起搞的),在这里客户要求不但读写txt,而且可以读写excel文件,这里本以为很简单,结果...废话少说,过程如下: 笔者环境:win7 64+VS2012+Office2013+MFC. 说明:读写excel文件,通常包括1.ODBC数据库实现;2.通过解析Excel表格文件;3.通过OLE/COM的几种实现方法.本文主要研究通过OLE/COM实现对Excel表格的操作. 步骤: 1.新建MFC对话框.注意勾选自动化,否则后面加入不了需要的库,导致启动服务失败等错误…
最近在学MFC,看的是孙鑫的VC++视频,感觉还不错.在看到第九节课的时候,讲到工具栏的时候,做了个小功能:工具栏的隐藏和显示,但是有个bug就是一个悬浮的工具栏隐藏后再显示,就会变成停靠状态.这里我又把工具栏的隐藏与显示又实现了一遍,去掉了这个bug,做到跟MFC中自带的菜单栏中视图->工具栏菜单项一样的功能. 其实,关于工具栏的隐藏与显示问题,只需要考虑三种状态:(1)在停靠状态下工具栏的显示与隐藏:(2)在悬浮状态下工具栏的显示与隐藏:(3)在悬浮状态下,通过点击关闭按钮去关闭工具栏,然后…
GetClientRect(HWND, RECT*) ---得到窗口的客户区大小,left,top总是0,bottom是客户区高度,right是客户区宽度 GetWindowRect(HWND, RECT*) ---得到窗口相对屏幕左上角(0,0)的坐标,即窗口左上角(left,top)和右下角(right,bottom)的坐标 ScreenToClient(HWND, POINT*) ---将一屏幕坐标转为相对于窗口客户区左上角的坐标.假设客户区屏幕坐标(110,120,400,400) 若p…
1.3.4 绘制窗口 如何在屏幕上随心所欲的进行绘制?应用程序通过响应来自Windows的WM_PAINT消息进行绘制的,此消息通知它更新窗口. WM_PAINT消息如何发生:窗口位置改变:窗口大小改变:窗口显示部分改变等. 应用程序通过响应WM_PAINT消息绘制其窗口的客户区.在该例程中,WM_PAINT消息由CMainWindow::OnPaint来处理,每一个WM_APINT消息到来时都会调用它.OnPaint的主要工作就是在窗口客户区中央位置绘制文本. 绘制文本是通过构造一个名为dc的…
MFC 设计界面程序总是不够智能,没有这样,没有那样. 今天为了加强mfc功能,设计了一个自动布局的类,使用非常简单. 原理: 每个控件都有一个矩形区域,矩形区域就是控件在对话框中的显示位置和大小, 通过矩形的四个顶点,控制控件的布局, 在mfc中OnSize()函数在对话框大小变化时被调用,所有每次对话框大小变化时, 我们重新计算对控件的矩形坐标,然后移动到新的坐标,实现控件自动布局. 效果: 1.原始界面: 2.改变对话框大小后界面: 接口: /** * @brief Init the re…
树形控件可以用于树形的结构,其中有一个根接点(Root)然后下面有许多子结点,而每个子结点上有允许有一个或多个或没有子结点.MFC中使用CTreeCtrl类来封装树形控件的各种操作.通过调用BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );创建一个窗口,dwStyle中可以使用以下一些树形控件的专用风格: TVS_HASLINES 在父/子结点之间绘制连线TVS_LINESATROOT 在根/子结…
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为一个没有基类的独立…
MFC控件的SubclassDlgItem 要在程序中创建新设计的控件,显然不能用自动创建的办法,因为对话框模板对新控件的特性一无所知.程序可以用手工方法创建控件,在调用派生类的Create函数时,派生类会调用基类的Create函数创建控件.用Create函数创建控件是一件比较麻烦的工作,程序需要为函数指定一大堆的控件风格以及控件的坐标和ID.特别是控件的坐标,没有经验的程序员很难确切地安排控件的位置和大小,往往需要反复调整.利用MFC的CWnd::SubclassDlgItem提供的动态连接功…
获取窗口句柄 FindWindow               根据窗口名获取 GetSafehWnd                取你程序所在窗口类的句柄 GetActiveWindow          取当前活动窗口句柄 AfxGetMainWnd            取主窗口句柄 GetForegroundWindow   取前台窗口句柄 窗口对象和CWnd对象,Attach和Detach函数 CWnd对象实际上并没有把整个Windows对象都包装在其中,它只是有一个窗口句柄.(在M…
对比MFC资源文件谈谈WPF布局方式 MFC方式 对于传统的MFC基于UI的应用程序设计通常分两步走,首先是设计UI,使用的是RC文件,然后是代码文件,对RC文件进行操作,如下面Figure 1 的基于对话框的应用程序,其对应的代码如Figure 2所示,这就是MFC时代的所见即所得,如大家所见,每个控件的代码都和位置都是写死的坐标,这样会带来的问题是当你改变系统运行的的DPI或者软件需要支持本地化的时候,由于有的语言对于同样的意思需要比较长的文字表示,就会带来文字显示不下或者显示不完整的情况.…
一.关于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…
引用:http://www.cnblogs.com/rainbowzc/archive/2010/06/02/1749872.html 本文专题讨论VC中的界面美化,适用于具有中等VC水平的读者.读者最好具有以下VC基础: 1. 大致了解MFC框架的基本运作原理: 2. 熟悉Windows消息机制,熟悉MFC的消息映射和反射机制: 3. 熟悉OOP理论和技术: 本文根据笔者多年的开发经验,并结合简单的例子一一展开,希望对读者有所帮助. 1. 美化界面之开题篇 相信使用过<金山毒霸>.<瑞…
引用:http://www.cnblogs.com/chinazhangjie/archive/2011/09/20/2181986.html 正文: 第一讲 Win32 App  和  MFC Framework Win32 App 程序生与死:(1)注册窗口(2)创建窗口(3)显示并更新窗口(4)消息循环( WM_QUIT 结束循环)(5)退出 实例代码: #include <windows.h> ATOM RegisterWndClass( HINSTANCE hInstance , L…
转载自:xntop的<区别MFC中的CClientDC.CWindowDC.CPaintDC.CMetaFileDC> CClientDC及其子类 1. CClientDC类只能在客户区绘图:2. 所谓客户区指窗口区域中去掉边框.标题栏.菜单栏.工具栏.状态栏等之外的部分,它是用户可以操作的区域:3. 在使用CClientDC进行绘图时,一般要调用GetClientRect()函数来获取客户区域的大小:4. CClientDC类在构造函数中调用Windows API函数GetDC(),在析构时…
打开VS 创建MFC基于对话框的工程,在对话框初始化方法中动态创建一个按钮实例: 1> CButton *pMyButton = new CButton();CEdit *pMyEdit = new DEdit; 2>pMyButton->Create(_T("ButtonName"),WS_CHILD|WS_VIVIBLE_BS_PUSHBUTTON,CRect(10,20,80,80),this,IDC_MYBUTTON); pMyButton->Creat…
为对话框添加WM_MOUSEHOVER或WM_MOUSELEAVE消息并不会响应.MFC需要特殊处理,其中一法就是使用TRACKMOUSEEVENT void CmfcDlgDlg::OnMouseMove(UINT nFlags, CPoint point) { // TODO: 在此添加消息处理程序代码和/或调用默认值 //GetDlgItem(IDC_BUTTON)->SetWindowText("Move"); if (!m_bTracking) { TRACKMOUSE…
弄了好久,今天终于把在VC中的对话框类之间传递参数的问题解决了,很开心,记录如下: 1. 我所建立的工程是一个基于MFC对话框的应用程序,一共有三个对话框,第一个对话框为主对话框,所对应的类为CTMDDDlg类.在主对话框上我放置了一个标签页(Tab Control)控件,其实现的功能是当单击标签提示A时进入页面A,即对话框A(所对应的类为CDialogChild1),单击B时进入对话框B(CDialogChild2). 整个工程的框架已经设计好了,在对话框A和对话框B上放置了许多控件,现在我想…
>_<:Here are the template of mini-MFC include: CPen,CBrush,Front,Paint Line and some other graph. OnPaint message,OnLeftButtonDown message,you can through it know more Hello.h #include<afxwin.h> class CMyApp:public CWinApp { public: virtual BO…
>_<:这里包含字体设置及各种绘图,只要稍微看一下代码就能理解,这里不多介绍 >_<:Hello.h #include<afxwin.h> class CMyApp:public CWinApp { public: virtual BOOL InitInstance(); }; class CMainWindow:public CFrameWnd { public: CMainWindow(); protected: afx_msg void OnPaint(); af…
朋友用QT做了个自动玩的,觉得有意思,自己也想用MFC做个试试. 模拟器用的BlueStacks.Android SDK带的那个模拟器不知道是不是设置的问题,开游戏很卡. 用MFC建了对话框工程,配置极简化. 1.控制鼠标移动 SetCursorPos(x1, y1);//设置鼠标位置 mouse_event(MOUSEEVENTF_LEFTDOWN, , , , );//左键按下 SetCursorPos(x2, y2);//设置鼠标位置 mouse_event(MOUSEEVENTF_LEF…
MFC函数之BitBlt // Cgame123View 绘制 void Cgame123View::OnDraw(CDC* pDC) { Cgame123Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; // TODO: 在此处为本机数据添加绘制代码 CRect Rect; GetClientRect(&Rect); //屏幕宽度 width = Rect.right - Rect.left; //屏幕高度 he…
http://www.cnblogs.com/lzmfywz/archive/2012/03/15/2399403.html 一.MFC类库概述 MFC(Microsoft Foundation class)微软基本类(库),有时候也有人叫做微软基本类库,因为它确实是一个类库(物理上讲),而且非常庞大:它也是一个面向对象的应用程序架构(逻辑上),程序员利用它可以很方便搭建应用程序框架.MFC结合了面向对象的编程技术和WINDOWS消息驱动的编程技术,并封装了WIN32API,其设计好处:消除了W…
MFC类的分类 1 Root: CObject : CObject2 Application Architecture Classes: CWinApp/CFrameWnd/... 3 Window, Dialog, and Control Classes:CWnd/CDialog/...4 Drawing and Printing Classes : CGdiObject/CPrintInfo/...5 Simple Data Type Classes :CString/CRect/...6 …