📄 game1.cpp
字号:
SendDlgItemMessage(hdlg,IDRADIOBUTTON1,BM_SETCHECK,ispeed1[0],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON2,BM_SETCHECK,ispeed1[1],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON3,BM_SETCHECK,ispeed1[2],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON4,BM_SETCHECK,ispeed1[3],0);
sballbuf = 1;
break;
case IDRADIOBUTTON5:
for(i=0;i<4;i++){ispeed2[i]=0;}
ispeed2[0] = 1;
SendDlgItemMessage(hdlg,IDRADIOBUTTON5,BM_SETCHECK,ispeed2[0],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON6,BM_SETCHECK,ispeed2[1],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON7,BM_SETCHECK,ispeed2[2],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON8,BM_SETCHECK,ispeed2[3],0);
slinebuf = 10;
break;
case IDRADIOBUTTON6:
for(i=0;i<4;i++){ispeed2[i]=0;}
ispeed2[1] = 1;
SendDlgItemMessage(hdlg,IDRADIOBUTTON5,BM_SETCHECK,ispeed2[0],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON6,BM_SETCHECK,ispeed2[1],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON7,BM_SETCHECK,ispeed2[2],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON8,BM_SETCHECK,ispeed2[3],0);
slinebuf = 20;
break;
case IDRADIOBUTTON7:
for(i=0;i<4;i++){ispeed2[i]=0;}
ispeed2[2] = 1;
SendDlgItemMessage(hdlg,IDRADIOBUTTON5,BM_SETCHECK,ispeed2[0],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON6,BM_SETCHECK,ispeed2[1],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON7,BM_SETCHECK,ispeed2[2],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON8,BM_SETCHECK,ispeed2[3],0);
slinebuf = 30;
break;
case IDRADIOBUTTON8:
for(i=0;i<4;i++){ispeed2[i]=0;}
ispeed2[3] = 1;
SendDlgItemMessage(hdlg,IDRADIOBUTTON5,BM_SETCHECK,ispeed2[0],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON6,BM_SETCHECK,ispeed2[1],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON7,BM_SETCHECK,ispeed2[2],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON8,BM_SETCHECK,ispeed2[3],0);
slinebuf = 5;
break;
case IDPUSHBUTTON1:
sball = sballbuf; sline = slinebuf;
EndDialog(hdlg,0);
break;
case IDPUSHBUTTON2:
EndDialog(hdlg,0);
break;
//-------------------------------------
case IDRADIOBUTTON9:
for(i=0;i<4;i++){isize1[i]=0;}
isize1[0] = 1;
SendDlgItemMessage(hdlg,IDRADIOBUTTON9,BM_SETCHECK,isize1[0],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON10,BM_SETCHECK,isize1[1],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON11,BM_SETCHECK,isize1[2],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON12,BM_SETCHECK,isize1[3],0);
Dbuf = 40;
break;
case IDRADIOBUTTON10:
for(i=0;i<4;i++){isize1[i]=0;}
isize1[1] = 1;
SendDlgItemMessage(hdlg,IDRADIOBUTTON9,BM_SETCHECK,isize1[0],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON10,BM_SETCHECK,isize1[1],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON11,BM_SETCHECK,isize1[2],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON12,BM_SETCHECK,isize1[3],0);
Dbuf = 60;
break;
case IDRADIOBUTTON11:
for(i=0;i<4;i++){isize1[i]=0;}
isize1[2] = 1;
SendDlgItemMessage(hdlg,IDRADIOBUTTON9,BM_SETCHECK,isize1[0],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON10,BM_SETCHECK,isize1[1],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON11,BM_SETCHECK,isize1[2],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON12,BM_SETCHECK,isize1[3],0);
Dbuf = 80;
break;
case IDRADIOBUTTON12:
for(i=0;i<4;i++){isize1[i]=0;}
isize1[3] = 1;
SendDlgItemMessage(hdlg,IDRADIOBUTTON9,BM_SETCHECK,isize1[0],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON10,BM_SETCHECK,isize1[1],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON11,BM_SETCHECK,isize1[2],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON12,BM_SETCHECK,isize1[3],0);
Dbuf = 20;
break;
case IDRADIOBUTTON13:
for(i=0;i<4;i++){isize2[i]=0;}
isize2[0] = 1;
SendDlgItemMessage(hdlg,IDRADIOBUTTON13,BM_SETCHECK,isize2[0],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON14,BM_SETCHECK,isize2[1],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON15,BM_SETCHECK,isize2[2],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON16,BM_SETCHECK,isize2[3],0);
Lbuf = 80;
break;
case IDRADIOBUTTON14:
for(i=0;i<4;i++){isize2[i]=0;}
isize2[1] = 1;
SendDlgItemMessage(hdlg,IDRADIOBUTTON13,BM_SETCHECK,isize2[0],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON14,BM_SETCHECK,isize2[1],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON15,BM_SETCHECK,isize2[2],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON16,BM_SETCHECK,isize2[3],0);
Lbuf = 100;
break;
case IDRADIOBUTTON15:
for(i=0;i<4;i++){isize2[i]=0;}
isize2[2] = 1;
SendDlgItemMessage(hdlg,IDRADIOBUTTON13,BM_SETCHECK,isize2[0],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON14,BM_SETCHECK,isize2[1],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON15,BM_SETCHECK,isize2[2],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON16,BM_SETCHECK,isize2[3],0);
Lbuf = 120;
break;
case IDRADIOBUTTON16:
for(i=0;i<4;i++){isize2[i]=0;}
isize2[3] = 1;
SendDlgItemMessage(hdlg,IDRADIOBUTTON13,BM_SETCHECK,isize2[0],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON14,BM_SETCHECK,isize2[1],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON15,BM_SETCHECK,isize2[2],0);
SendDlgItemMessage(hdlg,IDRADIOBUTTON16,BM_SETCHECK,isize2[3],0);
Lbuf = 40;
break;
case IDPUSHBUTTON3:
D = Dbuf; L = Lbuf;
EndDialog(hdlg,0);
break;
case IDPUSHBUTTON4:
EndDialog(hdlg,0);
break;
//-------------------------------------
case IDPUSHBUTTON5:
crRGB[0] = crRGBbuf[0];
crRGB[1] = crRGBbuf[1];
crRGB[2] = crRGBbuf[2];
EndDialog(hdlg,0);
break;
case IDPUSHBUTTON6:
EndDialog(hdlg,0);
break;
//-------------------------------------
case IDS_LISTBOX1:
if(HIWORD(wParam) == LBN_DBLCLK)
{
r = 0;
nIndex = SendDlgItemMessage(hdlg,IDS_LISTBOX1,LB_GETCURSEL,0,0L);
SendDlgItemMessage(hdlg,IDS_LISTBOX1,LB_GETTEXT,nIndex,(LPARAM)szTemps);
if(strstr(szTemps,"[-")!=NULL)
{
getpath(szTemps);
strcpy(szDirs,szTemps);
strcat(szDirs,":");
strcpy(szPaths,szDirs);
strcat(szPaths,"\\*.*");
}
else if(strstr(szTemps,"..")!=NULL)
{
getdir(szDirs);
strcpy(szPaths,szDirs);
strcat(szPaths,"\\*.*");
}
else if(strchr(szTemps,'[')!=NULL)
{
getpath(szTemps);
strcat(szDirs,"\\");
strcat(szDirs,szTemps);
strcpy(szPaths,szDirs);
strcat(szPaths,"\\*.*");
}
else
r = 1;
if(r == 0)
{
SendDlgItemMessage(hdlg,IDS_LISTBOX1,LB_RESETCONTENT,0,0L);
SendDlgItemMessage(hdlg,IDS_LISTBOX1,LB_DIR,0x4010,(LPARAM)szPaths);
strcpy(szDir1s,szDirs);
strcat(szDir1s,"\\");
SetDlgItemText(hdlg,IDS_EDITTEXT1,szDir1s);
SetDlgItemText(hdlg,IDS_EDITTEXT2,"");
}
else
{
SetDlgItemText(hdlg,IDS_EDITTEXT2,szTemps);
}
}
break;
case IDPUSHBUTTON7:
dwNameSize = SendDlgItemMessage(hdlg,IDS_EDITTEXT2,WM_GETTEXTLENGTH,0,0L);
if(dwNameSize != 0)
{
SendDlgItemMessage(hdlg,IDS_EDITTEXT2,WM_GETTEXT,dwNameSize+1,(LPARAM)lpszFileName);
strcpy(szDir2s,szDir1s);
strcat(szDir2s,lpszFileName);
strcpy(lpszFileName,szDir2s);
DataToFile(hWnd,lpszFileName);
EndDialog(hdlg,0);
}
else
{
MessageBox(hWnd,"必须输入或选择文件名",NULL,MB_OK|MB_ICONEXCLAMATION);
}
break;
case IDPUSHBUTTON8:
EndDialog(hdlg,0);
break;
//-------------------------------------
case IDS_LISTBOX2:
if(HIWORD(wParam) == LBN_DBLCLK)
{
r = 0;
nIndex = SendDlgItemMessage(hdlg,IDS_LISTBOX2,LB_GETCURSEL,0,0L);
SendDlgItemMessage(hdlg,IDS_LISTBOX2,LB_GETTEXT,nIndex,(LPARAM)szTempl);
if(strstr(szTempl,"[-")!=NULL)
{
getpath(szTempl);
strcpy(szDirl,szTempl);
strcat(szDirl,":");
strcpy(szPathl,szDirl);
strcat(szPathl,"\\*.*");
}
else if(strstr(szTempl,"..")!=NULL)
{
getdir(szDirl);
strcpy(szPathl,szDirl);
strcat(szPathl,"\\*.*");
}
else if(strchr(szTempl,'[')!=NULL)
{
getpath(szTempl);
strcat(szDirl,"\\");
strcat(szDirl,szTempl);
strcpy(szPathl,szDirl);
strcat(szPathl,"\\*.*");
}
else
r = 1;
if(r == 0)
{
SendDlgItemMessage(hdlg,IDS_LISTBOX2,LB_RESETCONTENT,0,0L);
SendDlgItemMessage(hdlg,IDS_LISTBOX2,LB_DIR,0x4010,(LPARAM)szPathl);
strcpy(szDir1l,szDirl);
strcat(szDir1l,"\\");
SetDlgItemText(hdlg,IDS_EDITTEXT3,szDir1l);
SetDlgItemText(hdlg,IDS_EDITTEXT4,"");
}
else
{
SetDlgItemText(hdlg,IDS_EDITTEXT4,szTempl);
}
}
break;
case IDPUSHBUTTON9:
dwNameSize = SendDlgItemMessage(hdlg,IDS_EDITTEXT4,WM_GETTEXTLENGTH,0,0L);
if(dwNameSize != 0)
{
SendDlgItemMessage(hdlg,IDS_EDITTEXT4,WM_GETTEXT,dwNameSize+1,(LPARAM)lpszFileName);
strcpy(szDir2l,szDir1l);
strcat(szDir2l,lpszFileName);
strcpy(lpszFileName,szDir2l);
FileToData(hWnd,lpszFileName);
EndDialog(hdlg,0);
}
else
{
MessageBox(hWnd,"必须选择文件名",NULL,MB_OK|MB_ICONEXCLAMATION);
}
break;
case IDPUSHBUTTON10:
EndDialog(hdlg,0);
break;
default:
break;
}
break;
//-----------------------------------------------
//-----------------------------------------------
case WM_HSCROLL:
i = 0;
while(hwScroll[i]!=(HWND)lParam)
i++;
switch(LOWORD(wParam))
{
case SB_LINEDOWN:
CurrentVal[i]++;
if(CurrentVal[i]>255)
CurrentVal[i] = 255;
break;
case SB_LINEUP:
CurrentVal[i]--;
if(CurrentVal[i]<0)
CurrentVal[i] = 0;
break;
case SB_PAGEDOWN:
CurrentVal[i]+=(255-CurrentVal[i])/2;
break;
case SB_PAGEUP:
CurrentVal[i]-=CurrentVal[i]/2;
break;
case SB_THUMBTRACK:
CurrentVal[i] = HIWORD(wParam);
break;
case SB_TOP:
CurrentVal[i] = 0;
break;
case SB_BOTTOM:
CurrentVal[i] = 255;
break;
}
SetScrollPos(hwScroll[i],SB_CTL,crRGBbuf[i],TRUE);
SetDlgItemText(hdlg,IDC_VALRED+i,itoa(CurrentVal[i],szString,10));
crRGBbuf[i] = CurrentVal[i];
break;
case WM_CLOSE:
EndDialog(hdlg,0);
return 1;
}
return 0;
}
//-------------------------------------------------------------------
//-------------------------------------------------------------------
//
// 创建窗口
//
BOOL InitWindows(HINSTANCE hInstance,int nCmdShow)
{
hInst = hInstance;
hMenu = LoadMenu(hInstance,"Menu");
hWnd = CreateWindow("WinFill",
"测试用小游戏",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
0,
650,
530,
NULL,
hMenu,
hInstance,
NULL);
if(!hWnd)
return FALSE;
hWndMain = hWnd;
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);
return TRUE;
}
//-------------------------------------------------------------------
//-------------------------------------------------------------------
//
// 声明窗口类
//
BOOL InitWindowsClass(HINSTANCE hInstance)
{
WNDCLASS WndClass;
WndClass.cbClsExtra = 0;
WndClass.cbWndExtra = 0;
WndClass.hbrBackground = (HBRUSH)(GetStockObject(WHITE_BRUSH));//RGB(0,0,255)
WndClass.hCursor = LoadCursor(NULL,IDC_ARROW);
WndClass.hIcon = LoadIcon(NULL,"END");
WndClass.hInstance = hInstance;
WndClass.lpfnWndProc = WndProc;
WndClass.lpszClassName = "WinFill";
WndClass.lpszMenuName = NULL;
WndClass.style = CS_HREDRAW|CS_VREDRAW;
return RegisterClass(&WndClass);
}
//-------------------------------------------------------------------
//-------------------------------------------------------------------
//
// 实现去掉列表框文本中的“[”,“]”,“-”字符。
//
BOOL getpath(char szTemp[200])
{
char *pch;
while(1)
{
if((pch = strchr(szTemp,'['))!=NULL)
{
for(unsigned int i = pch-szTemp;i<strlen(szTemp);i++)
{
szTemp[i] = szTemp[i+1];
}
}
else if((pch = strchr(szTemp,']'))!=NULL)
{
for(unsigned int i = pch-szTemp;i<strlen(szTemp);i++)
{
szTemp[i] = szTemp[i+1];
}
}
else if((pch = strchr(szTemp,'-'))!=NULL)
{
for(unsigned int i = pch-szTemp;i<strlen(szTemp);i++)
{
szTemp[i] = szTemp[i+1];
}
}
else
{
break;
}
}
return 1;
}
//-------------------------------------------------------------------
//-------------------------------------------------------------------
//
// 实现得到上一级的目录。
//
BOOL getdir(char szDir[200])
{
for(int i = strlen(szDir)-1;i>=0;i--)
{
if(szDir[i] == 92)
{
szDir[i] = '\0';
break;
}
}
return 1;
}
//-------------------------------------------------------------------
//-------------------------------------------------------------------
//
// 保存文件。
//
BOOL DataToFile(HWND hWnd,LPCTSTR lpszFileName)
{
DWORD dwByteWrite;int *lpBufPtr;DWORD dwFileSize = 68;
hFile = CreateFile(lpszFileName,
GENERIC_READ|GENERIC_WRITE,
0,
NULL,
OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
(HANDLE)NULL);
if(hFile != INVALID_HANDLE_VALUE)
{
lpBufPtr = (int *)malloc(dwFileSize);
if(lpBufPtr != NULL)
{
*lpBufPtr = x;*(lpBufPtr+1) = y;*(lpBufPtr+2) = fx;*(lpBufPtr+3) = fy;
*(lpBufPtr+4) = D;*(lpBufPtr+5) = L;*(lpBufPtr+6) = sball;*(lpBufPtr+7) = sline;
*(lpBufPtr+8) = x1;*(lpBufPtr+9) = crRGB[0];*(lpBufPtr+10) = crRGB[1];*(lpBufPtr+11) = crRGB[2];
*(lpBufPtr+12) = life;*(lpBufPtr+13) = p;*(lpBufPtr+14) = eg;*(lpBufPtr+15) = ready;
*(lpBufPtr+16) = gameover;
WriteFile(hFile,(LPVOID)lpBufPtr,dwFileSize,&dwByteWrite,NULL);
free(lpBufPtr);
}
else
{
MessageBox(hWnd,"内存分配失败",NULL,MB_OK|MB_ICONEXCLAMATION);
return 0;
}
}
else
{
MessageBox(hWnd,"打开文件失败",NULL,MB_OK|MB_ICONEXCLAMATION);
return 0;
}
CloseHandle(hFile);
return 1;
}
//-------------------------------------------------------------------
//-------------------------------------------------------------------
//
// 读取文件。
//
BOOL FileToData(HWND hWnd,LPSTR lpszFileName)
{
DWORD dwByteRead;DWORD dwFileSize = 68;int *lpBufPtr;
hFile = CreateFile(lpszFileName,
GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
(HANDLE)NULL);
if(hFile != INVALID_HANDLE_VALUE)
{
lpBufPtr = (int *)malloc(dwFileSize);
if(lpBufPtr != NULL)
{
ReadFile(hFile,(LPVOID)lpBufPtr,dwFileSize,&dwByteRead,NULL);
x = *lpBufPtr;y = *(lpBufPtr+1);fx = *(lpBufPtr+2);fy = *(lpBufPtr+3);
D = *(lpBufPtr+4);L = *(lpBufPtr+5);sball = *(lpBufPtr+6);sline = *(lpBufPtr+7);
x1 = *(lpBufPtr+8);crRGB[0] = *(lpBufPtr+9);crRGB[1] = *(lpBufPtr+10);crRGB[2] = *(lpBufPtr+11);
life = *(lpBufPtr+12);p = *(lpBufPtr+13);eg = *(lpBufPtr+14);ready = *(lpBufPtr+15);
gameover = *(lpBufPtr+16);
free(lpBufPtr);
EnableMenuItem(hMenu,IDM_SIZE,MF_BYCOMMAND|MF_GRAYED);
EnableMenuItem(hMenu,IDM_TWO,MF_BYCOMMAND|MF_GRAYED);
EnableMenuItem(hMenu,IDM_THREE,MF_BYCOMMAND|MF_GRAYED);
EnableMenuItem(hMenu,IDM_FOUR,MF_BYCOMMAND|MF_GRAYED);
EnableMenuItem(hMenu,IDM_SPEED,MF_BYCOMMAND|MF_GRAYED);
EnableMenuItem(hMenu,IDM_COLOR,MF_BYCOMMAND|MF_GRAYED);
EnableMenuItem(hMenu,IDM_EG,MF_BYCOMMAND|MF_GRAYED);
InvalidateRect(hWnd,NULL,1);
}
else
{
MessageBox(hWnd,"内存分配失败",NULL,MB_OK|MB_ICONEXCLAMATION);
return 0;
}
}
else
{
MessageBox(hWnd,"打开文件失败",NULL,MB_OK|MB_ICONEXCLAMATION);
return 0;
}
CloseHandle(hFile);
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -