Avatar billede cronck Nybegynder
02. december 2005 - 02:01 Der er 7 kommentarer

GUI's med eget design

Hej eksperter.

Jeg laver en del små programmer her for tiden, og for at udvide min såkaldte ekspertise, og for sjov skyld, har jeg tænkt mig at lave GUI'erne helt om.

Når at jeg siger lave dem om, mener jeg at lave udseendet på et vindue helt om. Lave X'et i hjørnet om, lave mouse-over effekter og sådan.
De ting jeg har i sinde at lave om indtil videre, er titel-baren, maximer, minimer, X'et, og linien rundt om programmet.

Jeg har også tænkt mig at lave de alm. knapper i programmerne om, og måske skifte dem ud med et custom control.

Jeg har før lavet egne knapper i Visual Basic 6, men går ud fra at det foregår på en ret anderledes måde i det her tilfælde.

Nu sidder jeg tilbage med en masse tanker.
Vil det mon være smartest at lave en dll som automatisk skifter alle disse ting ud i vinduerne?
Hvilket format skal jeg gemme mine billeder af det nye 'design' i?
Jeg har set at man i nogle tilfælde lægger både mouse-over, trykned effekter i samme billede-fil, ved siden af hinanden.

Hvordan mener i at jeg bør gøre disse ting?

Jeg benytter ikke .Net
Avatar billede bertelbrander Novice
02. december 2005 - 20:28 #1
Hvis du vil lave om på caption baren, f.ex. lave om på krydset siger min erfaring mig at  du bliver nødt til at tegne hele vinduet selv, dvs. lave vinduet uden title bar og så selv tegn en, det er mere besværligt men det eneste der rigtigt virker.

At lave udseenet på knapper om kan gøres ved at fange WM_CTLCOLORBTN og selv tegne, husk at sætte BS_OWNERDRAW.

Hvis du vil have hover effekt på dine kontroller skal du kikke på  WM_MOUSEHOVER, den fanges i WndProc'en for kontrollen, så du bliver nødt til at sub-class denne.

Du kan godt gemme flere del-billeder til brug ved tegning af en knap i samme .bmp fil, du vælger hvilken del du vil tegne på knappen når du BitBlt'er.
Avatar billede cronck Nybegynder
02. december 2005 - 20:46 #2
Ok...
Jeg tænkte egentlig på at lave en ekstern fil som at jeg henter via. programmet. Den vil skulle så automatisk hook'e sig på vinduerne i programmet, og lave dem om...
Jeg kommer til at skulle bruge det i flere forskellige små programmer, så tænkte at det måske var den smarteste måde at gøre det på..?
Avatar billede bertelbrander Novice
02. december 2005 - 20:51 #3
Hvis du bruger Win32 API er det letteste nok at lave en class til hver kontrol. Og så lave en instans af class'en for hver kontrol. Det er svært at lave den slags dynamisk.
Avatar billede cronck Nybegynder
02. december 2005 - 21:31 #4
Ok... Idéen stammer fra da jeg kodede i VB 6.0, der hentede jeg på et tidspunkt en OCX fil som at jeg bare skulle referere til, og vupti! - Så var alle tingene i et lækkert design :-)
Avatar billede bertelbrander Novice
02. december 2005 - 21:39 #5
Det er en del anderledes i C++.
Avatar billede cronck Nybegynder
02. december 2005 - 21:47 #6
Yep, det må man sige... :-)
Det var så det her program jeg brugte dengang... http://www.softplatz.com/Soft/Development/Other/vbSkinner-Free.html
Avatar billede cronck Nybegynder
27. oktober 2006 - 18:56 #7
Smidder du ikke et svar - Fik det vist aldrig til at funke, men nu må det efterhånden være lukektid :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester