这个函数好像就是对应于视口的,获取视口的宽高

#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的更多相关文章

  1. GetWindowRect() GetClientRect() ScreenToClient() MoveWindow()

    CWnd.GetWindowRect 参照坐标系:屏幕坐标系,原点为屏幕左上角(0,0)的位置 功能:取得调用窗口CWnd在屏幕坐标系下的RECT坐标 CWnd.GetClientRect 参照坐标系 ...

  2. GetClientRect()和GetWindowRect()

    GetClientRect()   是得到客户区坐标系下客户区的RECT GetWindowRect()是得到屏幕坐标系下整个窗口的RECT GetSystemMetrics()是获得屏幕分辨率大小 ...

  3. GetWindowRect和GetClientRect的区别详解

    一:关于坐标 MFC中绘图时经常涉及到坐标计算,GetWindowRect和GetClientRect这两个函数,是获取逻辑坐标系中窗口或控件(其实也是窗口)大小和坐标的常用函数了,有什么不一样的? ...

  4. GetWindowRect和GetClientRect的异同

    由于项目需要,需要学习CGridCtrl控件的使用,测试控件时发现了一个问题,我无法将控件放在对话框的制定位置. 该问题的原因很容易发现,其实就是GetWindowRec()函数和GetClientR ...

  5. GetWindowRect、GetClientRect、ScreenToClient与ClientToScreen

    GetWindowRect是取得窗口在屏幕坐标系下的RECT坐标(包括客户区和非客户区),这样可以得到窗口的大小和相对屏幕左上角(0,0)的位置. GetClientRect取得窗口客户区(不包括非客 ...

  6. GetWindowRect和GetClientRect的注意事项

    发现GetClientRect()函数取值不正确,特此找来了些资料以供参考,具体如下,就可以明白怎么回事了. 一:关于坐标 MFC中绘图时经常涉及到坐标计算,GetWindowRect和GetClie ...

  7. MFC 中GetClientRect、ClientToScreen、GetWindow、RectScreenToClient的使用

    CWnd* pWnd = GetDlgItem(IDB_BUT_RECOGNIZE); pWnd->GetClientRect(&rect);   //指该控件自身客户区的矩形,原点为控 ...

  8. VC:GetWindowRect、GetClientRect、ScreenToClient与ClientToScreen

    GetWindowRect是取得窗口在屏幕坐标系下的RECT坐标(包括客户区和非客户区),这样可以得到窗口的大小和相对屏幕左上角(0,0)的位置. GetClientRect取得窗口客户区(不包括非客 ...

  9. GetWindowRect和GetClientRect比较学习

    一:关于坐标 MFC中绘图时经常涉及到坐标计算,GetWindowRect和GetClientRect这两个函数,是获取逻辑坐标系中窗口或控件(其实也是窗口)大小和坐标的常用函数了,有什么不一样的? ...

随机推荐

  1. java中修饰符及其用法

    1. java中的修饰符 a. 权限修饰符 private,默认的,protected,public b. 状态修饰符 static,final c. 抽象修饰符 abstract 2. 类修饰符 p ...

  2. 倒叙筛除list

    for(int i=list.Count-1;i>=0;i--) {    if(list[i])   {     list.RemoveAt(i);   } }

  3. #define const extern

    将父类中的常量放到. m文件,子类就不会重复包含了.之后再.h文件中用extern NSSting * const ILScoreShowStartTime;// extern 用来声明变量和函数.c ...

  4. Java语言国际化

    事实上,Java语言不可能支持所有国家和语言,如需要获取Java语言所支持的语言和国家,可调用Locale类的getAvailableLocale方法获取,该方法返回一个Locale数组,该数组里包含 ...

  5. 计算机网络分层(OSI七层、 TCP/IP四层)

  6. 安装、配置、启动FTP、SSH或NFS服务

    (1)准备使用软件维护工具apt-get. Ubuntu7.10中没有安装FTP.SSH.NFS服务器软件,它提供了一个很方便的安装.升级.维护软件的工具apt-get.apt-get从光盘.网络上下 ...

  7. jquery源码阅读(1)

    每天坚持阅读一定量的的jquery代码,积少成多!加油加油! jquery-2.2.1的9161~9194行 1 if ( typeof define === "function" ...

  8. 照着例子学习protobuf-python

    以下是照着python操作protobuf进行的protobuf-python的学习笔记: 首先是protobuf的下载与安装: 1 由于google被墙,所以去github上面搜索了一下protob ...

  9. RLE行程长度编码压缩算法

    在看emWIN的时候看到一个图片压缩的算法可以有效的对二值图(简单的2中颜色或者更多)进行压缩,压缩的效果可以节省空间而且不丢失信息! 特点 一种压缩过的位图文件格式,RLE压缩方案是一种极其成熟的压 ...

  10. VNC VIEWER的使用集锦

    关于颜色深度的问题, 今天用VNC Viewser ,连上去之后,发现色彩可能只有8或者16位 然后修改了 sever的depth,也不好使, 于是,就修改了 client的 colourlevel ...