Avatar billede jakobdo Ekspert
26. juni 2004 - 09:56 Der er 3 kommentarer og
1 løsning

SDK MessageLooping

Hej...
Jeg har følgende problem.

Jeg har lavet en menu i mit program, som trigger:

switch(msg)
{
  case WM_COMMAND:
    switch(wParam)
    {
      case IDM_EXIT
        PostMessageQuit(0);
        break;
    }
    break;
}

Nu har jeg så tilføjet en BUTTON til min application.

Så nu har jeg f.eks. også en IDC_EXIT

Den skulle eftersigende kunne bruges sådan:

switch(msg)
{
  case WM_COMMAND:
    switch(HIWORD(wParam))
    {
      switch(LOWORD(wParam))
      {
          case IDC_EXIT
          PostMessageQuit(0);
          break;
      }
      break;
    }
    break;
}

Hvordan kan jeg have dem begge liggende under WM_COMMAND?

Hvordan får jeg ligesom disse to WM_COMMAND til at være i en og samme "del"??
Avatar billede bertelbrander Novice
26. juni 2004 - 11:18 #1
Ifølge denne:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/resources/menus/menureference/menumessages/wm_command.asp

Er HIWORD(WPARAM) 0 for menu events, 1 for accelerators, og != 0 hvis det er en kontrol.

For controller som f.ex. en Button er HIWORD coden f.ex. BN_CLICKED.

Så du laver først en switch på LOWORD, så ved du hvilken MENU item (i dit eksempel IDM_EXIT) eller kontrol det er, hvis det så er en knap checker du HIWORD for at finde ud af hvilken BN_xxx kode det er.
Avatar billede jakobdo Ekspert
26. juni 2004 - 11:36 #2
Ja, nogle gange kan det hjælpe at læse manualen! :o)
Smid et svar...
Avatar billede bertelbrander Novice
26. juni 2004 - 13:05 #3
Jeg vil helst ikke have point.
Avatar billede jakobdo Ekspert
27. juni 2004 - 00:28 #4
Ok! Men takker for hjælpen! (hvorfor er det folk ikke vil have point? - i hjælper jo mig, måske andre, og derfor ville det jo være på sin plads)
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