[00012]-[2015-08-27]-[00]-[Windows 程序设计 ---GetWindowDC GetWindowRect GetClientDC(GetDC) GetClientRect]

::GetWindowDC(m_hWnd); // 表示GetWindowDC()是一个全局函数,作用域大

GetWindowDC() 获得的设备环境覆盖了整个窗口(包括非客户区),例如标题栏、菜单、滚动条,以及边框

GetWindowRect() rect表示应用程序窗口在屏幕中的位置rigth left top bottom

GetDC()  获取的是应用程序中客户区的环境设备

GetClientRect()  rect表示应用程序客户区的rect. left right top bottom 其中left=0 top=0(恒成立)

[

该函数获取窗口客户区的坐标。客户区坐标指定客户区的左上角和右下角。由于客户区坐标是相对窗口客户区的左上角而言的,因此左上角坐标为(0,0),注意一下:窗口的客户区为窗口中除标题栏、菜单栏之外的地方。

]

时间: 2024-08-03 20:49:10

[00012]-[2015-08-27]-[00]-[Windows 程序设计 ---GetWindowDC GetWindowRect GetClientDC(GetDC) GetClientRect]的相关文章

[00011]-[2015-08-26]-[00]-[Windows 程序设计 ---MFC 截屏--->BMP格式 --->JPG格式]

HBITMAP CopyScreenToBitmap(LPRECT lpRect){ HDC hScrDC, hMemDC; // 屏幕和内存设备描述表 HBITMAP hBitmap, hOldBitmap; // 位图句柄 int nX, nY, nX2, nY2; // 选定区域坐标 int nWidth, nHeight; // 位图宽度和高度 int xScrn, yScrn; // 屏幕分辨率 if (IsRectEmpty(lpRect)) return NULL; hScrDC

[00008]-[2015-08-21]-[00]-[Windows 程序设计 --- OnEraseBkGnd() OnPaint() DrawItem() 绘图处理]

问题是这样产生的.在OnEraseBkGnd中,如果你不调用原来缺省的OnEraseBkGnd只是重画背景则不会有闪烁.而在OnPaint里面,由于它隐含的调用了OnEraseBkGnd,而你又没有处理OnEraseBkGnd函数,这时就和窗口缺省的背景刷相关了.缺省的OnEraseBkGnd操作使用窗口的缺省背景刷刷新背景(一般情况下是白刷),而随后你又自己重画背景造成屏幕闪动.另外一个问题是OnEraseBkGnd不是每次都会被调用的.如果你调用Invalidate的时候参数为TRUE,那么

关于《Windows程序设计(第五版)》中一个实例程序的疑问

最近一直在看Charlse Petzold的<Windows程序设计>,作为一个新得不能再新的新手,只能先照着书的抄抄源码了,之前的例子一直都很正常,但昨天遇到一个很诡异的BUG. 先看实例源码吧: 1 /*----------------------------------------------------------------- 2 ENVIRON.C -- Environment List Box 3 (c) Charles Petzold,1998 4 Copy by XXXX,2

《Windows程序设计》复习题

<Windows程序设计>模拟题 一.单项选择题 1. 在VC++中,项目文件的扩展名是(B). A)exe                                             B)dsp C) dsw                                             D)cpp 2. 在MFC中,利用ClassWizard不能(D ). A)建立新类                                    B)进行消息映射 C) 增加类

Windows程序设计画图实现哆啦A梦

在看雪论坛上看到的一个帖子,很喜欢,转载一下.原文地址:http://bbs.pediy.com/showthread.php?t=138630哆啦A梦是画出来的,不知道作者算这些坐标位置算了多久,真的很犀利.记得原来看<Windows程序设计>的时候,每次看到GDI都不是很理解,也没有仔细去研究.现在编程也很少与GDI打交道,还是等以后有空了在深入了解一下吧.把这个代码转载一份到博客,以后再回头研究一下.顺便贴一下程序运行后的截图:(很酷吧~~~)字数补丁~代码疯子~程序人生~字数补丁~代码

2015年百度之星程序设计大赛 - 资格赛:IP聚合

1 /* 2 pro:2015年百度之星程序设计大赛 - 资格赛:IP聚合 3 ID:forever95 4 Date:2015-5-25 5 */ 6 //事实证明C++就是一坨屎 7 #include <iostream> 8 #include <string> 9 #include <cstdio> 10 #include <cstdlib> 11 #include <istream> 12 #include <algorithm&g

我关注的一周技术动态 2015.08.30

服务化和资源管理技术 1. Docker基础技术:AUFS http://coolshell.cn/articles/17061.html 要点: 支持层次化镜像是 docker 的一大创新之一, 本文详细介绍了实现层次化镜像的技术手段之一 aufs 的使用方法, 读完之后你就会理解docker层次化镜像的奥秘了. 2. Docker基础技术:DeviceMapper http://coolshell.cn/articles/17200.html 要点: devicemapper 是支持 doc

windows 程序设计自学:添加字符串资源

1 #include <windows.h> 2 #include "resource.h" 3 4 LRESULT CALLBACK MyWndProc( HWND hwnd, // handle to window 5 UINT uMsg, // message identifier 6 WPARAM wParam, // first message parameter 7 LPARAM lParam // second message parameter 8 ); 9

windows 程序设计自学:添加图标资源

1 #include <windows.h> 2 #include "resource.h" 3 4 LRESULT CALLBACK MyWndProc( HWND hwnd, // handle to window 5 UINT uMsg, // message identifier 6 WPARAM wParam, // first message parameter 7 LPARAM lParam // second message parameter 8 ); 9