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

📄 housekeeper.c

📁 MINI GUI1.6X源码
💻 C
📖 第 1 页 / 共 2 页
字号:
/* * $Id: housekeeper.c,v 1.12 2003/08/15 08:45:46 weiym Exp $ * *little game housekeeper, also named sokoban.  *written by Song Lixin(zjujoe@263.net) 2001.3.6 */#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];#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)"Game";    mii.hsubmenu    = createpmenugame();    InsertMenuItem(hmnu, 0, TRUE, &mii);    mii.type        = MFT_STRING;    mii.id          = 110;    mii.typedata    = (DWORD)"Collection";    mii.hsubmenu    = createpmenucollection();    InsertMenuItem(hmnu, 1, TRUE, &mii);        mii.type        = MFT_STRING;    mii.id          = 120;    mii.typedata    = (DWORD)"About";    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)"About";    hmnu = CreatePopupMenu (&mii);        memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING ;    mii.state       = 0;    mii.id          = ID_ABOUT;    mii.typedata    = (DWORD)"About House Keeper";    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)"Game";    hmnu = CreatePopupMenu (&mii);        memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING ;    mii.state       = 0;    mii.id          = ID_GOTO;    mii.typedata    = (DWORD)"Goto Level";    InsertMenuItem(hmnu, 0, TRUE, &mii);    memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING ;    mii.state       = 0;    mii.id          = ID_NEXT;    mii.typedata    = (DWORD)"Next Level";    InsertMenuItem(hmnu, 1, TRUE, &mii);    memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING ;    mii.state       = 0;    mii.id          = ID_PREVIOUS;    mii.typedata    = (DWORD)"Previous Level";    InsertMenuItem(hmnu, 2, TRUE, &mii);        mii.type        = MFT_STRING ;    mii.state       = 0;    mii.id          = ID_RESTART;    mii.typedata    = (DWORD)"Restart Level";    InsertMenuItem(hmnu, 3, TRUE, &mii);        mii.type        = MFT_STRING ;    mii.state       = 0;    mii.id          = ID_UNDO;    mii.typedata    = (DWORD)"Undo";    InsertMenuItem(hmnu, 4, TRUE, &mii);    mii.type        = MFT_STRING ;    mii.state       = 0;    mii.id          = ID_EXIT;    mii.typedata    = (DWORD)"Exit";    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)"Collection";    hmnu = CreatePopupMenu (&mii);        memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING ;    mii.state       = 0;    mii.id          = ID_MAP_A;    mii.typedata    = (DWORD)"Collection A";    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)"Collection B";    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)"Collection C";    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)"Collection D";    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)"Collection E";    InsertMenuItem(hmnu, 4, TRUE, &mii);    memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING ;    mii.state       = 0;    mii.id          = ID_MAP_F;    mii.typedata    = (DWORD)"Collection F";    InsertMenuItem(hmnu, 5, TRUE, &mii);    memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING ;    mii.state       = 0;    mii.id          = ID_MAP_G;    mii.typedata    = (DWORD)"Collection G";    InsertMenuItem(hmnu, 6, TRUE, &mii);    memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING ;    mii.state       = 0;    mii.id          = ID_MAP_H;    mii.typedata    = (DWORD)"Collection H";    InsertMenuItem(hmnu, 7, TRUE, &mii);    return hmnu;}int TestMyWinProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam){	HDC hdc;	int iRet;	int x,y;	ptagLevelCollection pTempColl;	ptagLevel pTempLev;	int iDir = 0;	//char strTemp[50];	switch(message){	case MSG_CREATE:		if(!InitializeApp()){            return 1;		}    	DlgInputLevel.controls = CtrlInputLevel;		break;	case MSG_COMMAND:		switch(LOWORD(wParam)){			case ID_GOTO:    			iRet = DialogBoxIndirectParam(&DlgInputLevel, hWnd, DialogInputLevelProc, 0L);			if ((iRet > 0) && (iRet <= theMap->current->iNoOfLevels)) {				pTempLev = theMap->current->head;				if (pTempLev->iNo != iRet) {					pTempLev = pTempLev->next;					while(pTempLev != theMap->current->head) {						if(pTempLev->iNo == iRet) 							break;						pTempLev = pTempLev->next;					}				}				        if ((pTempLev->iNo == iRet) && (pTempLev != theMap->currentLevel)) {					theMap->current->current = pTempLev;					PlayRestart();					InvalidateRect(hWnd, NULL, TRUE);				}					}			break;		case ID_NEXT:			theMap->current->current = theMap->current->current->next;			PlayRestart();			InvalidateRect(hWnd, NULL, TRUE);			break;		case ID_PREVIOUS:			theMap->current->current = theMap->current->current->prev;			PlayRestart();			InvalidateRect(hWnd, NULL, TRUE);			break;		case ID_RESTART:			PlayRestart();			InvalidateRect(hWnd, NULL, TRUE);			break;		case ID_UNDO:			PlayUndo(hWnd); 			break;		case ID_EXIT:		 	OnClose(hWnd);

⌨️ 快捷键说明

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