Problem mit WinProg
Verfasst: Di Feb 16, 2010 7:29 pm
Tach
Ich wollte als übung das Prog Minesweeper schreiben.
So weit bin ich gekommen:
So es kommen zwar keine Errors aber wenn ich es ausführe erscheint nur ein Leres Fenster mit der nerfigen Sanduhr!
kann mir jemand helfen??
mfg
Empire
Ich wollte als übung das Prog Minesweeper schreiben.
So weit bin ich gekommen:
Code: Alles auswählen
#include <windows.h>
#include <time.h>
HWND hWnd;
HWND Feld[16][16];
HWND Button[16][16];
HWND Text;
HWND Text2;
int Minen[16][16];
LRESULT CALLBACK WindowProc (HWND hWnd, UINT message,
WPARAM wParam, LPARAM lParam);
int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpcmdline, int ncmdshow)
{
WNDCLASSEX windowclass;
MSG message;
const char szClassName[] = "MS";
windowclass.cbSize = sizeof (WNDCLASSEX);
windowclass.style = CS_HREDRAW | CS_VREDRAW;
windowclass.lpfnWndProc = WindowProc;
windowclass.cbClsExtra = 0;
windowclass.cbWndExtra = 0;
windowclass.hInstance = hInst;
windowclass.hIcon =LoadIcon (NULL, IDI_APPLICATION);
windowclass.hIconSm =LoadIcon (NULL, IDI_APPLICATION);
windowclass.hCursor =LoadCursor (NULL, IDC_ARROW);
windowclass.hbrBackground = (HBRUSH)COLOR_BACKGROUND+1;
windowclass.lpszMenuName = NULL;
windowclass.lpszClassName = szClassName;
if(!RegisterClassEx (&windowclass))
return (0);
hWnd = CreateWindowEx(NULL,
szClassName,
"MS",
WS_OVERLAPPEDWINDOW | WS_VISIBLE,
100, 100,
310, 310,
NULL,
NULL,
hInst,
NULL);
for(int runde; runde>15; runde++)
{
int X, Y;
belegt:
srand(time(0));
X = 1+(rand() % (10-1));
srand(time(0));
Y = 1+(rand() % (10-1));
if(Minen[X][Y]==0)
{
Minen[X][Y]=9;
if(Minen[X+1][Y-1]!=9) Minen[X+1][Y-1]= Minen[X-1][Y-1]+1;
if(Minen[X+1][Y]!=9) Minen[X+1][Y]= Minen[X+1][Y]+1;
if(Minen[X+1][Y+1]!=9) Minen[X+1][Y+1]= Minen[X+1][Y+1]+1;
if(Minen[X][Y-1]!=9) Minen[X][Y+1]= Minen[X][Y+1]+1;
if(Minen[X][Y-1]!=0) Minen[X][Y-1]= Minen[X][Y-1]+1;
if(Minen[X-1][Y+1]!=0) Minen[X-1][Y+1]= Minen[X-1][Y+1]+1;
if(Minen[X-1][Y]!=0) Minen[X-1][Y]= Minen[X-1][Y]+1;
if(Minen[X-1][Y-1]!=0) Minen[X-1][Y-1]= Minen[X-1][Y-1]+1;
}
else goto belegt;
}
int ID = 1000;
int xk, yk;
for(int x; x<16; x++)
{
for(int y; y<16; y++)
{
xk=((x-1)*19);
yk=((y-1)*19);
if(Minen[x][y]==0)
{
Feld[x][y] = CreateWindow("STATIC",
" ",
WS_BORDER | WS_VISIBLE | WS_CHILD | ES_CENTER,
xk,yk,
20, 20,
hWnd,
(HMENU) ID,
hInst,
NULL);
}
else if(Minen[x][y]==1)
{
Feld[x][y] = CreateWindow("STATIC",
"1",
WS_BORDER | WS_VISIBLE | WS_CHILD | ES_CENTER,
xk,yk,
20, 20,
hWnd,
(HMENU) ID,
hInst,
NULL);
}
else if(Minen[x][y]==2)
{
Feld[x][y] = CreateWindow("STATIC",
"2",
WS_BORDER | WS_VISIBLE | WS_CHILD | ES_CENTER,
xk,yk,
20, 20,
hWnd,
(HMENU) ID,
hInst,
NULL);
}
else if(Minen[x][y]==3)
{
Feld[x][y] = CreateWindow("STATIC",
"3",
WS_BORDER | WS_VISIBLE | WS_CHILD | ES_CENTER,
xk,yk,
20, 20,
hWnd,
(HMENU) ID,
hInst,
NULL);
}
else if(Minen[x][y]==4)
{
Feld[x][y] = CreateWindow("STATIC",
"4",
WS_BORDER | WS_VISIBLE | WS_CHILD | ES_CENTER,
xk,yk,
20, 20,
hWnd,
(HMENU) ID,
hInst,
NULL);
}
else if(Minen[x][y]==5)
{
Feld[x][y] = CreateWindow("STATIC",
"5",
WS_BORDER | WS_VISIBLE | WS_CHILD | ES_CENTER,
xk,yk,
20, 20,
hWnd,
(HMENU) ID,
hInst,
NULL);
}
else if(Minen[x][y]==6)
{
Feld[x][y] = CreateWindow("STATIC",
"6",
WS_BORDER | WS_VISIBLE | WS_CHILD | ES_CENTER,
xk,yk,
20, 20,
hWnd,
(HMENU) ID,
hInst,
NULL);
}
else if(Minen[x][y]==7)
{
Feld[x][y] = CreateWindow("STATIC",
"7",
WS_BORDER | WS_VISIBLE | WS_CHILD | ES_CENTER,
xk,yk,
20, 20,
hWnd,
(HMENU) ID,
hInst,
NULL);
}
else if(Minen[x][y]==8)
{
Feld[x][y] = CreateWindow("STATIC",
"8",
WS_BORDER | WS_VISIBLE | WS_CHILD | ES_CENTER,
xk,yk,
20, 20,
hWnd,
(HMENU) ID,
hInst,
NULL);
}
else if(Minen[x][y]==9)
{
Feld[x][y] = CreateWindow("STATIC",
"M",
WS_BORDER | WS_VISIBLE | WS_CHILD | ES_CENTER,
xk,yk,
20, 20,
hWnd,
(HMENU) ID,
hInst,
NULL);
}
ID++;
}
ID++;
}
for(int x; x<16; x++)
{
for(int y; y<16; y++)
{
xk=((x-1)*19);
yk=((y-1)*19);
Button[x][y] = CreateWindow("Button",
"",
BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD,
xk, yk,
20, 20,
hWnd,
(HMENU) ID,
hInst,
NULL);
ID++;
}
ID++;
}
if(hWnd == NULL)
return (0);
while (GetMessage (&message, NULL, 0, 0))
{
TranslateMessage (&message);
DispatchMessage (&message);
}
return (int)(message.wParam);
}
LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{
case WM_DESTROY:
{
PostQuitMessage(0);
return (0);
}
case WM_KEYDOWN:
{
switch(wParam)
{
case VK_ESCAPE:
{
PostQuitMessage (0);
return (0);
}
}
}
break;
case WM_COMMAND:
{
switch(wParam)
{
}
return (0);
}
}
return (DefWindowProc (hWnd, message, wParam, lParam));
}
kann mir jemand helfen??
mfg
Empire