第26周-window程序设计(基础篇)-第5章(图形基础)-边界框及LINDEMO.C

1、边界框及LINDEMO.C

/*边界框:画矩形*/
Rectangle (hdc, xLeft, yTop, xRight, yBottom) ;

/*画椭圆*/
Ellipse (hdc, xLeft, yTop, xRight, yBottom) ;

/*画圆角矩形*/
RoundRect(hdc,xLeft, yTop,xRight, yBottom, xCornerEllipse, yCorneEllipse);
xCornerEllipse = (xRight-xLeft)/4;
yCornerEllipse = (yBottom-yTop)/4;

Arc(hdc, xLeft, yTop, xRight, yBottom, xStart, yStart, xEnd, yEnd) ;//弧
Chord (hdc, xLeft, yTop, xRight, yBottom, xStart, yStart, xEnd, yEnd) ;//和弦(弧及端点的连线)
Pie(hdc, xLeft, yTop, xRight, yBottom, xStart, yStart, xEnd, yEnd) ; //饼状楔形图

/*
LINDEMO.C:Line-Drawing Demonstration Program画线演示程序
画一个矩形、一个椭圆、一个圆角矩形和两条线段。
*/
#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 ("LineDemo") ;
   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) ;
   wndclasswndclass.lpszMenuName= NULL ;
   wndclass.lpszClassName= szAppName ;

   if (!RegisterClass (&wndclass))
    {
      MessageBox (NULL, TEXT ("Program requires Windows NT!"),
      szAppName, MB_ICONERROR) ;
      return 0 ;
     }

   hwnd = CreateWindow (szAppName, TEXT ("Line Demonstration"),
          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)
{
  static int cxClient, cyClient ;
  HDC hdc ;
  PAINTSTRUCT ps ;

  switch (message)
   {
     case WM_SIZE:

       cxClient = LOWORD (lParam) ;
       cyClient = HIWORD (lParam) ;
       return 0 ;

     case WM_PAINT:
       hdc = BeginPaint (hwnd, &ps) ;
       Rectangle (hdc, cxClient / 8, cyClient / 8,
                  7 * cxClient / 8, 7 * cyClient / 8) ;
       MoveToEx (hdc, 0, 0, NULL) ;
       LineTo (hdc, cxClient, cyClient) ;
       MoveToEx (hdc, 0, cyClient, NULL) ;
       LineTo (hdc, cxClient, 0) ;
       Ellipse (hdc, cxClient / 8, cyClient / 8,
               7 * cxClient / 8, 7 * cyClient / 8) ;
       RoundRect (hdc, cxClient / 4, cyClient / 4,
               3 * cxClient / 4, 3 * cyClient / 4,
       cxClient / 4, cyClient / 4) ;
       EndPaint (hwnd, &ps) ;
       return 0 ;

    case WM_DESTROY:
       PostQuitMessage (0) ;
       return 0 ;
    }
   return DefWindowProc (hwnd, message, wParam, lParam) ;
 }


单词:ellipse椭圆、demostration演示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值