Win32 API Test

Status
Niet open voor verdere reacties.
oke, zal je voor mij de volgende vragen kunnen beantwoorden?

1. Waarom gebruik je deze manier van een window, het is moelijker etc

2. Weetje wat een namepsace in houd?

3. Wat is nouw eigenlijk precies het probleem?
 
oke, zal je voor mij de volgende vragen kunnen beantwoorden?

1. Waarom gebruik je deze manier van een window, het is moelijker etc

2. Weetje wat een namepsace in houd?

3. Wat is nouw eigenlijk precies het probleem?

1. Hoe bedoel je moeilijker, kan het met nog een simpelere code dan? Ik heb het van een tal van sites geleerd hoe een windows te creeëren.

2. Ja, dat is iets van een verzameling van variabelen en functies e.d.

3. Ik wou graag weten, of de manier die ik dus geleerd heb wel juist is, handig genoeg etc.
 
1. Hoe bedoel je moeilijker, kan het met nog een simpelere code dan? Ik heb het van een tal van sites geleerd hoe een windows te creeëren.

2. Ja, dat is iets van een verzameling van variabelen en functies e.d.

3. Ik wou graag weten, of de manier die ik dus geleerd heb wel juist is, handig genoeg etc.

Dit is een van de moelijkste manieren, het voordeel is er wel van, iedereen kan het draaien, lunix/windows etc, mensen met/zonder .net

Je zou .rc files kunnen gebruiken en dan DialogBox(), maar dan moeten mensen .Net hebben geinstallerd of je moet net in de applicatie stoppen, wat ruimte kost ( niet hel veel)

Verder kan je ook MFC gebruiken, maar dat werkt alleen op windows.

Eigenlijk moet je nooit never nimmer globale dingen gebruiken, het is slecht.
Nooit in de main loop van het window code, gebruik een functie
Gebruik als het kan een class
 
Ok, ik programmeerde eerst in .NET maar daar ben ik mee gestopt omdat het mij steeds slechter begon te bevallen.
Dit is een van de moelijkste manieren, het voordeel is er wel van, iedereen kan het draaien, lunix/windows etc, mensen met/zonder .net
Doet de Win API het dan ook op linux?
Eigenlijk moet je nooit never nimmer globale dingen gebruiken, het is slecht.
Nooit in de main loop van het window code, gebruik een functie
Gebruik als het kan een class
Waarom moet je geen glabale dingen gebruiken dan?

Maar graag wil ik nog weten of ik het wel zo ongeveer juist doe, dit is pas mijn eerste gepruts met de API.
 
Ok, ik programmeerde eerst in .NET maar daar ben ik mee gestopt omdat het mij steeds slechter begon te bevallen.

Doet de Win API het dan ook op linux?

Waarom moet je geen glabale dingen gebruiken dan?

Maar graag wil ik nog weten of ik het wel zo ongeveer juist doe, dit is pas mijn eerste gepruts met de API.

Euhm, ik bedoel niet in .Net programmeren, maar je kan .Net gebruiken (je code in c++) om windows te maken.

Ik bedoelde juist niet deze methode, ik zie dat ik het verkeerd heb geforumleerd, sorry. Deze manier werkt alleen op WINDOWS, omdat je de windows.h header gebruikt. Met Qt (bijv) kan je op alle systemen coden, ik hou er absoluut niet van en denk, pech als je geen windwos hebt.

Ik vind deze manier vervelend, het ksot veel tijd etc moeilijker, ik deed dit, het ziet er goed uit zoals ik kon zien in een oogopslag, maar ik zal op iets anders overstappen
 
Laatst bewerkt:
Wat raad je dan aan om te doen? Toch bijna de meeste mensen hebben Windows? Kan je trouwens een simpel voorbeeld laten zien van je namespace waar je alles inzet, volgens mij is dat veel handiger?
 
namespace van een 3d programma ( zonder enige library)

Code:
#pragma once
#include "math.h"
#include "matrix.h"
//////////////////////////////////////////////////////////////////////////
namespace bnr
{
	namespace math
	{
		struct Vector
		{
			void multiply(const Vector& v, const Matrix& m);

			__declspec(align(16)) union
			{
				struct{ float	x, y, z, w;	};
				float	v[4];
				__m128	v128;
			};
		};
		//////////////////////////////////////////////////////////////////////////
		inline void Vector::multiply(const Vector& v, const Matrix& m)
		{	
			//despite it being available, the w coord is not really used yet on the vector
			__m128 vx = _mm_shuffle_ps(v.v128, v.v128, 0x00);	//broadcasts
			__m128 vy = _mm_shuffle_ps(v.v128, v.v128, 0x55);
			__m128 vz = _mm_shuffle_ps(v.v128, v.v128, 0xAA);	

			vx = _mm_mul_ps(vx, m.m128[0]);
			vy = _mm_mul_ps(vy, m.m128[1]);
			vz = _mm_mul_ps(vz, m.m128[2]);

			vx			= _mm_add_ps(vx, vy);
			vx			= _mm_add_ps(vx, vz);
			this->v128	= _mm_add_ps(vx, m.m128[3]);	//add the final matrix row
		}
	}
}

Ik raad je aan om over te stappen op: MFC of Win32 met een .rc file(als dialog(s)) of Qt
 
Ik doe nog steeds niet aan 3d dus daar snap ik niet alles van. Misschien een voorbeeld van enkel een windows die wordt weergegeven vanuit de namespace?! Nog steeds mijn vraag: waarom geen gobale variabelen? Ik zie het niet zitten om met die dialogs te werken i.v.m. .NET. Misschien ga ik dan eens kijken naar MFC en naar Qt.
 
Ik doe nog steeds niet aan 3d dus daar snap ik niet alles van. Misschien een voorbeeld van enkel een windows die wordt weergegeven vanuit de namespace?! Nog steeds mijn vraag: waarom geen gobale variabelen? Ik zie het niet zitten om met die dialogs te werken i.v.m. .NET. Misschien ga ik dan eens kijken naar MFC en naar Qt.

je vroeg om een voorbeeld van namepsaces, dus die gaf ik , ik was hier toevallig mee bezig.

Globale varialben zijn een teken van slechte code, onnodig geheugen etc ( gweoon NIET gebruiken, en dan bedeol ik niet zo min mogelijk, mar gewoon niet)

Ik zal voor Qt gaan als je op alle platforms wilt coden, nadeel vind ik zelf, daarom begon ik er niet aan, is dat het vreemde c++ is, nieuwe dingetjes etc
 
Oke, neem nou deze site een simpelere windows is er haast niet op de professionale wijze. Hoe zet je die in een namespace, zie niet direct de link tussen je voorbeeld en die code:confused:
 
Je begrijpt niet helemaal wat namespaces inhouden:

http://www.glenmccl.com/ns_comp.htm

bijvoorbeeld voor all je HWID


Code:
//HWID.h
namespace AllHWNDs
{
	extern HMODULE GlobalhMod;
	extern HWND hWnd;
	extern HWND hDlg1;
	extern HWND hDlg2;
	extern HWND hDlg3;
	extern HWND hDlg4;
}

Code:
//HWID.cpp
namespace AllHWNDs
{
	HMODULE GlobalhMod = NULL;
	HWND hWnd = NULL;
	HWND hDlg1 = NULL;
	HWND hDlg2 = NULL;
	HWND hDlg3 = NULL;
	HWND hDlg4 = NULL;
}

geen global variable

je neemt er dan een door

AllHWNDs::hDlg4

de naam AllHWNDs is slecht, omdat hij zo lang is, maar eht gaat om het principe

je kan ook using namespace AllWNDs doen, maar dat raad ik af
 
Bestaat er ook zoiets als: een programma waarmee je, je window kan maken en hij deze dan direct in goede cpp code geeft. Dus zet je op je window, windows(button, edit, etc.) neer, en dan genereert hij een code als zoiets:

[CPP]hEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "",
WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_HSCROLL | ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL,
0, 0, 100, 100, hwnd, (HMENU)IDC_MAIN_EDIT, GetModuleHandle(NULL), NULL);[/CPP]

Als het vorm geven aan je window net zo ging als bij dat .net gebeuren zou dat wel makkelijk zijn. Want de manier die ik nu gebruik ben je nogal lang bezig met het uitrekenen van de grootes en de locaties etc.
 
Laatst bewerkt:
Ja, dat is onder andere mogelijk met Borland/Codegear C++ Builder.
 
Met VC++ prof of ultimate ook, als je de gratis versie betaald moet je een programma gebruiken, resedit.

IK hou persoonlijk meer van VC++ dan van borland, maar dat is een mening.
 
Hoe dan? Ik heb de prof. versie?!

Ik bedoelde niet de dialog editor, want daarmee kan je ook niet alles makkelijk plaatsen. Ik weet niet of die je editor van .net kent, maar die geeft blauwe of paarse lijnen als 2e controls zicht met een bepaalde afstand van elkaar bevinden of op dezelfde hoogte zijn etc. Zoiets wil ik met de winapi. Tevens wil de dialog editor mfc gebruiken, maar dat wil ik niet...
 
Laatst bewerkt:
Als het vorm geven aan je window net zo ging als bij dat .net gebeuren zou dat wel makkelijk zijn. Want de manier die ik nu gebruik ben je nogal lang bezig met het uitrekenen van de grootes en de locaties etc.

Waarom? Ga mij is uitleggen wat er mis is met plain text? Kom op zeg, wàt een aanstellerij...
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan