Kode vinduer og knapper

Tags:    c++ c++

hej..
Hvordan kan man kode vinduer fra bunden??



Du skal bruge windows programmering.
Med Venlig Hilsen: Chadi
http://chadi.h4f.dk



Du skal bruge windows programmering.
Med Venlig Hilsen: Chadi
http://chadi.h4f.dk

Der er faktisk for nyligt lavet en artikel omkring dette, http://www.udvikleren.dk/show_article.php?id=181
Med Venlig Hilsen: Chadi
http://chadi.h4f.dk



hej..
Hvordan kan man kode vinduer fra bunden??


Du skal bruge API- kaldet "CreateWindow", men hvorfor vil du gøre det ?
Hvis du blot vil starte et nyt vindue, kan det gøres meget nemmere via en dialog boks eller en meddelses boks.

f.eks.
AfxMessageBox("Hallo Word I am am here");

Hvis det er et program du vil starte kan du bruges CreateProces() eller CreateTheat(). Se evt. nogle af de link der er skrevet før.

Janus S. Andersen


*** Livet er smukt ***



Du skal bruge API- kaldet "CreateWindow", men hvorfor vil du gøre det ?
Hvis du blot vil starte et nyt vindue, kan det gøres meget nemmere via en dialog boks eller en meddelses boks.

f.eks.
AfxMessageBox("Hallo Word I am am here");


Den dér message-box er jo unaegteligt kun interessant, hvis man vil meddele sine brugere, at det de foretager sig maaske ikke er saa smart. Hvis du vil lave en rigtig applikation, tror jeg ikke du kommer uden om CreateWindow. Saa vidt jeg kan se i dokumentationen, kreaever baade DialogBox og CreateDialog et parent-window, som du opretter ved at lave et kald til CreateWindow.

AfxMessageBox er desuden ogsaa MFC, saa at blande ::CreateWindow og den naevnte funktion synes jeg egentlig heller ikke virker som nogen god loesning. Man burde saa hellere benytte MessageBox-funktionen (som til gengaeld ikke behoever en parent), hvis man bare vil lave en "message-box".


[Redigeret d. 16/06-03 21:25:01 af Mads]



Hay Mads !!!
Jeg har lige lavet et program i MFC i Microsoft Visual Studio 6.0 (MVS) og kan ikke se nogen grund til ikke at blade MFC og SDK. Hvorfor bruge et tungt og besværligt API- kald hvis det kan løses lettere og der ikke er noget krav om dette ?????????????

Min min aplication køre AfxMessageBox("Hej med dig");
Uden brug af flere paremetre. Du opretter blot et program der kun består af en dialog i MFC, sætter en knap på og doubelt klikker på knappen, og skriver AfxMessageBox("Hej med dig");. Nu er dit program oprettet og det virker. Jeg kan sende dig en exe file og en zip (med koden), hvis du ikke tror mig.

Når jeg programmere forsøger jeg at gøre det så nemt for mig selv som muligt, ved godt der er mange der ikke vil bruge MFC, men det er vel optil programmøren. Jeg er selv ASM programmør, men bruger det ikke så meget hvis der er andre metoder der er nemmere. Livet er forkort til at kede sig, eller at skrive lange kodeblokke der gør det samme som korte....

MFC Overloader / overwriter AfxMessageBox - funktionen.

En anden løsning på problemmet, kunne jo være blot at oprettet en dialog mere. Tildele denne en klasse (Gøres nemt i MFC MVS) og derefter blot oprette et objekt heraf og starte det...

f.eks.
CAboutDlg dlgAbout;
dlgAbout.DoModal();

Janus S. Andersen

P.s Håber dette satte tingne på plads for sp. ....
*** Livet er smukt ***



I nogle tilfaelde kan man ikke undgaa at blande MFC og API-kald. Jeg kender MFC udemaerket og man skal vaere sig bevidst om, at MFC laver en masse overhead. For eksempel ville det vaere direkte taabeligt at skrive et program, som kun benytter sig af Win32 API-kald for saa at kalde AfxMessageBox, naar der er en fejlmeddelelse... Det beyder for det foerste at dit program bliver afhaengig af MFC-dll'erne eller endnu vaere, at du linker MFC bibliotekerne med ind, og for det andet at du inkluderer kode i dit program, der slet ikke er brug for.

Point-and-click RAD er da dejlig nemt, men hvis man ikke passer paa, faar man aldrig en god forstaaelse for, hvad der egentlig foregaar under overfladen, hvilket foerer til, at man aldrig rigtig bliver i stand til at gennemskue hvad der kan vaere galt med éns applikation. Personligt har jeg ikke noget mod MFC, men hvis jeg skulle skrive en applikation, som lagde sig permanent i hukommelsen, ville jeg soerge for et mindst muligt memory-footprint. Det er svaert at opnaa med MFC. Skriver man derimod en MFC-applikation er der ikke noget galt i at kalde MessageBox-API'et
eksempelvis.

Gider du forresten ikke lige forklare, hvad du egentlig mener med at MFC overloader/"overwriter" AfxMessageBox og hvor passer det ind i denne sammenhaeng?



Hay
Nej jeg gidder ikke forklare hvad Overloade / Overwrite betyder. Jeg forsøgte blot at svare på et sp. og hvis det nu er forkert.....

!!! Ok du får ret og jeg får fred !!!!

Janus S. Andersen
*** Livet er smukt ***

[Redigeret d. 18/06-03 00:02:49 af Janus S. Andersen]



Hej Jens Slatcho !!!
Måske lidt og nok ikke bare på mine hånder (GRINER).

Hygge
Janus S. Andersen

[Redigeret d. 08/07-03 14:40:12 af Janus S. Andersen]



**** Livet er smukt ****

[Redigeret d. 17/06-03 23:58:46 af Janus S. Andersen]


Ryster du på hånden?



t