Avatar billede soren112 Nybegynder
19. oktober 2001 - 16:49 Der er 5 kommentarer og
1 løsning

WM_CREATE

Hvordan får jeg mit window til at miste focus (blive deaktiveret) i WM_CREATE?
Jeg har et program som først skal gå igang med sin funktion når det ikke har focus, og jeg vil gerne have at det går igang når det bliver eksekveret..

LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
  switch(msg)
  {
    case WM_CREATE:
      //Loose focus!
      break;
  }
}

Mvh
Søren Olesen
Avatar billede jpk Nybegynder
20. oktober 2001 - 10:26 #1
Lyder interessant, hvad skal der ske..?

Hmm, du kan jo minimere vinduet eller explicit sætte focus til en anden app.
Avatar billede soren112 Nybegynder
20. oktober 2001 - 10:50 #2
Vinduet skal ikke minimeres, da det er et toolwindow unden mulighed for at maximere det igen.., og jeg har ikke mulighed for at vide hvilke andre programmer der kører så det er lidt svært at sætte focus til dem..

Men hvis man nu kunne sætte focus til desktoppen?? Er der nogen der ved hvordan?

Programmet er en simpel mod, mp3.. osv afspiller der skal pause når vinduet (100X, 30Y) får focus, og afspille igen når det mister focus. Ideen er at jeg kan dobbeltklikke på en fil, så åbner programmet, mister focus, og går igang med at afspille.

Mvh
Søren Olesen
Avatar billede soren112 Nybegynder
20. oktober 2001 - 10:55 #3
...eller endnu bedre: sætte focus til den process der åbnede mit program..

Mvh
Søren Olesen
Avatar billede soren112 Nybegynder
20. oktober 2001 - 12:34 #4
Har ændret antallet af point til 60..
Jeg ønsker at få mit program til at sætte focus på det program der kaldte mit program..

Mvh
Søren Olesen
Avatar billede jpk Nybegynder
20. oktober 2001 - 12:45 #5
Du kan sagtens finde ud af hvilke andre programmer der kører. Dette gøres ved at enumerere child vinduer til desktoppen (alle vinduer er childs til desktopvinduet).
Du kan få en pointer til desktoppen via GetDesktopWindow().

Du behøver vel ikke explicit at sætte focus til det program der kaldte dit. Hvis bare du sender dit eget program bagud, vil det program der før havde focus jo få det igen!
Du kan jo kalde SetWindowPos() med HWND_BOTTOM som 2. argument...
Avatar billede soren112 Nybegynder
20. oktober 2001 - 13:43 #6
Jeg har udfra dit svar fundet en løsning der tilfredsstiller mig endtil videre.. Tak for hjælpen

Mvh
Søren Olesen
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