Avatar billede omen Nybegynder
03. november 2003 - 07:06 Der er 11 kommentarer og
1 løsning

Custom TitleBar

Jeg vil lave min egen titlebar, men jeg er på bar bund!

Så det jeg har brug for er følgende:

1. At kunne flytte vinduet ved at klikke og flytte musen, på et bestemt areal!

2. At kunne minimere vinduet! (maksimer/gendan ikke nødvendigt)

På forhånd tak!
Avatar billede wisen Nybegynder
03. november 2003 - 10:31 #1
Jeg går ud fra du mener titellinien på en vindue... prøv at søge på 'Nettet efter WM_NCPAINT... Jeg kan ikke umiddelbart finde et C# eksempel, men der er nogle C++ (MFC) eksempler på kan prøve at kikke på - f.eks :

http://www.codeguru.com/docking/devstudio_like_controlbar.shtml
Avatar billede omen Nybegynder
11. november 2003 - 16:55 #2
Kan ikke rigtigt bruge det!
Avatar billede omen Nybegynder
11. november 2003 - 16:55 #3
g
Avatar billede omen Nybegynder
11. november 2003 - 16:56 #4
Svar!
Avatar billede omen Nybegynder
11. november 2003 - 16:56 #5
SVAR!!
Avatar billede omen Nybegynder
11. november 2003 - 16:57 #6
Læg et svar Wisen, det her fungere ikke ordenligt!
Avatar billede nielsbrinch Nybegynder
12. november 2003 - 18:10 #7
Jeg har en løsning ... den kommer her:
Avatar billede nielsbrinch Nybegynder
12. november 2003 - 18:12 #8
Det her skal være som en metode:

/* FLYTNING AF FORM */
        //API constants
        public const int WM_NCLBUTTONDOWN = 0xA1;
        public const int HTCAPTION = 0x2;
        //API functions to move the form
        [System.Runtime.InteropServices.DllImport("user32.dll")]
        public static extern bool ReleaseCapture();

        [System.Runtime.InteropServices.DllImport("user32.dll")]
        public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);

        public void Caption_MouseDown(object sender, MouseEventArgs e) {
            //If the left mouse is pressed in top 30 pixels , release form for movement
            if (e.Button == MouseButtons.Left && e.Y < 12) {
                // Release form, so it can be moved
                ReleaseCapture();
                SendMessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
            }
        }

Og så skal du sætte din forms FormBorderStyle til None...

Og så lige én til ting, som jeg lige skal finde frem
Avatar billede nielsbrinch Nybegynder
12. november 2003 - 18:14 #9
Det skal stå i initialiseringen:

this.MouseDown += new MouseEventHandler(this.Caption_MouseDown);

Det er det hele ... Du kan ændre "12" til et andet tal, hvis du custom titlebar skal være højere end det.
Avatar billede nielsbrinch Nybegynder
12. november 2003 - 18:15 #10
Minimere er ret nemt:

this.WindowState = System.Windows.Forms.FormWindowState.Minimize;
Avatar billede omen Nybegynder
12. november 2003 - 18:18 #11
Mange tak!
Avatar billede nielsbrinch Nybegynder
12. november 2003 - 18:37 #12
Det sidste skulle være Minimized, ikke Minimize. Men ellers :)

Undskyld de mange beskeder jeg brugte på det...
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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