码迷,mamicode.com
首页 > 其他好文 > 详细

随机矩形程序

时间:2020-07-16 22:08:07      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:div   move   fun   ogr   矩形   overlap   tchar   程序   hit   

/*--------------------------------------------
    RANDRECT.C -- Displays Random Rectangles
  --------------------------------------------*/
  
#include <windows.h>
#include <stdlib.h>                   //for the rand function

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
void DrawRectangle(HWND);

int cxClient, cyClient;

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
    static TCHAR    szAppName[] = TEXT("RandRect");
    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("Program requires Window NT!"),
                    szAppName, MB_ICONERROR);
        return 0;
    }
    
    hwnd = CreateWindow(szAppName,TEXT("Random Rectangles"),
                        WS_OVERLAPPEDWINDOW,
                        CW_USEDEFAULT,CW_USEDEFAULT,
                        CW_USEDEFAULT,CW_USEDEFAULT,
                        NULL,NULL,hInstance,NULL);
    
    ShowWindow(hwnd,iCmdShow);
    UpdateWindow(hwnd);
    
    while(TRUE)
    {
        if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
        {
            if(msg.message == WM_QUIT)
                break;
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
        else
            DrawRectangle(hwnd);
    }
    return msg.wParam; 
}

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{    
    switch(message)
    {
        case WM_SIZE:
            cxClient = LOWORD(lParam);
            cyClient = HIWORD(lParam);
            return 0;
                    
        case WM_DESTROY:
            PostQuitMessage(0);
            return 0;
    }
    return DefWindowProc(hwnd,message,wParam,lParam);
}

void DrawRectangle(HWND hwnd)
{
    HBRUSH         hBrush;
    HDC            hdc;
    RECT           rect;
    
    if(cxClient == 0 || cyClient == 0)
        return;
    
    SetRect (&rect, rand()%cxClient, rand()%cyClient, 
                    rand()%cxClient, rand()%cyClient);
    hBrush = CreateSolidBrush(RGB(rand()%256,rand()%256,rand()%256));
    hdc = GetDC(hwnd);
    
    FillRect(hdc,&rect,hBrush); 
    ReleaseDC(hwnd,hdc);
    DeleteObject(hBrush);
}

随机矩形程序

标签:div   move   fun   ogr   矩形   overlap   tchar   程序   hit   

原文地址:https://www.cnblogs.com/lhb666aboluo/p/13324355.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!