Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: C++: Hello World windows ympäristössä/C++

kaviaari [03.04.2003 20:50:17]

#

C++ on kätevä kieli jolla tehdää suurin osa nykyajan peleistä. Itselleni aloittaminen oli vaikeaa koska ympäistö oli outo ja osasin kielestä vain muutamia alkeita.
Erikoiskiitos guru-x:älle joka on auttanut minut C++:an ihmeelliseen mailmaan. kuitenkin tässä perus pohja:

/*
	Hello World
	by: Kaviaari
*/



//---------
#define WIN32_LEAND_AND_MEAN	// Lean & Mean ympäristö
#include <windows.h>			// Windows pohja
#include <ddraw.h>				// Direct Draw
char szAppName[] = "Windows pohja";
//---------
HINSTANCE	g_hInst;
HWND		g_hWnd;
// ------------------------------------------------------------------------------------------
//WinProc viestin käsitteliä on tässä
// -----------------------------------------------------------------------------------------
static long PASCAL WinProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
		{
			PAINTSTRUCT ps;
			HDC hdc;
				switch(message)
					{

						case WM_PAINT:
							{
								hdc = BeginPaint(g_hWnd, &ps);
								SetTextColor(hdc, RGB(0,0,255));
								SetBkColor(hdc, RGB(0,0,0));
								TextOut(hdc, 100,200, "Hello World", strlen("Hello World"));
								EndPaint(g_hWnd, &ps);
							} break;
						case WM_KEYDOWN:
						switch(wParam)
						{
							case VK_ESCAPE:
								PostMessage(g_hWnd, WM_CLOSE, 0, 0);
								break;
						}
						break;
						case WM_DESTROY:    PostQuitMessage(0);
		                return 0;
						default: return DefWindowProc(hWnd, message, wParam, lParam);
			}
		}
// ---------------------------------------------------------------------
// Tässä on WinMain, ja laitan sit vielä WinProc joka käsittelee viestit
// -----------------------------------------------------------------------------
int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nCmdShow)
{
		MSG msg;
		g_hInst = hInstance;
		WNDCLASS WndClass;
		WndClass.style = CS_HREDRAW | CS_VREDRAW;
		WndClass.lpfnWndProc = WinProc;
		WndClass.cbClsExtra = 0;
		WndClass.cbWndExtra = 0;
		WndClass.hInstance = g_hInst;
		WndClass.hIcon = LoadIcon(g_hInst, "APPICON");
		WndClass.hCursor = LoadCursor(0, IDC_ARROW);
		WndClass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
		WndClass.lpszMenuName = 0;
		WndClass.lpszClassName = "IkkunaLuokka";
		RegisterClass(&WndClass);
		g_hWnd = CreateWindowEx(WS_EX_TOPMOST, "IkkunaLuokka", szAppName, WS_POPUP, 0, 0, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CXSCREEN), NULL, NULL, g_hInst, NULL);
		ShowWindow(g_hWnd, nCmdShow);
		UpdateWindow(g_hWnd);
		while(1)
			{
				if(PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE))
			{
				if(!GetMessage(&msg, NULL, 0, 0 )) return msg.wParam;
					TranslateMessage(&msg);
					DispatchMessage(&msg);
			}
			else
		{
			// tähän tulee kaikkien kuvien piirtämiset yms.
		}
	}
}

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta