⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 line.c

📁 S3C2410 arm-linux mingui源程序
💻 C
字号:
/***************************************************************************** 文件名:line.c* 功能:MiniGUI应用例子。*       创建一个主窗口,并在窗口中间画出随机颜色、随机长度和随机角度*       的50根直线。****************************************************************************/#include <stdio.h>#include <stdlib.h>/* 包含MiniGUI头文件 */#include <minigui/common.h>#include <minigui/minigui.h>#include <minigui/gdi.h>#include <minigui/window.h>#include <minigui/control.h>/* 定义random()函数 */#define  random()     rand()/* 主窗口起始位置及大小 */#define  MWINDOW_LX	5       /* 窗口左边框的x值 */#define  MWINDOW_TY	50      /* 窗口上边框的y值 */#define  MWINDOW_RX	470     /* 窗口右边框的x值 */#define  MWINDOW_BY	400     /* 窗口下边框的y值 *//* 定义窗口宽度、高度的宏 */#define  MWINDOW_W   (MWINDOW_RX - MWINDOW_LX)#define  MWINDOW_H   (MWINDOW_BY - MWINDOW_TY)HWND hMainWnd;      // 主窗口句柄/***************************************************************************** 名称:WinProc()* 功能:主窗口过程函数。*       处理MSG_PAINT消息,在窗口中间画出随机颜色、随机长度和随机角度*       的50根直线。* 入口参数:hWnd        窗口句柄*           message     消息*           wParam      消息附加参数1*           lParam      消息附加参数2* 出口参数:消息已处理则返回0。****************************************************************************/static int  WinProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam){   HDC  hdc;        int  x0, y0;    // 直线第一点坐标变量    int  x1, y1;    // 直线第二点坐标变量    int  no;    switch(message)    {   case MSG_PAINT:            hdc = BeginPaint(hWnd);            	        for(no=0; no<50; no++)          // 画50条随机直线	        {   SetPenColor(hdc, SysPixelIndex[random()%16]);   // 取得随机颜色	            x0 = random()%MWINDOW_W;    // 随机取得直线第一点坐标值                y0 = random()%MWINDOW_H;                                /* 以中心点对称,计算出直线第二点坐标值。                   设x0在中点左边,中点值为W/2,则中点到x0的长度Mx = W/2 - x0,                   所以x1 = W/2 + Mx = W/2 + W/2 - x0 = W - x0。                   若x0在中点右边,也会得到同要的结果(x1=W - x0)。                */                x1 = MWINDOW_W - x0;                        y1 = MWINDOW_H - y0;                MoveTo(hdc, x0, y0);        // 移动hdc当前位置到直线第一点处                LineTo(hdc, x1, y1);        // 画直线到直线第二点	        }            EndPaint(hWnd, hdc);            break;       case MSG_CLOSE:	        DestroyMainWindow(hWnd);	        PostQuitMessage(hWnd);	        break;       default:	        return(DefaultMainWinProc(hWnd, message, wParam, lParam));    }    return(0);}/***************************************************************************** 名称:InitMainWindow()* 功能:建立主窗口。* 入口参数:无* 出口参数:建立成功返回1,否则返回0。****************************************************************************/int InitMainWindow(void){   MAINWINCREATE  window_info;    window_info.dwStyle = WS_VISIBLE | WS_BORDER | WS_CAPTION;    window_info.dwExStyle = WS_EX_NONE;    window_info.spCaption = "GDI Demo";    window_info.hMenu = 0;    window_info.hCursor = GetSystemCursor(0);    window_info.hIcon = 0;    window_info.MainWindowProc = WinProc;    window_info.lx = MWINDOW_LX;    window_info.ty = MWINDOW_TY;    window_info.rx = MWINDOW_RX;    window_info.by = MWINDOW_BY;    window_info.iBkColor = COLOR_lightwhite;    window_info.dwAddData = 0;    window_info.hHosting = HWND_DESKTOP;         hMainWnd = CreateMainWindow(&window_info);    if(hMainWnd == HWND_INVALID) return(0);      else return(1);}/***************************************************************************** 名称:MiniGUIMain()* 功能:MiniGUI程序入口点。* 入口参数:argc    参数个数*           argv    参数字符串指针* 出口参数:返回0。****************************************************************************/int  MiniGUIMain(int argc, const char *argv[]){   MSG Msg;#ifdef _LITE_VERSION    SetDesktopRect(0,0, 800,600);#endif       srand(3721);    // 初始化随机总机           InitMainWindow();    ShowWindow(hMainWnd, SW_SHOWNORMAL);    while(GetMessage(&Msg, hMainWnd))     {   TranslateMessage(&Msg);        DispatchMessage(&Msg);    }        MainWindowThreadCleanup(hMainWnd);    return(0);}#ifndef _LITE_VERSION	#include <minigui/dti.c>#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -