Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature may not be available in some browsers.
#include <windows.h>
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
//globale Variablen
char szClassName[ ] = "WindowsApp";
HDC hdc;
PAINTSTRUCT ps;
int xmax, ymax;
int xball, yball;
int r =$a;
int dx=$c;
int dy=$c;
int a, b, c;
int WINAPI WinMain (HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPSTR lpszArgument,
int nFunsterStil)
{
HWND hwnd;
MSG messages;
WNDCLASSEX wincl;
wincl.hInstance = hThisInstance;
wincl.lpszClassName = szClassName;
wincl.lpfnWndProc = WindowProcedure;
wincl.style = CS_DBLCLKS;
wincl.cbSize = sizeof (WNDCLASSEX);
wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
wincl.lpszMenuName = NULL;
wincl.cbClsExtra = 0;
wincl.cbWndExtra = 0;
wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
/*Wenn was schief gelaufen ist, Fehlermeldung*/
if (!RegisterClassEx (&wincl))
{
MessageBox(NULL, "Window Registration Failed!", "Error!",
MB_ICONEXCLAMATION | MB_OK);
return 0;
}
hwnd = CreateWindowEx (
0,
szClassName,
"Windows App",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
544,
375,
HWND_DESKTOP,
NULL,
hThisInstance,
NULL
);
/* Wenn was schief gelaufen Fehlermeldung */
if(hwnd == NULL)
{
MessageBox(NULL, "Window Creation Failed!", "Error!",
MB_ICONEXCLAMATION | MB_OK);
return 0;
}
ShowWindow (hwnd, nFunsterStil); //Fenster zeigen
UpdateWindow(hwnd);
/*Message Loop*/
while (GetMessage (&messages, NULL, 0, 0) > 0)
{
/* Translate virtual-key messages into character messages */
TranslateMessage(&messages);
/* Send message to WindowProcedure */
DispatchMessage(&messages);
}
}
/* window procedur */
printf("Wie groß soll der Ball sein ? ");
sanf("%d",$a);
printf("Schnell soll sich der Ball bewegen (0 ist am schnellsten) ");
sanf("%d",$b);
printf("Wie viel abstand soll zwischen ball A und B sein ? ");
sanf("%d",$c);
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message) /* handle the messages */
{
case WM_CLOSE: //Beim schließen des Fensters
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage (); /* send a WM_QUIT to the message queue */
break;
case WM_KEYDOWN: //bei Tastendruck
{
switch(wParam)
{
case VK_LEFT:
xball-=dx;
_sleep($b);
break;
case VK_RIGHT:
xball +=dx;
_sleep($b);
break;
case VK_UP:
yball -= dy;
_sleep($b);
break;
case VK_DOWN:
yball += dy;
_sleep($b);
break;
case VK_SPACE:
Rectangle(hdc, -1, -1, xmax+1, ymax+1);
break;
}
}
case WM_PAINT: //Zeichnen
{
hdc = GetDC(hwnd); //Zeichen starten
Ellipse(hdc, xball-r, yball-r, xball+r, yball+r);
ValidateRect(hwnd, 0);
}
default: /* for messages that we don't deal with */
return DefWindowProc (hwnd, message, wParam, lParam);
}
return 0;
}
#include <stdio.h>
int main(void)
{ return 0; }
printf("Hello World"); //Das wird nie ausgegeben
char string[]="Test";
hdc = BeginPaint(hwnd, &ps);
TextOut(hdc, 0, 0, string, sizeof(string)-1);
EndPaint(hwnd, &ps);
case VK_SPACE:
hdc = GetDC(hwnd); //Zeichen starten
Ellipse(hdc, xbomb-i, ybomb-i, xbomb+i, ybomb+i);
ValidateRect(hwnd, 100);
ybomb += dy1;
ybomb += dy1;
ybomb += dy1;
ybomb += dy1;
ybomb += dy1;
ybomb += dy1;
ybomb += dy1;
ybomb += dy1;
ybomb += dy1;
break;
BDG schrieb:.. ich hab nicht gesehen das man irgendwo die pfadangaben vom bild eintragen kann ...
#define IDB_BALL 2001
#include <windows.h>
#include "resource.h"
IDB_BALL BITMAP "ball.bmp"
BDG schrieb:wie "includire" ich (und was is das)
#include "headerfile.h"
Kenne mich zwar nur ein ganz kleines bisschen mit C aus, aber ich glaube das Zitat beantwortet deine Frage am besten:hmm und was is nun mit den bomben werfen ? das die runterfallen ?
PS: das mit dem Bilder laden hab ich immernoch nich verstanden ... und ich hab auch noch gegooglet ... aber ich kapier das nich ... sry
(vlt. doch nochmal c-grundlagen lernen?)
xD das heist : jetzt esse ich und dann muss ich noch Hausaufgaben machen(Fress jetzt und muss dann noch Hausaufgaben machen)
case VK_SPACE:
shootBomb(hwnd);
ReleaseDC(hwnd, hdc);
break;
void shootBomb(HWND hwnd)
{
hdc = GetDC(hwnd);
RECT rcClient;
GetClientRect(hwnd, &rcClient); //Fenstergeometrie von hwnd
int i=0;
while(yball+r2+i<rcClient.bottom) //solange der Boden nicht erreicht wurde
{
Ellipse(hdc, xball-r2, yball-r2+i, xball+r2, yball+r2+i); //r2 = radius der Bombe
_sleep(10);
i+=10;
}
}