webForumDet fria alternativet

Hur gör man windowsprogram?

4 svar · 478 visningar · startad av taper lawyer

taper lawyerMedlem sedan jan. 200481 inlägg
#1

Hur gör man windowsprogram istället för dosprogram?

PeWMedlem sedan juni 20006 839 inlägg
#2

Välkommen till wF! :D

Vad det gäller din fråga kan du ju exempelvis börja med att kolla http://www.relisoft.com/cpp.html och sen söka dig till http://msdn.microsoft.com.

taper lawyerMedlem sedan jan. 200481 inlägg
#3

Får bara en massa felmeddelanden när jag försöker kompilera det, dessutom såg det rätt avancerat ut. Får nog läsa ut min bok om grunderna i C++-programmering först. ;) Tack, förresten! :)

PeWMedlem sedan juni 20006 839 inlägg
#4

Jo, det kan ju förstås vara en utmärkt start :)

micaeleMedlem sedan feb. 20042 inlägg
#5

#define WIN32_LEAN_AND_MEAN
#define WINVER 0x0400
#include <windows.h>
#include <windowsx.h>
#include <shellapi.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <ctype.h>
#include <time.h>
#include <mmsystem.h>

#define WIN_CLASS_NAME "WINPROGRAM"

LRESULT __stdcall winProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
{
switch(msg)
{
case WM_CREATE:
{
return(0);
}break;
case WM_PAINT:
{
return(0);
}break;

	case WM_DESTROY:
	{
		PostQuitMessage(0);
		return (0);
	}break;
}
return (DefWindowProc(hwnd,msg,wparam,lparam));

}

int __stdcall WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
WNDCLASS winclass;
HWND hwnd;
MSG msg;
winclass.style=CS_DBLCLKS|CS_OWNDC|CS_HREDRAW|CS_VREDRAW;
winclass.lpfnWndProc=winProc;
winclass.cbClsExtra=0;
winclass.cbWndExtra=0;
winclass.hInstance=hInstance;
winclass.hIcon=NULL;
winclass.hCursor=NULL;
winclass.hbrBackground=NULL;
winclass.lpszMenuName=NULL;
winclass.lpszClassName=WIN_CLASS_NAME;

if(!RegisterClass(&winclass)){return (0);}
if(!(hwnd=CreateWindow(WIN_CLASS_NAME,"WINPROGRAM",WS_POPUP,
					   CW_USEDEFAULT,CW_USEDEFAULT,800,600,
					   NULL,NULL,
					   hInstance,NULL))){return (0);}

while(true)
{
	if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
	{
		if(msg.message==WM_QUIT){break;}
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}
}
return (msg.wParam);

}

Detta är det simplaste windowsprogram man kan tänka sig. Det behövs lite mer i winProc för att det ska uppdateras ordentligt, men allt sådant står i böcker om win-programmering.

Egna funktioner kallas i while(true)-slingan.

Genererad på 386 ms · cache AV · v20260730165559-full.f96bc7eb