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

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

?? same.c

?? minigui 1.6.10 游戲例子 能對編程有很大啟發
?? C
?? 第 1 頁 / 共 2 頁
字號:
static void fill_board (void){    int x, y;    for (x = 0; x < STONE_COLS; x++)        for (y = 0; y < STONE_LINES; y++){            field [x][y].color = 1 + (rand () % ncolors);            field [x][y].tag   = 0;            field [x][y].frame = sync_stones ? 0 : (rand () % nstones);        }}static void new_game (HWND hwnd){    fill_board ();    set_score (0);    InvalidateRect (hwnd, &rcBoard, FALSE);}static void configure_sync (const char *fname){    if (strstr (fname, "-sync_same.gif"))        sync_stones = 1;    else        sync_stones = 0;}static void load_scenario (const char *fname){    UnloadBitmap (&stones);    if (LoadBitmap (HDC_SCREEN, &stones, fname)) {        printf ("Loading scenario failed: %s.\n", fname);        exit (1);    }    configure_sync (fname);    nstones = stones.bmWidth / STONE_SIZE;    ncolors = 3;}static void create_same_board (const char *fname){    load_scenario (fname);    fill_board ();}static void sel_scenario (HWND hwnd, int sel){    MENUBUTTONITEM mbi;    mbi.which = MB_WHICH_TEXT;    if (sel != cur_sel_scen) {        SendMessage (hwnd_menu, MBM_GETITEMDATA, sel, (LPARAM)&mbi);        load_scenario (mbi.text);        new_game (hwnd);        cur_sel_scen = sel;    }}static int fill_menu (HWND hwnd_menu){    int i = 0;    MENUBUTTONITEM mbi;    struct dirent *e;    //char *dname = "res/";    char *dname = "sameres/";    DIR *dir;    char buff [30];        dir = opendir (dname);    fprintf(stderr, "fill_menu 1\n");    if (!dir)        return -1;        fprintf(stderr, "fill_menu 2\n");    while ((e = readdir (dir)) != NULL){        //if (!strstr (e->d_name, "_same.gif")) {        if (!strstr (e->d_name, ".gif")) {            continue;        }        //strcpy (buff, "res/");        strcpy (buff, "sameres/");        strcat (buff, e->d_name);        mbi.text = buff;        mbi.bmp = NULL;        mbi.data = 0;        SendMessage (hwnd_menu, MBM_ADDITEM, -1, (LPARAM) &mbi);        i ++;    }    closedir (dir);    return i;}static HMENU createpmenugame (void){    HMENU hmnu;    MENUITEMINFO mii;    memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING;    mii.id          = 0;    mii.typedata    = (DWORD)pgame_menu[0];    hmnu = CreatePopupMenu (&mii);        memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING;    mii.state       = 0;    mii.id          = IDM_NEW;    mii.typedata    = (DWORD)pgame_menu[1];    InsertMenuItem(hmnu, 0, TRUE, &mii);#if 0        mii.type        = MFT_STRING;    mii.state       = 0;    mii.id          = IDM_SCORES;    mii.typedata    = (DWORD)"Scores...";    InsertMenuItem(hmnu, 1, TRUE, &mii);#endif    mii.type        = MFT_STRING;    mii.state       = 0;    mii.id          = IDM_EXIT;    mii.typedata    = (DWORD)pgame_menu[2];    InsertMenuItem(hmnu, 1, TRUE, &mii);        return hmnu;}#if 0static HMENU createpmenusettings (void){    HMENU hmnu;    MENUITEMINFO mii;    memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING;    mii.id          = 0;    mii.typedata    = (DWORD)"Settings";    hmnu = CreatePopupMenu (&mii);        mii.type        = MFT_STRING ;    mii.state       = 0;    mii.id          = IDM_PREF;    mii.typedata    = (DWORD)"Preferences...";    InsertMenuItem(hmnu, 0, TRUE, &mii);    return hmnu;}#endifstatic HMENU createpmenuabout (void){    HMENU hmnu;    MENUITEMINFO mii;    memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING;    mii.id          = 0;    mii.typedata    = (DWORD)pabout_menu[0];    hmnu = CreatePopupMenu (&mii);        memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING ;    mii.state       = 0;    mii.id          = IDM_ABOUT;    mii.typedata    = (DWORD)pabout_menu[1];    InsertMenuItem(hmnu, 0, 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)pmain_menu[0];    mii.hsubmenu    = createpmenugame ();    InsertMenuItem(hmnu, 0, TRUE, &mii);#if 0    mii.type        = MFT_STRING;    mii.id          = 110;    mii.typedata    = (DWORD)"Settings";    mii.hsubmenu    = createpmenusettings ();    InsertMenuItem(hmnu, 1, TRUE, &mii);#endif    mii.type        = MFT_STRING;    mii.id          = 120;    mii.typedata    = (DWORD)pmain_menu[1];    mii.hsubmenu    = createpmenuabout ();    InsertMenuItem(hmnu, 1, TRUE, &mii);                       return hmnu;}int SameGameProc (HWND hWnd, int message, WPARAM wParam, LPARAM lParam){    switch (message) {    case MSG_CREATE:    {        RECT rcClient;        MENUBUTTONITEM mbi;        GetClientRect (hWnd, &rcClient);        CreateWindow (CTRL_STATIC, pmessagebox[5],                     WS_CHILD | WS_VISIBLE | SS_RIGHT, 0,                    0, rcClient.bottom - GetSysCharHeight () - 4,                    100, GetSysCharHeight () + 4, hWnd, 0);        hwnd_menu = CreateWindow ("menubutton",                    "<scenario>",                     WS_CHILD | WS_VISIBLE, 100,                     100, rcClient.bottom - GetSysCharHeight () - 4,                      100, GetSysCharHeight () + 4, hWnd, 0);        if (fill_menu (hwnd_menu) <= 0) {            fprintf (stderr, "Can not find scenario.\n");            return -1;        }        SendMessage (hwnd_menu, MBM_SETCURITEM, 0, 0);        hwnd_score = CreateWindow (CTRL_STATIC, pmessagebox[6],                     WS_CHILD | WS_VISIBLE | SS_RIGHT, 0,                    200, rcClient.bottom - GetSysCharHeight () - 4,                    rcClient.right - 200, GetSysCharHeight () + 4, hWnd, 0);        mbi.which = MB_WHICH_TEXT;        SendMessage (hwnd_menu, MBM_GETITEMDATA, 2, (LPARAM)&mbi);        create_same_board (mbi.text);        new_game (hWnd);    }    break;            case MSG_COMMAND:        if (LOWORD(wParam) == 100 && HIWORD (wParam) == MBN_CHANGED) {            int sel = SendMessage (hwnd_menu, MBM_GETCURITEM, 0, 0);            if (sel >= 0)                sel_scenario (hWnd, sel);            break;        }        switch (wParam) {        case IDM_NEW:            new_game (hWnd);        break;        case IDM_SCORES:        break;                    case IDM_EXIT:            SendMessage (hWnd, MSG_CLOSE, 0, 0L);        break;        case IDM_PREF:        break;                    case IDM_ABOUT:            MessageBox (hWnd,                 pmessagebox[7],                pmessagebox[1],                MB_OK | MB_ICONINFORMATION);        break;    }    break;    case MSG_ERASEBKGND:    return 0;    case MSG_PAINT:    {        HDC hdc;        hdc = BeginPaint (hWnd);        paint (hWnd, hdc);        EndPaint (hWnd, hdc);        return 0;    }    case MSG_LBUTTONDOWN:    {        int x = LOWORD (lParam);        int y = HIWORD (lParam);        kill_balls (hWnd, x / STONE_SIZE, y / STONE_SIZE);        old_x = -1;        old_y = -1;    }    break;    case MSG_MOUSEMOVE:    {        int x = LOWORD (lParam);        int y = HIWORD (lParam);                if (PtInRect (&rcBoard, x, y))            mark_balls (hWnd, x / STONE_SIZE, y / STONE_SIZE);        else            unmark_balls (hWnd);    }    break;    case MSG_NCMOUSEMOVE:        if (wParam != HT_CLIENT)            unmark_balls (hWnd);    break;    case MSG_MOUSEMOVEIN:        if (!wParam)            unmark_balls (hWnd);        break;    case MSG_TIMER:        if (wParam == ID_TIMER) {            HDC hdc = GetClientDC (hWnd);            move_tagged_balls (hdc);            ReleaseDC (hdc);        }        break;    case MSG_SIZECHANGING:    {        const RECT* rc = (const RECT*)wParam;        RECT* rrc = (RECT*)lParam;        rrc->left = rc->left;        rrc->top = rc->top;        rrc->right = rc->left +             ClientWidthToWindowWidth (WS_CAPTION | WS_BORDER,                             STONE_COLS * STONE_SIZE);        rrc->bottom = rc->top + GetSysCharHeight () + 4 +            ClientHeightToWindowHeight (WS_CAPTION | WS_BORDER,                             STONE_LINES * STONE_SIZE, TRUE);    }        return 0;    case MSG_CLOSE:        if (MessageBox (hWnd,                     pmessagebox[0],                     pmessagebox[1],                     MB_YESNO | MB_ICONQUESTION |                    MB_BASEDONPARENT) != IDYES)            return 0;        DestroyAllControls (hWnd);           DestroyMainWindow (hWnd);        PostQuitMessage (hWnd);        return 0;    }    return DefaultMainWinProc (hWnd, message, wParam, lParam);}static void InitCreateInfo (PMAINWINCREATE pCreateInfo){    rcBoard.left = 0;    rcBoard.top = 0;    rcBoard.right = STONE_COLS * STONE_SIZE;    rcBoard.bottom = STONE_LINES * STONE_SIZE;        pCreateInfo->dwStyle = WS_CAPTION | WS_BORDER| WS_DLGFRAME;    pCreateInfo->dwExStyle = WS_EX_NONE;    if(strcasecmp(lang,"en")==0){        pCreateInfo->spCaption = "Same";    }    else if(strcasecmp(lang,"zh_cn")==0){        pCreateInfo->spCaption = "同色球";    }    else if(strcasecmp(lang,"zh_tw")==0){        pCreateInfo->spCaption = "同色球";    }    pCreateInfo->hMenu = createmenu ();    pCreateInfo->hCursor = GetSystemCursor (IDC_ARROW);    pCreateInfo->hIcon = 0;    pCreateInfo->MainWindowProc = SameGameProc;    pCreateInfo->lx =512 -ClientWidthToWindowWidth (WS_CAPTION | WS_BORDER,                             STONE_COLS * STONE_SIZE)/2;    pCreateInfo->ty = 384 -(ClientHeightToWindowHeight (WS_CAPTION | WS_BORDER, STONE_LINES * STONE_SIZE, TRUE)+GetSysCharHeight () + 4)/2;    pCreateInfo->rx = pCreateInfo->lx + \           ClientWidthToWindowWidth (WS_CAPTION | WS_BORDER,                             STONE_COLS * STONE_SIZE);    pCreateInfo->by = pCreateInfo->ty + \            ClientHeightToWindowHeight (WS_CAPTION | WS_BORDER,                             STONE_LINES * STONE_SIZE, TRUE);    pCreateInfo->by += GetSysCharHeight () + 4;    pCreateInfo->iBkColor = PIXEL_black;    pCreateInfo->dwAddData = 0;    pCreateInfo->hHosting = HWND_DESKTOP;}int MiniGUIMain (int argc, const char *argv []){    HWND hMainWnd;    MSG Msg;    MAINWINCREATE CreateInfo;#if defined(_LITE_VERSION) && !(_STAND_ALONE)    int i;    const char* layer = NULL;    for (i = 1; i < argc; i++) {        if (strcmp (argv[i], "-layer") == 0) {            layer = argv[i + 1];            //break;        }	else if( strcmp( argv[i], "-lang") == 0)             lang = argv[i+1];    }    //GetLayerInfo (layer, NULL, NULL, NULL);    if (JoinLayer (layer,argv[0], 0, 0) == INV_LAYER_HANDLE) {        printf ("JoinLayer: invalid layer handle.\n");        exit (1);    }#endif    if(strcasecmp(lang,"zh_cn")==0){        printf("\nlanguage=%s",lang);        pmain_menu =main_menu_cn;        pgame_menu =game_menu_cn;        pabout_menu =about_menu_cn;        pmessagebox =messagebox_cn;        phelpmessage =main_help_cn;         printf("\n2language=%s",lang);    }    else if(strcasecmp(lang,"zh_tw")==0){        pmain_menu =main_menu_tw;        pgame_menu =game_menu_tw;        pabout_menu =about_menu_tw;        pmessagebox =messagebox_tw;        phelpmessage =main_help_tw;     }    else if(strcasecmp(lang,"en")==0){        pmain_menu =main_menu_en;        pgame_menu =game_menu_en;        pabout_menu =about_menu_en;        phelpmessage =main_help_en;         pmessagebox =messagebox_en;    }       init_same();    InitCreateInfo (&CreateInfo);    hMainWnd = CreateMainWindow (&CreateInfo);    if (hMainWnd == HWND_INVALID)        return -1;    srand (time (NULL));    ShowWindow (hMainWnd, SW_SHOWNORMAL);    while( GetMessage (&Msg, hMainWnd) ) {        TranslateMessage (&Msg);        DispatchMessage (&Msg);    }    release_same();    MainWindowThreadCleanup (hMainWnd);    return 0;}#ifndef _LITE_VERSION#include <minigui/dti.c>#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文一区二区完整视频在线观看| 宅男在线国产精品| 激情久久五月天| 日韩高清不卡在线| 天天综合网 天天综合色| 亚洲免费色视频| 亚洲图片一区二区| 日日夜夜精品视频天天综合网| 亚洲最大色网站| 五月综合激情婷婷六月色窝| 亚洲成a天堂v人片| 日本免费在线视频不卡一不卡二| 日韩精品成人一区二区三区 | 久久99精品久久久久久国产越南| 天堂va蜜桃一区二区三区漫画版| 日韩精品电影在线| 久久精品国产成人一区二区三区| 国内精品国产三级国产a久久 | 国产高清在线观看免费不卡| 国产一区三区三区| 91亚洲精品一区二区乱码| 色婷婷久久久亚洲一区二区三区 | 欧美性大战xxxxx久久久| 欧美另类z0zxhd电影| 精品久久久久香蕉网| 国产精品水嫩水嫩| 亚洲午夜影视影院在线观看| 久久国产福利国产秒拍| 99久久久精品| 日韩美女在线视频| 亚洲色图第一区| 老司机免费视频一区二区| 国产一区不卡视频| 欧美丝袜自拍制服另类| 久久久久国产精品麻豆ai换脸| 中文字幕一区二区三区不卡| 亚洲成a人在线观看| 国产福利精品一区| 91精品国产综合久久久久久久| 国产欧美一区视频| 免费观看成人av| 欧洲一区二区三区免费视频| 久久久久国产一区二区三区四区| 亚洲图片自拍偷拍| 成人国产精品免费观看动漫| 91精品久久久久久久99蜜桃| 国产精品素人视频| 韩国理伦片一区二区三区在线播放 | 日韩精品一卡二卡三卡四卡无卡| 大桥未久av一区二区三区中文| 欧美男人的天堂一二区| 1000精品久久久久久久久| 久久66热re国产| 欧美日韩精品一区视频| 国产精品久久久久7777按摩| 国内精品久久久久影院薰衣草| 7777精品伊人久久久大香线蕉的 | 日韩欧美综合在线| 亚洲香肠在线观看| 94色蜜桃网一区二区三区| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 2022国产精品视频| 日韩福利电影在线| 欧美日韩精品系列| 亚洲一区二区三区中文字幕| www.色精品| 国产欧美精品一区aⅴ影院 | 精品乱码亚洲一区二区不卡| 亚洲自拍偷拍网站| 色婷婷精品久久二区二区蜜臀av| 中文字幕日本不卡| a4yy欧美一区二区三区| 国产精品久久久久永久免费观看| 高清在线不卡av| 国产精品三级久久久久三级| 成人激情午夜影院| 亚洲精品中文在线观看| 色欧美乱欧美15图片| 亚洲精品国产无天堂网2021| 色综合欧美在线视频区| 一区二区三区欧美| 欧美日韩成人综合天天影院| 日韩专区在线视频| 欧美成人精品高清在线播放 | 91视频免费播放| 亚洲精品视频一区| 欧美日韩在线观看一区二区 | 国产盗摄女厕一区二区三区| 欧美韩日一区二区三区四区| 不卡一区二区在线| 亚洲午夜激情网页| 精品久久久久久久人人人人传媒| 国产精品资源在线观看| 国产精品国产a| 欧美性生活久久| 久久精品国产色蜜蜜麻豆| 国产欧美精品一区二区色综合 | 日本不卡视频在线观看| 久久蜜桃一区二区| 91在线精品秘密一区二区| 洋洋av久久久久久久一区| 日韩久久免费av| 波多野洁衣一区| 天堂久久久久va久久久久| 国产喷白浆一区二区三区| 色先锋久久av资源部| 久久er精品视频| 亚洲女人的天堂| 精品剧情在线观看| 91网站最新地址| 黄页网站大全一区二区| 亚洲人快播电影网| 久久综合色8888| 欧美伊人久久久久久午夜久久久久| 秋霞午夜av一区二区三区| 国产精品午夜春色av| 91麻豆精品国产| 92精品国产成人观看免费| 国内成人自拍视频| 亚洲国产精品精华液网站| 欧美激情艳妇裸体舞| 日韩欧美另类在线| 欧美日韩精品一区二区三区蜜桃 | 6080日韩午夜伦伦午夜伦| 成人手机在线视频| 久久国内精品自在自线400部| 亚洲天天做日日做天天谢日日欢 | 国产丝袜在线精品| 91精品国产一区二区人妖| 暴力调教一区二区三区| 久久99国产精品久久99| 午夜久久福利影院| 亚洲精品一二三四区| 中文字幕不卡的av| 久久夜色精品国产噜噜av| 91精品欧美一区二区三区综合在| 色网站国产精品| 99视频在线精品| 粉嫩久久99精品久久久久久夜| 免费在线观看日韩欧美| 偷拍一区二区三区四区| 亚洲一区二区视频在线| 亚洲色欲色欲www在线观看| 国产欧美日韩精品在线| 久久老女人爱爱| 久久婷婷色综合| 国产三级一区二区三区| 精品国精品自拍自在线| 欧美成人精品福利| 日韩欧美激情一区| 欧美v日韩v国产v| 日韩精品一区国产麻豆| 日韩精品在线一区| 日韩一区二区免费电影| 日韩一区二区免费电影| 欧美一级高清片在线观看| 日韩欧美国产精品| 精品女同一区二区| 精品动漫一区二区三区在线观看| 日韩亚洲欧美成人一区| 日韩免费看的电影| 久久九九国产精品| 日本一区免费视频| 中文字幕一区二区三区四区| 一区二区三区在线播| 亚洲激情图片qvod| 日韩在线一区二区三区| 日韩电影在线一区| 久久91精品国产91久久小草| 国产一区二区三区在线观看精品| 国产丶欧美丶日本不卡视频| 99麻豆久久久国产精品免费| 99热在这里有精品免费| 欧美视频一区二区三区四区| 777欧美精品| 日本一区二区三区电影| 亚洲色图制服丝袜| 日精品一区二区三区| 国产精选一区二区三区| 91亚洲精华国产精华精华液| 欧美日韩国产在线观看| 精品嫩草影院久久| 中文字幕一区二区日韩精品绯色| 亚洲国产成人porn| 黄色日韩网站视频| 91亚洲精品乱码久久久久久蜜桃| 欧美精品三级在线观看| 国产欧美日韩不卡免费| 亚洲一区二区在线免费观看视频| 美女mm1313爽爽久久久蜜臀| 成人手机电影网| 91精品国产91久久久久久一区二区 | 日韩精品一二三四| 国v精品久久久网| 欧美久久一二区| 亚洲欧洲国产日本综合| 日本sm残虐另类| 在线欧美日韩国产| 国产精品少妇自拍| 精品无人码麻豆乱码1区2区|