GetClientRect
这个函数好像就是对应于视口的,获取视口的宽高
#include <windows.h> LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT ("坐标") ;
HWND hwnd ;
MSG msg ;
WNDCLASS wndclass ;
wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc= WndProc ;
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hInstance ;
wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;
wndclass.hCursor= LoadCursor (NULL, IDC_ARROW) ;
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
wndclass.lpszMenuName = NULL ;
wndclass.lpszClassName = szAppName ;
if (!RegisterClass (&wndclass))
{
MessageBox (NULL, TEXT ("This program requires Windows NT!"),
szAppName, MB_ICONERROR) ;
return 0 ;
}
hwnd = CreateWindow (szAppName, TEXT ("坐标尺寸"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL, hInstance, NULL) ;
ShowWindow (hwnd, iCmdShow) ;
UpdateWindow (hwnd) ;
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
return msg.wParam ;
}
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc ;
PAINTSTRUCT ps ;
RECT rect;
switch (message)
{
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;
HPEN hPen,hOldPen;
hPen=CreatePen(PS_SOLID,1,RGB(0,12,255));
hOldPen=(HPEN)SelectObject(hdc,hPen);
//1 Ellipse(hdc,-100, -100, 100, 100); GetClientRect(hwnd,&rect);
// MoveToEx(hdc,rect.right/2,0,NULL);
// LineTo(hdc,rect.right/2,rect.bottom);
// MoveToEx(hdc,rect.left,rect.bottom/2,NULL);
// LineTo(hdc,rect.right,rect.bottom/2); //2 Ellipse(hdc,-50,-50,50,50);
// MoveToEx(hdc,0,0,NULL);
// LineTo(hdc,100,100); //3 SetViewportOrgEx(hdc,200,150,NULL);
// Ellipse(hdc,-50,-50,50,50);
// MoveToEx(hdc,0,0,NULL);
// LineTo(hdc,100,100); //3.1 SetViewportOrgEx(hdc,rect.right/2,rect.bottom/2,NULL);
// Ellipse(hdc,-50,-50,50,50);
// MoveToEx(hdc,0,0,NULL);
// LineTo(hdc,100,100); //3.2 SetViewportOrgEx(hdc,rect.right/2,rect.bottom/2,NULL);
// Ellipse(hdc,-100,-100,100,100);
// MoveToEx(hdc,rect.left,0,NULL);
// LineTo(hdc,rect.right,0);
// MoveToEx(hdc,0,rect.top,NULL);
// LineTo(hdc,0,rect.bottom); //4 SetMapMode(hdc,MM_ANISOTROPIC);
// SetViewportOrgEx(hdc,380,220,NULL);
// Ellipse(hdc,-100,-100,100,100);
// MoveToEx(hdc,-380,0,NULL);
// LineTo(hdc,380,0);
// MoveToEx(hdc,0,-220,NULL);
// LineTo(hdc,0,220); // MoveToEx(hdc,0,0,NULL);
// LineTo(hdc,120,120); LOGBRUSH logbrush;
HBRUSH hBrush,hOldBrush;
logbrush.lbStyle=BS_SOLID;
logbrush.lbColor=RGB(128,128,128);
logbrush.lbHatch=HS_HORIZONTAL;
hBrush=CreateBrushIndirect(&logbrush);
hOldBrush=(HBRUSH)SelectObject(hdc,hBrush);
Rectangle(hdc,-100,-100,100,100);
MoveToEx(hdc,0,0,NULL);
LineTo(hdc,200,200); DeleteObject(hPen);
DeleteObject(hBrush);
SelectObject(hdc,hOldPen);
SelectObject(hdc,hOldBrush);
EndPaint (hwnd, &ps) ;
break;
case WM_DESTROY:
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc (hwnd, message, wParam, lParam) ;
}
文章相关链接 http://www.ucancode.net/faq/Coordinate-SetViewportOrg-SetWindowExt-SetViewportExt-SetMapMode.htm
GetClientRect的更多相关文章
- GetWindowRect() GetClientRect() ScreenToClient() MoveWindow()
CWnd.GetWindowRect 参照坐标系:屏幕坐标系,原点为屏幕左上角(0,0)的位置 功能:取得调用窗口CWnd在屏幕坐标系下的RECT坐标 CWnd.GetClientRect 参照坐标系 ...
- GetClientRect()和GetWindowRect()
GetClientRect() 是得到客户区坐标系下客户区的RECT GetWindowRect()是得到屏幕坐标系下整个窗口的RECT GetSystemMetrics()是获得屏幕分辨率大小 ...
- GetWindowRect和GetClientRect的区别详解
一:关于坐标 MFC中绘图时经常涉及到坐标计算,GetWindowRect和GetClientRect这两个函数,是获取逻辑坐标系中窗口或控件(其实也是窗口)大小和坐标的常用函数了,有什么不一样的? ...
- GetWindowRect和GetClientRect的异同
由于项目需要,需要学习CGridCtrl控件的使用,测试控件时发现了一个问题,我无法将控件放在对话框的制定位置. 该问题的原因很容易发现,其实就是GetWindowRec()函数和GetClientR ...
- GetWindowRect、GetClientRect、ScreenToClient与ClientToScreen
GetWindowRect是取得窗口在屏幕坐标系下的RECT坐标(包括客户区和非客户区),这样可以得到窗口的大小和相对屏幕左上角(0,0)的位置. GetClientRect取得窗口客户区(不包括非客 ...
- GetWindowRect和GetClientRect的注意事项
发现GetClientRect()函数取值不正确,特此找来了些资料以供参考,具体如下,就可以明白怎么回事了. 一:关于坐标 MFC中绘图时经常涉及到坐标计算,GetWindowRect和GetClie ...
- MFC 中GetClientRect、ClientToScreen、GetWindow、RectScreenToClient的使用
CWnd* pWnd = GetDlgItem(IDB_BUT_RECOGNIZE); pWnd->GetClientRect(&rect); //指该控件自身客户区的矩形,原点为控 ...
- VC:GetWindowRect、GetClientRect、ScreenToClient与ClientToScreen
GetWindowRect是取得窗口在屏幕坐标系下的RECT坐标(包括客户区和非客户区),这样可以得到窗口的大小和相对屏幕左上角(0,0)的位置. GetClientRect取得窗口客户区(不包括非客 ...
- GetWindowRect和GetClientRect比较学习
一:关于坐标 MFC中绘图时经常涉及到坐标计算,GetWindowRect和GetClientRect这两个函数,是获取逻辑坐标系中窗口或控件(其实也是窗口)大小和坐标的常用函数了,有什么不一样的? ...
随机推荐
- 转载–移动互联网终端的touch事件,touchstart, touchend, touchmove
转载请注明: 转载自WEB前端开发(www.css119.com)-关注常见的WEB前端开发问题.最新的WEB前端开发技术(webApp开发.移动网站开发).最好的WEB前端开发工具和最全的WEB前端 ...
- JavaScript 部分对象方法记叙 ing...
- PHP input 显示html 元素
使用函数 htmlspecialchars ,转换保存的html源码,前台使用转换后的变量.
- 在windows上部署使用Redis(摘录)
下载Redis 在Redis的官网下载页上有各种各样的版本,我这次是在windows上部署的,要去GitHub上下载.目前的是2.8.12版的,直接解压,在\bin\release 目录下有个压缩包, ...
- java读写串口
http://blog.csdn.net/xxyy888/article/details/8946046
- Ecstore1.2启用mongodb添加索引
配置config(连接mongo) mongo define('KVSTORE_STORAGE', 'base_kvstore_mongodb'); define('MONGODB_SERVER_CO ...
- 使用block函数的基本形式
以前从未接触过block函数. 如果在.h头文件中定义的形式如下的话: @property (nonatomic, copy) void(^fontValueChangedBlock)(void); ...
- Xcode调试之查看变量
从其他开发语言转行进军IOS开发的小伙伴可能会有这样一件苦恼的事情,调试程序时如何查看变量值?我并不喜欢每次都要通过打印去查看变量的值,也不喜欢通过光标悬浮到变量上来显示变量的值,如果要查看变量的属性 ...
- Alyona and flowers
Alyona and flowers time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- python 常用
1. dir() 不带参数时,返回当前范围内的变量.方法和定义的类型列表:带参数时,返回参数的属性.方法列表.如果参数包含方法__dir__(),该方法将被调用.如果参数不包含 ...