发现GetClientRect()函数取值不正确,特此找来了些资料以供参考,具体如下,就可以明白怎么回事了. 一:关于坐标 MFC中绘图时经常涉及到坐标计算,GetWindowRect和GetClientRect这两个函数,是获取逻辑坐标系中窗口或控件(其实也是窗口)大小和坐标的常用函数了,有什么不一样的? 先说说什么叫逻辑坐标?讲到逻辑坐标,它相对的一个概念是设备坐标,是为了屏蔽掉不同设备属性差别而设置的抽象坐标系,说白了,就是独立于设备坐标的统一接口,程序员不需要去在具体的设备上进行绘图操作…
一:关于坐标 MFC中绘图时经常涉及到坐标计算,GetWindowRect和GetClientRect这两个函数,是获取逻辑坐标系中窗口或控件(其实也是窗口)大小和坐标的常用函数了,有什么不一样的? 先说说什么叫逻辑坐标?讲到逻辑坐标,它相对的一个概念是设备坐标,是为了屏蔽掉不同设备属性差别而设置的抽象坐标系,说白了,就是独立于设备坐标的统一接口,程序员不需要去在具体的设备上进行绘图操作,而只需要在虚拟的环境下进行绘图,就是CDC. 然后由设备驱动去负责虚拟坐标到实际设备坐标之间的转换.通常逻辑…
一:关于坐标 MFC中绘图时经常涉及到坐标计算,GetWindowRect和GetClientRect这两个函数,是获取逻辑坐标系中窗口或控件(其实也是窗口)大小和坐标的常用函数了,有什么不一样的? 先说说什么叫逻辑坐标?讲到逻辑坐标,它相对的一个概念是设备坐标,是为了屏蔽掉不同设备属性差别而设置的抽象坐标系,说白了,就是独立于设备坐标的统一接口,程序员不需要去在具体的设备上进行绘图操作,而只需要在虚拟的环境下进行绘图,就是CDC. 然后由设备驱动去负责虚拟坐标到实际设备坐标之间的转换.通常逻辑…
GetWindowRect 函数功能:该函数返回指定窗口的边框矩形的尺寸.该尺寸以相对于屏幕坐标左上角的屏幕坐标给出. 函数原型:BOOL GetWindowRect(HWND hWnd,LPRECTlpRect): 在Visual Studio 2005中,函数原型为void GetWindowRect(LPRECT lpRect) const; 是属于CWnd类的函数. 参数: hWnd:窗口句柄. lpRect:指向一个RECT结构的指针,该结构接收窗口的左上角和右下角的屏幕坐标. 返回值…
由于项目需要,需要学习CGridCtrl控件的使用,测试控件时发现了一个问题,我无法将控件放在对话框的制定位置. 该问题的原因很容易发现,其实就是GetWindowRec()函数和GetClientRect()函数在不同情况下返回的Rect含义不同,以及CWnd::Create()函数的特性造成的. 目的 在Dialog上创建一个CGridCtrl控件,控件的位置由一个PictureBox控件(拖动到对话框模板上的控件)决定,即在PictureBox控件的位置上创建一个与其大小相同的CGridC…
GetWindowRect是取得窗口在屏幕坐标系下的RECT坐标(包括客户区和非客户区),这样可以得到窗口的大小和相对屏幕左上角(0,0)的位置. GetClientRect取得窗口客户区(不包括非客户区)在客户区坐标系下的RECT坐标,可以得到窗口的大小,而不能得到相对屏幕的位置,因为这个矩阵是在客户区坐标系下(相对于窗口客户区的左上角)的. 用GetClientRect返回的RECT结构上左为零, 右下分别对应客户区的宽度和高度; ScreenToClient把屏幕坐标系下的RECT坐标转换…
GetWindowRect是取得窗口在屏幕坐标系下的RECT坐标(包括客户区和非客户区),这样可以得到窗口的大小和相对屏幕左上角(0,0)的位置. GetClientRect取得窗口客户区(不包括非客户区)在客户区坐标系下的RECT坐标,可以得到窗口的大小,而不能得到相对屏幕的位置,因为这个矩阵是在客户区坐标系下(相对于窗口客户区的左上角)的. 用GetClientRect返回的RECT结构上左为零, 右下分别对应客户区的宽度和高度; ScreenToClient把屏幕坐标系下的RECT坐标转换…
1.SystemParametersInfo函数可以获取和设置数量众多的windows系统参数 MFC中可以用 SystemParametersInfo(……) 函数来获取和设置系统信息,如下面例子所示,改变的是系统菜单栏的高度.示例:改变系统菜单栏的高度 NONCLIENTMETRICS ncm;ncm.cbSize = sizeof( NONCLIENTMETRICS );  //这个非常重要,否则下面函数调用将返回0,即ret=0,说明函数调用失败 int ret=::SystemPara…
拖动是界面编程频繁使用的一个效果,在windows系统下可谓大行其道.纵观时下的应用软件几乎各个都支持各种各样拖动的效果,windows7更是把拖动做到了极致.其实说起来拖动的实现也很简单,对于有句柄的对象都可以通过MoveWindow或SetWindowPos实现位置变动,而没有句柄的对象实现拖动无非就是做些参数修改,说到底实现拖动就是在OnLButtonDown.OnMouseMove和OnLButtonUp中处理数据,当然你可以使用鼠标右键甚至中建消息来实现,基本原理是一样的.     …
菜单控制为什么即使调用EnableMenuItem菜单项后,菜单项还处于禁止状态 需要将CFrameWnd:: m_bAutomenuEnable设置为FALSE,如果该数据成员为TRUE(缺省值),工作框将自动地禁止没有ON_UPDATE_COMMAND_UI或者ON_COMMAND的菜单项. //Disable MFC from automatically disabling menu items. m_bAuoMenuEnable=FALSE; //Now enable the menu…
[出处:blog.csdn.net/lanmanck] 一般变控件位置和大小在OnSize()消息中处理,不外乎几个函数: GetClientRect(),GetClientRect(),ScreenToClient(),MoveWindow().今天说下这几个函数用法. 假设有一个窗体,Dialog1,上面有一个Edit和一个Button,我们希望窗口大小改变时,Edit大小跟着变,最好铺满整个窗口,除了Button:而Button大小不变,但是位置要变. GetWindowRect() 得到…
窗口处理 2.1 窗口简介 2.2.1 创建普通窗口(CreateWindow.CreateWindowEx) 2.2.2 关闭窗口(CloseWindow) 2.2.3 销毁窗口(DestroyWindow) 2.3 窗口之间的关系 2.3.1 父子关系(SetParent.GetParent.IsChild) 2.3.2 遍历窗口(EnumWindow.EnumWindowProc.EnumChildWindows.EnumChildProc) 2.3.3 获取指定的子窗口(ChildWin…
问题描述:如在摄像头显示时,关闭摄像头,此时Picture控件仍然显示最后一帧图像,需要刷新掉,还原Picture控件.或者重复显示两张不同大小的图片时,第二张背景有第一张图片残留. 解决方法1:(最笨的方法) 用对话框背景色来填充控件, CRect rect; GetDlgItem(IDC_ShowImage)->GetClientRect(&rect); GetDlgItem(IDC_ShowImage)->GetDC()->FillSolidRect(&rect2,…
WinSpy涉及的windows api WinSpy是仿造微软Spy++的开源项目,但只涉及Spy++的窗口句柄.窗口的属性.styles.类名子窗口.进程线程信息等查找功能.功能虽然不算强大,但涉及到很多windows api,是了解windows api的一个有用工具.WinSpy界面截图如下: 1:拖拽瞄准镜图标获取窗口的HWND 核心api:ClientToScreen.WindowFromPoint.EnumChildWindows.GetParent.GetWindowLong.S…
(1) 如何通过代码获得应用程序主窗口的 指针?主窗口的 指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现.AfxGetMainWnd() ->ShowWindow(SW_SHOWMAXMIZED)//使程序最大化. (2) 确定应用程序的路径Use GetModuleFileName 获得应用程序的路径,然后去掉可执行文件名.Example:TCHARexeFullPath[MAX_PATH] // MAX_PATH在API中定义了吧,好象是128G…
利用MFC开发用户界面往往需要需要根据要求进行界面美化,界面的美化包括很多内容,比如说界面各功能模块空间布局,控件位置选择,各功能模块区域的字体.背景颜色选择.添加位图,标题栏.菜单栏.状态栏等的重绘等等.总的来说,界面美化包括客户区和非客户区,本文主要结合本人的第一个MFC软件界面开发项目的经验教训,简要介绍MFC单文档应用程序界面非客户区的重绘,主要包括标题栏和菜单栏. 重绘标题栏和菜单栏可以从以下几方面考虑:1. 自行绘制的标题栏和菜单栏覆盖默认的标题栏和菜单栏:2.相应的控件(最大.最小…
c#的任务栏托盘图标控件NotifyIcon只有MouseMove事件,MouseMove事件刷新很快,很不好用,而且我们有时需要鼠标进入和离开的事件,但是不知道c#怎么回事,没有提供,那么就只能自己来处理了. 解决鼠标进入和离开的思路是: 1.通过MouseMove事件确定当前鼠标已经进入托盘图标的范围 2.进入后启动检测timer 3.定时检测托盘图标的位置和当前鼠标的位置,判断鼠标是否在托盘图标的范围内 主要难点:获取当前托盘图标的位置 获取托盘图标位置的思路: 1.查找到托盘图标所在的窗…
CWnd.GetWindowRect 参照坐标系:屏幕坐标系,原点为屏幕左上角(0,0)的位置 功能:取得调用窗口CWnd在屏幕坐标系下的RECT坐标 CWnd.GetClientRect 参照坐标系:CWnd窗口的客户区坐标系,原点为客户区左上角(0,0)的位置 功能:取得窗口在自己的客户区(不包括非客户区)坐标系下的RECT坐标,可以得到窗口的大小,而不能得到相对屏幕的位置 CWnd.ScreenToClient() 参照坐标系:CWnd窗口的客户区坐标系,原点为客户区左上角(0,0)的位置…
GetClientRect()   是得到客户区坐标系下客户区的RECT GetWindowRect()是得到屏幕坐标系下整个窗口的RECT GetSystemMetrics()是获得屏幕分辨率大小 根据不同参数: int width = GetSystemMetrics ( SM_CXSCREEN );  int height= GetSystemMetrics ( SM_CYSCREEN ); 分别获得屏幕的宽和高. int width = GetSystemMetrics ( SM_CXV…
CWnd* pWnd = GetDlgItem(IDB_BUT_RECOGNIZE); pWnd->GetClientRect(&rect);   //指该控件自身客户区的矩形,原点为控件左上角,长宽为整个控件的尺寸 ClientToScreen(&rect);    // 坐标原点从控件所属窗口客户区移动到屏幕左上角,长宽为整个控件的尺寸,相当于把控件放在它所属的客户区的左上角时,在屏幕坐标系中的位置 pWnd->GetWindowRect(&rect);   //该…
这篇文章总结的是我在使用resizable插件的过程中,遇到的问题及变通应用的奇思妙想. 一.resizable使用注意事项 以下是我在jsfiddle上写的测试demo:http://jsfiddle.net/pLuymmp1 <div class="J_outer outer"> <div class="J_inner inner"></div> </div> html .outer{width:100px;bor…
Windows Server 2012 NIC Teaming介绍及注意事项 转载自:http://www.it165.net/os/html/201303/4799.html Windows Server 2012 NIC Teaming 也称作 负载平衡/故障转移 (LBFO).主要功能就是带宽聚合,负载均衡以及故障转移.Windows Server 2012 首次内置了这个功能,所以配置NIC Teaming不再需要网卡厂商的驱动程序上配置.具体就不多说了,想必大家都已经有所了解.直接进入…
TODO:Golang指针使用注意事项 先来看简单的例子1: 输出: 1 1 例子2: 输出: 1 3 例子1是使用值传递,Add方法不会做任何改变:例子2是使用指针传递,会改变地址,从而改变地址. 在看例子3: 输出: map[a:aa b:bb] map[b:world a:hello] 发现什么了,TestMap前面没有加*,没有用指针,怎么也会改变值呢?因为map提供键值功能,用起来像指针引用的类型.类似这种功能的类型还有,数组切片,channel,interface.Go语言包这种指针…
我们见过很多创业者,栽在这app外包上.很多创业者对于app外包这件事情不是特别重视,以为将事情交给app外包公司就完事了,实际上不是的.无论是从选择app外包公司还是签订合同.售后维护等各方面都有许多地方需要注意的.下面51开发app官网(外包潜规则揭秘网)将创业者在 app开发外包上容易犯的错误一一列举出来. ◆ 以为开发一个app软件和简单,自己需求不明确就开始让app外包公司开发了,若你找的app外包公司是不负责任的,那么你悲剧就开始了 ◆ 在需求没有明确之前急着要报价.这是一个常见的错…
1.效果 2.使用引入方法 2.1 注意事项:(把图标命名为favicon.ico,并且放在根目录下,同时使用Link标签,多重保险) 浏览器默认使用根目录下的favicon.ico 图标(如果你并没有添加html-->link-->href,也会默认的去获取一下) 新版浏览器中可是识别并使用 link-->href 指向的地址获取图片, 可是在旧版的360等等,并不管你的 link-->href, 而是直接按默认的去请求根目录下的 favicon.ico 我用的是node,用ex…
版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内容用于商业用途,将保留追究其法律责任的权利.如果有问题,请以邮箱方式联系作者(793113046@qq.com). 前言 本文着重总结分区表的日常维护操作以及相应的注意事项. 本文涉及的日常维护内容包括: 增加分区(add) 移动分区(move) 截断分区(truncate) 删除分区(drop)…
[原]Masonry+UIScrollView的使用注意事项 本文转载请注明出处 —— polobymulberry-博客园 1.问题描述 我想实现的使用在一个UIScrollView依次添加三个UITableView(tableView1.tableView2.tableView3).最后想达到的效果就像下图这样: 或者用这张图更形象点: 然后我的代码大概的样子 // 自定义了一个UIScrollView为ICScrollView // 在ViewController中添加到self.view…
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架ServerSuperIO教程>2.服务实例的配置参数说明 <连载 | 物联网框架ServerSuperIO教程>- 3.设备驱动介绍 <连载 | 物联网框架ServerSuperIO教程>-4.如开发一套设备驱动,同时支持串口和网络通讯. 目       录 5. 轮询通讯模型开发及注意…
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架ServerSuperIO教程>2.服务实例的配置参数说明 <连载 | 物联网框架ServerSuperIO教程>- 3.设备驱动介绍 <连载 | 物联网框架ServerSuperIO教程>-4.如开发一套设备驱动,同时支持串口和网络通讯. <连载 | 物联网框架ServerSupe…
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架ServerSuperIO教程>2.服务实例的配置参数说明 <连载 | 物联网框架ServerSuperIO教程>- 3.设备驱动介绍 <连载 | 物联网框架ServerSuperIO教程>-4.如开发一套设备驱动,同时支持串口和网络通讯. <连载 | 物联网框架ServerSupe…