zoukankan      html  css  js  c++  java
  • 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

    重剑无锋,大巧不工
  • 相关阅读:
    MHA-Atlas-MySQL高可用(上)
    MySQL数据库企业级应用实践(主从复制)
    MySQL数据库企业级应用实践(多实例源码编译)
    MySQL存储引擎
    MySQL索引与事务
    MySQL数据备份
    MySQL数据库操作
    bzoj 1038: [ZJOI2008]瞭望塔
    bzoj 2451 Uyuw's Concert
    poj 2187 Beauty Contest
  • 原文地址:https://www.cnblogs.com/919czzl/p/4076432.html
Copyright © 2011-2022 走看看