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

📄 housekeeper.c

📁 minigui 1.6.10 游戏例子 能对编程有很大启发
💻 C
📖 第 1 页 / 共 2 页
字号:
/*    ** housekeeper: the housekeeper game.** Copyright (C) 2002~2007  Feynman Software** This program 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 program 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 program; if not, write to the Free Software Foundation, Inc.,** 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.*/#include "map.h"#define ID_GOTO		7980#define ID_NEXT		7990#define ID_PREVIOUS     8000 #define ID_RESTART	8010#define ID_UNDO		8020#define ID_EXIT		8040#define	ID_MAP_A	8050#define	ID_MAP_B	8060#define	ID_MAP_C	8070#define	ID_MAP_D	8080#define	ID_MAP_E	8090#define	ID_MAP_F	8100#define	ID_MAP_G	8110#define	ID_MAP_H	8120#define ID_ABOUT	8130	#define  WIDTH_LARGEWIN   600#define  HEIGHT_LARGEWIN  400int TestMyWinProc(HWND hWnd,int message,WPARAM wParam,LPARAM lParam);void InitMyWinCreateInfo(PMAINWINCREATE pCreateInfo);HMENU createmenu1(void);HMENU createpmenugame(void);HMENU createpmenucollection(void);HMENU createpmenuabout(void);BOOL InitializeApp(void);void OnClose(HWND hWnd);void OnDraw(HWND hWnd,HDC hDC);static BITMAP bitmapAll[6];static const char* lang= "en";static const char**pmain_menu =NULL;static const char**pgame_menu =NULL;static const char**pabout_menu =NULL;static const char**pcollection_menu =NULL;static const char**pmessagebox =NULL;static const char* messagebox_cn[] ={    "选择游戏级别",    "游戏级别",    "确定",    "取消",    "推箱子-1.0\n\nCopyright (C) 2003 ~ 2008 北京飞漫软件技术有限公司\n\n 保留所有权利",    "推箱子",    "任务完成",    "你行!"};static const char* messagebox_tw[] ={    "選擇游戲級別",    "游戲級別",    "確定",    "取消",    "推箱子-1.0\n\nCopyright (C) 2003 ~ 2008 北京飛漫軟件技術有限公司\n\n 保留所有權利",    "推箱子",    "任務完成",    "你行!"};static const char* messagebox_en[] ={    "Choose level",          //0    "Game Level:",           //1    "Ok",                    //2    "Cancel",                //3    "House Keeper -- Version 1.0\n\nCopyright (C) 2003 ~ 2008 Beijing Feynman Software Technology Co., Ltd.\nAll rights reserved.",   //4    "House Keeper",          //5    "Misson Completed!",     //6    "Good"                   //7};static const char* collection_menu_cn[] ={    "排列集合",    "排列集合 A",    "排列集合 B",    "排列集合 C",    "排列集合 D",    "排列集合 E",    "排列集合 F",    "排列集合 G",    "排列集合 H"};static const char* collection_menu_tw[] ={    "排列集合",    "排列集合 A",    "排列集合 B",    "排列集合 C",    "排列集合 D",    "排列集合 E",    "排列集合 F",    "排列集合 G",    "排列集合 H"};static const char* collection_menu_en[] ={    "Collection",    "Collection A",    "Collection B",    "Collection C",    "Collection D",    "Collection E",    "Collection F",    "Collection G",    "Collection H"};static const char* about_menu_cn[] ={    "关于",    "关于推箱子游戏"};static const char* about_menu_tw[] ={    "關於",    "關於推箱子游戲"};static const char* about_menu_en[] ={    "About",    "About House Keeper"};static const char* game_menu_cn[] ={    "游戏",    "选择级別",    "下一级別",    "上一级別",    "重新开始",    "撤消",    "退出"};static const char* game_menu_tw[] ={    "游戲",    "選擇級別",    "下一級別",    "上一級別",    "重新開始",    "撤消",    "退出"};static const char* game_menu_en[] ={    "Game",                      //0    "Goto Level",                //1    "Next Level",                //2    "Previous Level",            //3    "Restart Level",             //4    "Undo",                      //5    "Exit"                      //6};static const char* main_menu_cn[] ={    "游戏",    "排列集合",    "关于"};static const char* main_menu_tw[] ={    "游戲",    "排列集合",    "關於"};static const char* main_menu_en[] ={    "Game",    "Collection",    "About"};static PLOGFONT cap_font = NULL;static PLOGFONT ctrl_font = NULL;static PLOGFONT menu_font = NULL;static PLOGFONT utf8_font = NULL;static void init_housekeeper(void){    cap_font = g_SysLogFont[SYSLOGFONT_CAPTION];    ctrl_font = g_SysLogFont[SYSLOGFONT_CONTROL];    menu_font = g_SysLogFont[SYSLOGFONT_MENU];    utf8_font = CreateLogFontByName("*-Arial-rrncnn-*-12-UTF-8");    g_SysLogFont[SYSLOGFONT_CAPTION] = utf8_font;    g_SysLogFont[SYSLOGFONT_CONTROL] = utf8_font;    g_SysLogFont[SYSLOGFONT_MENU] = utf8_font;    if(strcasecmp(lang,"zh_cn")==0){        local_SysText = GetSysTextInUTF8("zh_CN");    }    else if(strcasecmp(lang,"zh_tw")==0){        local_SysText = GetSysTextInUTF8("zh_TW");    }    else       local_SysText = GetSysTextInUTF8("EN");}static void release_housekeeper(void){    g_SysLogFont[SYSLOGFONT_CAPTION] = cap_font;    g_SysLogFont[SYSLOGFONT_CONTROL] = ctrl_font;    g_SysLogFont[SYSLOGFONT_MENU] = menu_font;    DestroyLogFont(utf8_font);}#define IDC_LEVELINPUT 9000DLGTEMPLATE DlgInputLevel = {    WS_BORDER | WS_CAPTION,    WS_EX_IMECOMPOSE,    70, 80, 400, 158,    "Choose level",    0, 0,    4, NULL,    0};CTRLDATA CtrlInputLevel [] = {    {        "static",        WS_VISIBLE | SS_RIGHT,        14, 30, 150, 18,        IDC_STATIC,         "Game Level:",        0    },    {        "edit",        WS_VISIBLE | WS_BORDER | WS_TABSTOP,         180, 30, 100, 22,         IDC_LEVELINPUT,         NULL,        0    },    {        "button",        WS_VISIBLE | BS_PUSHBUTTON | WS_TABSTOP,         80, 94, 100, 28,         IDOK,         "Ok",        0     },    {        "button",        WS_VISIBLE | BS_PUSHBUTTON | WS_TABSTOP,        256, 94, 100, 28,         IDCANCEL,         "Cancel",         0    }};  static int DialogInputLevelProc(HWND hDlg, int message, WPARAM wParam, LPARAM lParam){	char strText[4];	int i;	switch (message) {	case MSG_INITDIALOG:        	return 1;            	case MSG_COMMAND:		switch (wParam) {		case IDOK:			GetDlgItemText(hDlg,IDC_LEVELINPUT,strText,3);			i = atoi(strText);			EndDialog(hDlg,i);			break;		case IDCANCEL:		    EndDialog (hDlg, 0);		    break;		}		break;    }        return DefaultDialogProc (hDlg, message, wParam, lParam);}HMENU createmenu1(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);    mii.type        = MFT_STRING;    mii.id          = 110;    mii.typedata    = (DWORD)pmain_menu[1];    mii.hsubmenu    = createpmenucollection();    InsertMenuItem(hmnu, 1, TRUE, &mii);        mii.type        = MFT_STRING;    mii.id          = 120;    mii.typedata    = (DWORD)pmain_menu[2];    mii.hsubmenu    = createpmenuabout();    InsertMenuItem(hmnu, 2, TRUE, &mii);                       return hmnu;}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          = ID_ABOUT;    mii.typedata    = (DWORD)pabout_menu[1];    InsertMenuItem(hmnu, 0, TRUE, &mii);    return hmnu;}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          = ID_GOTO;    mii.typedata    = (DWORD)pgame_menu[1];    InsertMenuItem(hmnu, 0, TRUE, &mii);    memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING ;    mii.state       = 0;    mii.id          = ID_NEXT;    mii.typedata    = (DWORD)pgame_menu[2];    InsertMenuItem(hmnu, 1, TRUE, &mii);    memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING ;    mii.state       = 0;    mii.id          = ID_PREVIOUS;    mii.typedata    = (DWORD)pgame_menu[3];    InsertMenuItem(hmnu, 2, TRUE, &mii);        mii.type        = MFT_STRING ;    mii.state       = 0;    mii.id          = ID_RESTART;    mii.typedata    = (DWORD)pgame_menu[4];    InsertMenuItem(hmnu, 3, TRUE, &mii);        mii.type        = MFT_STRING ;    mii.state       = 0;    mii.id          = ID_UNDO;    mii.typedata    = (DWORD)pgame_menu[5];    InsertMenuItem(hmnu, 4, TRUE, &mii);    mii.type        = MFT_STRING ;    mii.state       = 0;    mii.id          = ID_EXIT;    mii.typedata    = (DWORD)pgame_menu[6];    InsertMenuItem(hmnu, 5, TRUE, &mii);        return hmnu;}HMENU createpmenucollection(void){    HMENU hmnu;    MENUITEMINFO mii;    memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING;    mii.id          = 0;    mii.typedata    = (DWORD)pcollection_menu[0];    hmnu = CreatePopupMenu (&mii);        memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING ;    mii.state       = 0;    mii.id          = ID_MAP_A;    mii.typedata    = (DWORD)pcollection_menu[1];    InsertMenuItem(hmnu, 0, TRUE, &mii);    memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING ;    mii.state       = 0;    mii.id          = ID_MAP_B;    mii.typedata    = (DWORD)pcollection_menu[2];    InsertMenuItem(hmnu, 1, TRUE, &mii);    memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING ;    mii.state       = 0;    mii.id          = ID_MAP_C;    mii.typedata    = (DWORD)pcollection_menu[3];    InsertMenuItem(hmnu, 2, TRUE, &mii);    memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING ;    mii.state       = 0;    mii.id          = ID_MAP_D;    mii.typedata    = (DWORD)pcollection_menu[4];    InsertMenuItem(hmnu, 3, TRUE, &mii);    memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING ;    mii.state       = 0;    mii.id          = ID_MAP_E;    mii.typedata    = (DWORD)pcollection_menu[5];    InsertMenuItem(hmnu, 4, TRUE, &mii);    memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING ;    mii.state       = 0;    mii.id          = ID_MAP_F;

⌨️ 快捷键说明

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