/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Hvordan laves prog. som windows update og ~
Fra : Jacob Jensen


Dato : 22-08-05 22:34

Hej

Hvordan er programmer som f.eks. windows update lavet? Altså dem som blot
ligner en dialog med lidt knapper og måske et indtastnings felt. Består de
blot af en dialog eller hvordan fungerer sådan noget?

Hvad med programmer som tilsyneladende slet ikke består af et normalt
vindue? Winamp f.eks... Er det blot et vindue med nogle specielle settings?

Jeg spørger fordi jeg er helt ny i windows-programmerings-verdenen og jeg
har kun prøvet at lave et program med en menu, et hovedvindue og to
child-vinduer. Jeg brugte også dialoger når man trykkede på knapperne i
menuen.

Jacob



 
 
Bertel Brander (22-08-2005)
Kommentar
Fra : Bertel Brander


Dato : 22-08-05 22:51

Jacob Jensen wrote:
> Hej
>
> Hvordan er programmer som f.eks. windows update lavet? Altså dem som blot
> ligner en dialog med lidt knapper og måske et indtastnings felt. Består de
> blot af en dialog eller hvordan fungerer sådan noget?

Det er sansynligvis programmer der kun betår af en dialogbox.
Bemærk dog at definitionen af "dialogbox" er lidt flydende.

Jeg har lavet en lille tutorial der viser hvordan man laver en
dialog box applikation her:
http://home20.inet.tele.dk/midgaard/dialogtut.html

Der er sådan set ikke noget unormalt ved det, man laver blot en
dialogbox der er applikationen, denne har så ikke nogen "parent".

> Hvad med programmer som tilsyneladende slet ikke består af et normalt
> vindue? Winamp f.eks... Er det blot et vindue med nogle specielle settings?

Jeg har en beskrivelse af hvordan man laver et program der ikke er lavet
af "normale" vinduer her:
http://home20.inet.tele.dk/midgaard/tipwin20050329.html
Så vidt jeg ved er winamp osv. lavet efter samme model.

--
Absolutely not the best homepage on the net:
http://home20.inet.tele.dk/midgaard
But it's mine - Bertel

Jacob Jensen (23-08-2005)
Kommentar
Fra : Jacob Jensen


Dato : 23-08-05 22:45

> Det er sansynligvis programmer der kun betår af en dialogbox.
> Bemærk dog at definitionen af "dialogbox" er lidt flydende.
>
> Jeg har lavet en lille tutorial der viser hvordan man laver en
> dialog box applikation her:
> http://home20.inet.tele.dk/midgaard/dialogtut.html
>
> Der er sådan set ikke noget unormalt ved det, man laver blot en
> dialogbox der er applikationen, denne har så ikke nogen "parent".

Tak, det kom jeg langt med. Men hvad er det lige der gør vinduet til en
dialog box istedet for bare et alm. vindue? Der er ingen forskel er der?

En anden ting. Nu har jeg lavet en edit-control på mit vindue... kan jeg
vælge font og sådan til at skrive i den? Jeg kunne godt bruge noget
ISO-8859-1 tegnsæt og noget fed skrift.

Jacob



Bertel Brander (23-08-2005)
Kommentar
Fra : Bertel Brander


Dato : 23-08-05 23:10

Jacob Jensen wrote:
> Tak, det kom jeg langt med. Men hvad er det lige der gør vinduet til en
> dialog box istedet for bare et alm. vindue? Der er ingen forskel er der?

Ja og nej. En dialogbox er også et vindue. Det der adskiller en
dialogbox fra andre winduer er mest udseende og virkemåde.
Med en dialog box forventer brugeren f.ex. at han kan trykke på
tab for at komme til den næste "kontrol", og måske Enter for
at foretage et default valg og lukke boxen.
Man kan enten oprette en dialogbox fra en resource (i en .rc) fil,
og så bruger man DialogBox(...) til at oprette dialog boxen og
windows håndterer de fleste beskeder selv.
Eller man opretter dialog boxen "by-hand" og så har man en normal
message loop og bruger IsDialogMessage(...) som filter, denne
sørger så for at håndtere dialog box beskeder.
Det er den sidste metode jeg har brugt til eksemplerne på siden.

> En anden ting. Nu har jeg lavet en edit-control på mit vindue... kan jeg
> vælge font og sådan til at skrive i den? Jeg kunne godt bruge noget
> ISO-8859-1 tegnsæt og noget fed skrift.

For at ændre font (herunder om den skal være fed) på en edit box
(og andre kontoller) opretter man en font med CreateFont og
fortæller kontrollen at den skal bruge denne font ved at
sende en WM_SETFONT til den.

Jeg ved ikke med tegnsæt, mon ikke det altid er det samme
(med simple edit boxe)?

--
Absolutely not the best homepage on the net:
http://home20.inet.tele.dk/midgaard
But it's mine - Bertel

Michael Rasmussen (23-08-2005)
Kommentar
Fra : Michael Rasmussen


Dato : 23-08-05 23:15

On Wed, 24 Aug 2005 00:10:03 +0200, Bertel Brander wrote:

>
> Ja og nej. En dialogbox er også et vindue. Det der adskiller en
> dialogbox fra andre winduer er mest udseende og virkemåde.
Det er vel også kun en dialogbox, der kan sættes modal?

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917


Bertel Brander (23-08-2005)
Kommentar
Fra : Bertel Brander


Dato : 23-08-05 23:38

Michael Rasmussen wrote:
> On Wed, 24 Aug 2005 00:10:03 +0200, Bertel Brander wrote:
>
>
>>Ja og nej. En dialogbox er også et vindue. Det der adskiller en
>>dialogbox fra andre winduer er mest udseende og virkemåde.
>
> Det er vel også kun en dialogbox, der kan sættes modal?

Godt spørgsmål.

Hvis man læser om WS_EX_TOPMOST står der:
"Specifies that a window created with this style
should be placed above all non-topmost windows
and should stay above them, even when the window
is deactivated."
Det ligner lidt egenskaben ved et modalt vindue.

DialogBox(...) laver modale vinduer, men hvordan laver
man en modal dialogbox uden brug af DialogBox?

Hvis man slår Modal op i msdn står der:
"A window or form is modal if it retains the focus until
you explicitly close it. Dialog boxes and messages are
usually modal. For example, in a modal dialog box, you
can't access another window until you choose OK in the
dialog box."
Her står der ikke at det kun er dialog boxe der er modale.

--
Absolutely not the best homepage on the net:
http://home20.inet.tele.dk/midgaard
But it's mine - Bertel

Michael Rasmussen (24-08-2005)
Kommentar
Fra : Michael Rasmussen


Dato : 24-08-05 00:37

On Wed, 24 Aug 2005 00:37:58 +0200, Bertel Brander wrote:

>
> Hvis man læser om WS_EX_TOPMOST står der:
> "Specifies that a window created with this style
> should be placed above all non-topmost windows
> and should stay above them, even when the window
> is deactivated."
> Det ligner lidt egenskaben ved et modalt vindue.
>
Hvad er så et topmost window? Er det f.eks. selve desktoppen?

> DialogBox(...) laver modale vinduer, men hvordan laver
> man en modal dialogbox uden brug af DialogBox?
>
> Hvis man slår Modal op i msdn står der:
> "A window or form is modal if it retains the focus until
> you explicitly close it. Dialog boxes and messages are
> usually modal. For example, in a modal dialog box, you
> can't access another window until you choose OK in the
> dialog box."
> Her står der ikke at det kun er dialog boxe der er modale.
Hmm, lidt kryptisk beskrivelse. Uden at skulle gøre mig til ekspert,
ville jeg mene, at hvis et window/form er modal, er det da et brud på
teknologien preemptive multitasking? Ideen må vel være, at
programvinduer kan eksistere i samhørighed på desktoppen, og kan have
focus eller ej, alt efter brugerens ønsker. I mine øjne bør dialogboxe
også kun sættes til modal, hvis en kritisk situation er opstået, der
kræver brugerindgreb, før at programmet kan fortsætte. Det virker
logisk nok at desktoppen er modal, da den jo er parent til alle øvrige
vinduer/dialoger.

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917


Bertel Brander (24-08-2005)
Kommentar
Fra : Bertel Brander


Dato : 24-08-05 00:47

Michael Rasmussen wrote:
> On Wed, 24 Aug 2005 00:37:58 +0200, Bertel Brander wrote:
>
>
>>Hvis man læser om WS_EX_TOPMOST står der:
>>"Specifies that a window created with this style
>>should be placed above all non-topmost windows
>>and should stay above them, even when the window
>>is deactivated."
>>Det ligner lidt egenskaben ved et modalt vindue.
>>
>
> Hvad er så et topmost window? Er det f.eks. selve desktoppen?

Et andet vindue med WS_EX_TOPMOST.

Jeg mener at have læst et sted at man både har applikation
og system modale vinduer, kan ikke huske hvor.

>>DialogBox(...) laver modale vinduer, men hvordan laver
>>man en modal dialogbox uden brug af DialogBox?
>>
>>Hvis man slår Modal op i msdn står der:
>>"A window or form is modal if it retains the focus until
>>you explicitly close it. Dialog boxes and messages are
>>usually modal. For example, in a modal dialog box, you
>>can't access another window until you choose OK in the
>>dialog box."
>>Her står der ikke at det kun er dialog boxe der er modale.
>
> Hmm, lidt kryptisk beskrivelse. Uden at skulle gøre mig til ekspert,
> ville jeg mene, at hvis et window/form er modal, er det da et brud på
> teknologien preemptive multitasking? Ideen må vel være, at
> programvinduer kan eksistere i samhørighed på desktoppen, og kan have
> focus eller ej, alt efter brugerens ønsker. I mine øjne bør dialogboxe
> også kun sættes til modal, hvis en kritisk situation er opstået, der
> kræver brugerindgreb, før at programmet kan fortsætte. Det virker
> logisk nok at desktoppen er modal, da den jo er parent til alle øvrige
> vinduer/dialoger.

Vi er enige om at man skal forsøge at begrænse brugen af modale
vinduer.
Men modal/modeless har ikke nødvendigvis noget med multitasking
at gøre.

--
Absolutely not the best homepage on the net:
http://home20.inet.tele.dk/midgaard
But it's mine - Bertel

Jacob Jensen (23-08-2005)
Kommentar
Fra : Jacob Jensen


Dato : 23-08-05 23:52

> For at ændre font (herunder om den skal være fed) på en edit box
> (og andre kontoller) opretter man en font med CreateFont og
> fortæller kontrollen at den skal bruge denne font ved at
> sende en WM_SETFONT til den.

Dvs. at jeg kan ikke have en linje med fed og andre uden fed f.eks.? Det
lyder på dig som om at al tekst i kontrollen bliver skrevet med den font.

> Jeg ved ikke med tegnsæt, mon ikke det altid er det samme
> (med simple edit boxe)?

Måske, øv. Det ser lidt grimt ud det her (det er noget fra en header fra
dk.edb.sikkerhed jeg har modtaget via en TCP lavet med winsock. Jeg går ud
fra at det er fordi kontrollen jeg skriver til tolker det som standard ASCII
eller noget) :

=?iso-8859-1?Q?Re:_PDF_bliver_til_Winmail.dat_-_HJ=C6LP?= "Peder Vendelbo
Mikkelsen" <pedervm@myrealbox.com>

Jacob



Bertel Brander (24-08-2005)
Kommentar
Fra : Bertel Brander


Dato : 24-08-05 00:23

Jacob Jensen wrote:

> Dvs. at jeg kan ikke have en linje med fed og andre uden fed f.eks.? Det
> lyder på dig som om at al tekst i kontrollen bliver skrevet med den font.

I så fald skal du selv "tegne" teksten. Eller måske bruge
en rich-edit. Eller du kan lave din egen kontrol eller
bruge en listbox hvor du selv skriver teksten eller...

Jeg lavede en edit applikation der selv tegner teksten, den
ville være let at udvide til at tegne ting i din egen farve/font,
men ikke være så god som editor:
http://home20.inet.tele.dk/midgaard/snip/texteditor.html

Hvad skal kontrollen mere præcist gøre?

>>Jeg ved ikke med tegnsæt, mon ikke det altid er det samme
>>(med simple edit boxe)?
>
>
> Måske, øv. Det ser lidt grimt ud det her (det er noget fra en header fra
> dk.edb.sikkerhed jeg har modtaget via en TCP lavet med winsock. Jeg går ud
> fra at det er fordi kontrollen jeg skriver til tolker det som standard ASCII
> eller noget) :
>
> =?iso-8859-1?Q?Re:_PDF_bliver_til_Winmail.dat_-_HJ=C6LP?= "Peder Vendelbo
> Mikkelsen" <pedervm@myrealbox.com>

Nu bevæger vi os vist ud over det jeg ved noget om.
Du skal måske prøve at kikke i dette hjørne af MSDN:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intl/nls_5s2v.asp

--
Absolutely not the best homepage on the net:
http://home20.inet.tele.dk/midgaard
But it's mine - Bertel

Jacob Jensen (24-08-2005)
Kommentar
Fra : Jacob Jensen


Dato : 24-08-05 09:31

> Jeg lavede en edit applikation der selv tegner teksten, den
> ville være let at udvide til at tegne ting i din egen farve/font,
> men ikke være så god som editor:
> http://home20.inet.tele.dk/midgaard/snip/texteditor.html

Jeg har også selv lavet en tekst-editor, men det er lidt overkill at bruge
den :)

> Hvad skal kontrollen mere præcist gøre?

Den skal vise en liste over "nye" beskeder på usenet i en bunke
predefinerede grupper. Det funger faktisk fint lige nu. Jeg skriver bare en
lang streng til en multiline edit-kontrol. Jeg ville så bare have
gruppenavnene i fed. Men det er mere vigtigt med tegnsættet.

> Nu bevæger vi os vist ud over det jeg ved noget om.
> Du skal måske prøve at kikke i dette hjørne af MSDN:
> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intl/nls_5s2v.asp

hmm, det siger mig ikke så meget. Men jeg aner stort set heller ikke noget
som helst om tegnsæt. Er der andre der har ideer? Hvordan vælger man tegnsæt
helt generelt?

Jacob



Jacob Jensen (24-08-2005)
Kommentar
Fra : Jacob Jensen


Dato : 24-08-05 10:28

> Nu bevæger vi os vist ud over det jeg ved noget om.
> Du skal måske prøve at kikke i dette hjørne af MSDN:
> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intl/nls_5s2v.asp

Jeg har startet en ny tråd om dette.

Jacob



Søg
Reklame
Statistik
Spørgsmål : 177577
Tips : 31968
Nyheder : 719565
Indlæg : 6409071
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste