bigbull Skrevet 17. mai 2008 Skrevet 17. mai 2008 Hei! Jeg og en kamerat drivere å programerer noe som skal bli et p2p program. Hadde vært fett med et annerledes og unikt GUI. Har klart å skrape sammen noe kunnskap om win32 api, synes MFC virker som noe forbanna rot! Så tar sikte på å skrive GUI`et direkte i win32 apiet. For å få den unike looken trenger vi en egen title bar Noen som har ide til kode eller noen ressurser for å lage en custom title bar i win32 api?
OldMan Skrevet 18. mai 2008 Skrevet 18. mai 2008 (endret) Dette var ganske vanlig på win95 tiden. Fant ingen linker, men mener det var ganske enkelt å få til ved å painte selv på WM_NCPAINT, og eventuelt bruke WM_NCCALCSIZE hvis man ønsket custom size etc. Vær forberedt på at dette kan virke litt forskjellig på de gamle os versjonen (win95,NT,2000) og XP og ikke minst Vista, så test på de OS dere ønsker å støtte. Her var en fin url. Endret 18. mai 2008 av OldMan
bigbull Skrevet 18. mai 2008 Forfatter Skrevet 18. mai 2008 (endret) Takk for svar! Kunne du hjulpet meg med et lite kode eksempel? WM_NCPAINT skal sendes som en message til hovedprosessen? Men det må vel være en funksjon som skal definere hva det skal paintes som?! GDI? Den codeproject artikkelen syntes jeg ble så kompleks siden alt var skrevet i en ferdig class allerede Men kanskje jeg blir nødt å gå igjennom den siden win32 apiet er nokså komplekst Endret 18. mai 2008 av bigbull
OldMan Skrevet 18. mai 2008 Skrevet 18. mai 2008 (endret) Takk for svar! Kunne du hjulpet meg med et lite kode eksempel? WM_NCPAINT skal sendes som en message til hovedprosessen? Men det må vel være en funksjon som skal definere hva det skal paintes som?! GDI? Den codeproject artikkelen syntes jeg ble så kompleks siden alt var skrevet i en ferdig class allerede Men kanskje jeg blir nødt å gå igjennom den siden win32 apiet er nokså komplekst Rekker ikke noe ufyllende svar, men følgende kan hjelpe litt: WM_NCPAINT blir som alle andre meldinger sendt til hvert vindu sin msg que, og du takler den på samme måte som alle andre meldinger, i wndproc. Hvis du ser hva som gjøres i CSkinWindow::OnNcPaintA(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) i koden til linken jeg ga så får du en en god ide om hva som må til. Typisk må du painte bakgrund, tittel, icon og eventuelt minimize, maximize og close button. Noen velger å kalle defWindowProc først slik at windows tegner default windows ting først for så å tegne sin egen implementasjon oppå. Hvis du ikke overstyrer WM_NCCALCSIZE og git tittelfelt din egen størrelse bruker du typisk GetSystemMetrics og liknende for å spørre os hvor høyt titlebar er osv, da dette jo varierer mellom os versjon og brukeroppsett. WM_NCPAINT gl Endret 18. mai 2008 av OldMan
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå