亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? painter.c

?? 嵌入式LINUX應用開發技術一書的光盤,希望對大家有用:)
?? C
?? 第 1 頁 / 共 2 頁
字號:
// $Id: painter.c,v 1.5 2002/07/28 04:28:10 ymwei Exp $//// A MiniGUI Painter//// Copyright (c) 2001, Wei Yongming (ymwei@minigui.org)//// Create date: 2001/11/01/***  This source is free software; you can redistribute it and/or**  modify it under the terms of the GNU General Public**  License as published by the Free Software Foundation; either**  version 2 of the License, or (at your option) any later version.****  This software is distributed in the hope that it will be useful,**  but WITHOUT ANY WARRANTY; without even the implied warranty of**  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU**  General Public License for more details.****  You should have received a copy of the GNU General Public**  License along with this library; if not, write to the Free**  Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,**  MA 02111-1307, USA*///// Modify records:////  Who             When        Where       For What                Status//-----------------------------------------------------------------------------//// TODO://#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <signal.h>#include <time.h>#include <sys/types.h>#include <sys/wait.h>#include <math.h>#include <minigui/common.h>#include <minigui/minigui.h>#include <minigui/gdi.h>#include <minigui/window.h>#include <minigui/control.h>#ifndef _USE_NEWGAL#error "***********************************************************************"#error "** This program needs New GAL of MiniGUI!                            **"#error "** Please run `./configure --enable-newgal' when configure MiniGUI,  **"#error "** then build and reinstall MiniGUI.                                 **"#error "***********************************************************************"#else#include <minigui/fixedmath.h>#include "painter.h"#define DEFAULT_WIDTH   800#define DEFAULT_HEIGHT  600static HMENU createpmenuabout (void){    HMENU hmnu;    MENUITEMINFO mii;    memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING;    mii.id          = 0;    mii.typedata    = (DWORD)"About...";    hmnu = CreatePopupMenu (&mii);        memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING ;    mii.state       = 0;    mii.id          = IDM_ABOUT_THIS;    mii.typedata    = (DWORD)"About MiniGUI Painter...";    InsertMenuItem(hmnu, 0, TRUE, &mii);    memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING ;    mii.state       = 0;    mii.id          = IDM_ABOUT;    mii.typedata    = (DWORD)"About MiniGUI...";    InsertMenuItem(hmnu, 1, TRUE, &mii);    return hmnu;}static HMENU createpmenufile (void){    HMENU hmnu;    MENUITEMINFO mii;    memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING;    mii.id          = 0;    mii.typedata    = (DWORD)"File";    hmnu = CreatePopupMenu (&mii);        memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING;    mii.state       = 0;    mii.id          = IDM_NEW;    mii.typedata    = (DWORD)"New";    InsertMenuItem(hmnu, 0, TRUE, &mii);        mii.type        = MFT_STRING;    mii.state       = 0;    mii.id          = IDM_OPEN;    mii.typedata    = (DWORD)"Open...";    InsertMenuItem(hmnu, 1, TRUE, &mii);        mii.type        = MFT_STRING;    mii.state       = 0;    mii.id          = IDM_SAVE;    mii.typedata    = (DWORD)"Save";    InsertMenuItem(hmnu, 2, TRUE, &mii);        mii.type        = MFT_STRING;    mii.state       = 0;    mii.id          = IDM_SAVEAS;    mii.typedata    = (DWORD)"Save As...";    InsertMenuItem(hmnu, 3, TRUE, &mii);    mii.type        = MFT_STRING;    mii.state       = 0;    mii.id          = IDM_CLOSE;    mii.typedata    = (DWORD)"Close";    InsertMenuItem(hmnu, 4, TRUE, &mii);        mii.type        = MFT_SEPARATOR;    mii.state       = 0;    mii.id          = 0;    mii.typedata    = 0;    InsertMenuItem(hmnu, 5, TRUE, &mii);    mii.type        = MFT_STRING;    mii.state       = 0;    mii.id          = IDM_EXIT;    mii.typedata    = (DWORD)"Exit";    InsertMenuItem(hmnu, 6, TRUE, &mii);    return hmnu;}static HMENU createpmenuedit (void){    HMENU hmnu;    MENUITEMINFO mii;    memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING;    mii.id          = 0;    mii.typedata    = (DWORD)"Edit";    hmnu = CreatePopupMenu (&mii);        mii.type        = MFT_STRING ;    mii.state       = 0;    mii.id          = IDM_COPY;    mii.typedata    = (DWORD)"Copy Screen";    InsertMenuItem(hmnu, 0, TRUE, &mii);         mii.type        = MFT_STRING;    mii.state       = 0;    mii.id          = IDM_PASTE;    mii.typedata    = (DWORD)"Paste";    InsertMenuItem(hmnu, 1, TRUE, &mii);          return hmnu;}static HMENU createpmenuobject (void){    HMENU hmnu;    MENUITEMINFO mii;    memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING;    mii.id          = 0;    mii.typedata    = (DWORD)"Drawing Object";    hmnu = CreatePopupMenu (&mii);        mii.type        = MFT_STRING;    mii.state       = MF_CHECKED;    mii.id          = IDM_LINE;    mii.typedata    = (DWORD)"Line";    InsertMenuItem(hmnu, 0, TRUE, &mii);         mii.type        = MFT_STRING;    mii.state       = 0;    mii.id          = IDM_ELLIPSE;    mii.typedata    = (DWORD)"Circle/Ellipse";    InsertMenuItem(hmnu, 1, TRUE, &mii);         mii.type        = MFT_STRING;    mii.state       = 0;    mii.id          = IDM_RECT;    mii.typedata    = (DWORD)"Rectangle";    InsertMenuItem(hmnu, 2, TRUE, &mii);         mii.type        = MFT_STRING;    mii.state       = 0;    mii.id          = IDM_ARC;    mii.typedata    = (DWORD)"Arc";    InsertMenuItem(hmnu, 3, TRUE, &mii);         mii.type        = MFT_STRING;    mii.state       = 0;    mii.id          = IDM_SPLINE;    mii.typedata    = (DWORD)"Spline";    InsertMenuItem(hmnu, 4, TRUE, &mii);    mii.type        = MFT_STRING;    mii.state       = 0;    mii.id          = IDM_FILLED_RECT;    mii.typedata    = (DWORD)"Filled Rectangle";    InsertMenuItem(hmnu, 5, TRUE, &mii);    mii.type        = MFT_STRING;    mii.state       = 0;    mii.id          = IDM_FILLED_ELLIPSE;    mii.typedata    = (DWORD)"Filled Circle/Ellipse";    InsertMenuItem(hmnu, 6, TRUE, &mii);    mii.type        = MFT_STRING;    mii.state       = 0;    mii.id          = IDM_FILLED_POLYGON;    mii.typedata    = (DWORD)"Filled Polygon";    InsertMenuItem(hmnu, 7, TRUE, &mii);    mii.type        = MFT_STRING;    mii.state       = 0;    mii.id          = IDM_FLOOD_FILL;    mii.typedata    = (DWORD)"Flood Fill";    InsertMenuItem(hmnu, 8, TRUE, &mii);    mii.type        = MFT_STRING;    mii.state       = 0;    mii.id          = IDM_XU_POLYLINE;    mii.typedata    = (DWORD)"xu polyline";    InsertMenuItem(hmnu, 9, TRUE, &mii);    return hmnu;}static HMENU createmenu (void){    HMENU hmnu;    MENUITEMINFO mii;    hmnu = CreateMenu();    memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING;    mii.id          = 100;    mii.typedata    = (DWORD)"File";    mii.hsubmenu    = createpmenufile ();    InsertMenuItem(hmnu, 0, TRUE, &mii);    mii.type        = MFT_STRING;    mii.id          = 110;    mii.typedata    = (DWORD)"Edit";    mii.hsubmenu    = createpmenuedit ();    InsertMenuItem(hmnu, 1, TRUE, &mii);        mii.type        = MFT_STRING;    mii.id          = 120;    mii.typedata    = (DWORD)"Object";    mii.hsubmenu    = createpmenuobject ();    InsertMenuItem(hmnu, 2, TRUE, &mii);        mii.type        = MFT_STRING;    mii.id          = 130;    mii.typedata    = (DWORD)"About";    mii.hsubmenu    = createpmenuabout ();    InsertMenuItem(hmnu, 3, TRUE, &mii);                       return hmnu;}#define MAX_POINTS  40static int obj_type = IDM_LINE;static POINT pts [MAX_POINTS];static int cur_pt = 0;static int oldx = -1, oldy;const POINT point[6]={{100,50},{71,141},{148,85},{52,85},{129,141},{100,50}};static void DrawObject (HDC hdc){    switch (obj_type) {    case IDM_LINE:        if (cur_pt == 2) {            MoveTo (hdc, pts[0].x, pts[0].y);            LineTo (hdc, pts[1].x, pts[1].y);            cur_pt = 0; oldx = -1;        }        break;    case IDM_ELLIPSE:        if (cur_pt == 2) {            int rx = ABS (pts[1].x - pts[0].x);            int ry = ABS (pts[1].y - pts[0].y);            if (rx == ry)                Circle (hdc, pts[0].x, pts[0].y, rx);            else                Ellipse (hdc, pts[0].x, pts[0].y, rx, ry);            cur_pt = 0; oldx = -1;        }        break;    case IDM_RECT:        if (cur_pt == 2) {            Rectangle (hdc, pts[0].x, pts[0].y, pts[1].x, pts[1].y);            cur_pt = 0; oldx = -1;        }        break;    case IDM_ARC:        if (cur_pt == 3) {            int sx = pts [0].x, sy = pts [0].y;            int dx = pts [1].x - sx, dy = pts [1].y - sy;            int r = sqrt (dx * dx * 1.0 + dy * dy * 1.0);            double cos_d = dx * 1.0 / r;            fixed cos_f = ftofix (cos_d);            fixed ang1 = facos (cos_f);            int r2;            fixed ang2;            if (dy > 0) {                ang1 = fsub (0, ang1);            }            dx = pts [2].x - sx;            dy = pts [2].y - sy;            r2 = sqrt (dx * dx * 1.0 + dy * dy * 1.0);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区四区高清| 国产精品免费人成网站| 精品国产91乱码一区二区三区 | 在线播放日韩导航| 中文字幕免费观看一区| 日韩激情视频在线观看| 99精品视频在线观看免费| 日韩欧美中文字幕制服| 亚洲一区二区三区四区不卡| 黄页视频在线91| 欧美另类高清zo欧美| 亚洲精品免费在线观看| 国产乱码一区二区三区| 欧美肥妇bbw| 一区二区三区免费观看| 丰满放荡岳乱妇91ww| 精品欧美乱码久久久久久| 亚洲h在线观看| 一本色道a无线码一区v| 久久久综合网站| 久久精品噜噜噜成人88aⅴ| 欧美三级中文字| 亚洲人吸女人奶水| 成人精品gif动图一区| 久久久综合九色合综国产精品| 日本91福利区| 日韩一卡二卡三卡国产欧美| 亚洲一区二区三区在线| 色94色欧美sute亚洲线路一久| 国产精品久久久久久久久动漫| 国产一区999| 欧美国产日韩a欧美在线观看| 国产自产视频一区二区三区| 日韩欧美三级在线| 另类小说视频一区二区| 日韩午夜精品电影| 久久国产视频网| 日韩欧美国产精品| 久久精品国产**网站演员| 91精品免费观看| 蜜桃久久精品一区二区| 日韩午夜在线播放| 国产成人免费视频网站| 久久精品一区二区| 成人午夜电影网站| 日韩伦理电影网| 91国产视频在线观看| 亚洲国产视频一区二区| 欧美一区午夜视频在线观看| 国产精品996| 亚洲色欲色欲www| 欧美午夜精品久久久久久超碰| 亚洲国产wwwccc36天堂| 91精品国产91久久久久久一区二区| 日韩av中文字幕一区二区| 欧美电影免费观看高清完整版在 | 亚洲国产一区在线观看| 欧美日韩第一区日日骚| 老司机免费视频一区二区三区| 久久综合九色综合97婷婷| 国产成人高清在线| 亚洲精品久久久久久国产精华液| 欧美精品亚洲二区| 国产精品一二三四五| 亚洲精品第1页| 日韩午夜精品电影| 97久久超碰国产精品电影| 天天av天天翘天天综合网色鬼国产 | 久久综合九色综合97婷婷女人 | 色婷婷av一区二区| 久久精品国产网站| 亚洲欧美中日韩| 日韩午夜激情电影| 91年精品国产| 国产综合色产在线精品| 一区二区三区日韩| 国产亚洲精久久久久久| 色婷婷精品大在线视频 | 一区二区三区电影在线播| 日韩欧美美女一区二区三区| 99视频有精品| 麻豆免费看一区二区三区| 亚洲三级免费电影| 欧美精品一区二区久久久| 92国产精品观看| 国产原创一区二区三区| 亚洲一级电影视频| 国产精品乱码妇女bbbb| 91精品国产免费| 色悠悠亚洲一区二区| 国产一区二区三区在线观看精品 | 色婷婷精品久久二区二区蜜臀av | 日本欧洲一区二区| 亚洲综合久久久| 国产精品嫩草久久久久| 欧美一级高清片在线观看| 色综合色狠狠天天综合色| 国产精品综合在线视频| 日本欧美一区二区| 亚洲一区二区黄色| 亚洲女女做受ⅹxx高潮| 欧美韩日一区二区三区四区| 日韩午夜在线影院| 欧美高清视频一二三区| 在线中文字幕一区二区| 成人一区二区三区在线观看 | 亚洲一区二区不卡免费| 亚洲三级久久久| 亚洲免费观看视频| 亚洲精品中文字幕在线观看| 国产精品三级视频| 国产精品家庭影院| 国产精品麻豆99久久久久久| 久久精品亚洲乱码伦伦中文| 精品国产乱码久久| 精品国精品自拍自在线| 欧美不卡一区二区三区四区| 欧美放荡的少妇| 日韩女优电影在线观看| 日韩精品专区在线影院重磅| 欧美精品vⅰdeose4hd| 欧美一区二区网站| 制服丝袜亚洲精品中文字幕| 在线播放中文字幕一区| 欧美一区二区播放| 久久尤物电影视频在线观看| 久久女同互慰一区二区三区| 国产精品污www在线观看| 国产精品福利一区| 亚洲欧美日韩国产手机在线| 亚洲欧美aⅴ...| 五月天精品一区二区三区| 日韩中文字幕亚洲一区二区va在线| 性欧美大战久久久久久久久| 香蕉久久夜色精品国产使用方法| 午夜精品影院在线观看| 美女性感视频久久| 国产激情91久久精品导航| thepron国产精品| 欧美四级电影网| 26uuu色噜噜精品一区二区| 国产精品无码永久免费888| 亚洲精品写真福利| 蜜臀久久久久久久| 粉嫩av一区二区三区在线播放| 91在线一区二区三区| 欧美另类高清zo欧美| 久久精品夜色噜噜亚洲a∨| 亚洲三级久久久| 久久不见久久见免费视频7| 成人美女在线观看| 欧美日韩免费视频| 国产亚洲精品bt天堂精选| 樱桃视频在线观看一区| 精品午夜久久福利影院| 99re这里只有精品6| 欧美精品免费视频| 国产精品国产三级国产aⅴ原创| 一区二区三区在线观看网站| 久久99精品国产91久久来源| 91麻豆自制传媒国产之光| 欧美日韩国产一级二级| 国产亚洲一区二区三区| 亚洲高清视频中文字幕| 国产不卡在线一区| 欧美一区二区美女| 亚洲精品国产精华液| 国产福利91精品| 欧美一区二区在线免费播放| 日韩毛片视频在线看| 久久激情五月婷婷| 欧美日韩国产免费| 国产精品入口麻豆原神| 青娱乐精品视频在线| 日本精品免费观看高清观看| 国产亚洲美州欧州综合国| 日韩激情视频在线观看| 色噜噜狠狠色综合欧洲selulu| 久久久久久久久99精品| 香蕉久久夜色精品国产使用方法| 92国产精品观看| 国产精品女同互慰在线看| 久久国产麻豆精品| 911精品国产一区二区在线| 亚洲欧美另类久久久精品| 国产福利91精品一区| 欧美精品一区二| 麻豆精品在线播放| 欧美一级国产精品| 日韩激情在线观看| 91麻豆精品国产| 午夜在线成人av| 欧美乱妇23p| 日本不卡一二三| 91精品国产欧美一区二区18| 天天综合色天天综合色h| 欧美日韩国产综合久久| 亚洲一本大道在线| 欧美日韩午夜在线视频| 亚洲福利视频一区|