Avatar billede prodoc Nybegynder
14. januar 2001 - 12:29 Der er 11 kommentarer og
1 løsning

Centreret Caption i Form

Hejsa er der nogen der ved hvordan man laver ens caption sådan at den automatisk vises centreret? (jeg ved godt at man bare kan bruge mellemrums tasten indtil den blir centreret - Men er der ikke en funktion eller lignende der kan gøre det automatisk)
?
Jeg har ´kun givet 5 points for det burde jo i grunden være let nok ik*?
Avatar billede slepee Nybegynder
15. januar 2001 - 08:28 #1
Jeg mener at du kan sætte en property til at være alCenter eller sådan noget! Så skal du bare have \'Label\'en til at fylde hele længden på formen!!!
Avatar billede blomme Nybegynder
15. januar 2001 - 08:38 #2
Det hjælper jo ikke hvis formen bliver rezised !
Avatar billede prodoc Nybegynder
15. januar 2001 - 12:37 #3
Slepee>Det skal være Captionen på en Form ikke en Label ;)
Blomme>Ja det var nemlig også derfor jeg synes at det ville være lettere hvis man bare kunne centrerer Captionen i stedet for at bruge mellemrums-tasten....
Avatar billede wisen Nybegynder
17. januar 2001 - 09:25 #4
Jeg tror ikke man umiddelbart kan centrere en caption da det er noget Windows styrer. Det jeg tor du skal gøre er at fange WM_NCPAINT og tegne caption selv....
Avatar billede denniss Nybegynder
17. januar 2001 - 21:31 #5
det du skal gøre er at lave en funktion der bliver kørt på form.resize.

den skal tage form.width div 2 - dintekst.width div 2 så får du antal punkter din tekst skal rykkes ind.

ved dintekst.witdth skal du ind og have størrelsen af hver tegn. hehe.

så inden du smider din tekst ind i caption skal funktionen beregne hvor mange mellemrum der skal sættes ind ud fra resultatet.... gad vide om et mellemrum ikke er 1 el. 2 pixels bred ?, selvfølgelig afhængig af fonten.

ingen har sagt det skulle være let. men kan lade sig gøre
Avatar billede borrisholt Novice
18. januar 2001 - 06:32 #6
Det er ikke måden at gøre det på ... Hvis ma tager en lille tur via MSDN finder mand det følgende :

Remarks
The DefWindowProc function paints the window frame.

An application can intercept the WM_NCPAINT message and paint its own custom window frame. The clipping region for a window is always rectangular, even if the shape of the frame is altered.

The wParam value can be passed to GetDCEx as in the following example.

case WM_NCPAINT:
{
    HDC hdc;
    hdc = GetDCEx(hwnd, (HRGN)wParam, DCX_WINDOW|DCX_INTERSECTRGN);
    // Paint into this DC
    ReleaseDC(hwnd, hdc);
}


Så bruger du blot DrawText til at skrive dine ting med ....

Jens B
Avatar billede wisen Nybegynder
18. januar 2001 - 07:48 #7
Nemlig borrisholt...
Avatar billede borrisholt Novice
08. februar 2001 - 07:47 #8
?
Avatar billede wisen Nybegynder
08. februar 2001 - 07:52 #9
Jeg refererede til mit tidligere svar, om at \"fange\" WM_NCPAINT, og selv tegne NON-CLIENT området. Men husk, at det ikke kun er den blå linie, det er også rammen omkring vinduet der skal tegnes; ellers kommer det nok til at se lidt mærkeligt ud...
Avatar billede borrisholt Novice
08. februar 2001 - 07:55 #10
wisen >> Det var ikke til dig .. men det kunne du jo ikke vide ... Det var til prodoc, jeg er en anelse træt af han manerer med at oprette spørgsmål for så blot at synke i jorden ....

Jens B
Avatar billede wisen Nybegynder
08. februar 2001 - 07:57 #11
Nå, ok; derudover kan jeg godt følge dig...

/wisen
Avatar billede wisen Nybegynder
12. februar 2001 - 07:56 #12
øv :)
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