Museklik på knap

Tags:    c++

Hej,

Jeg har oprettet en knap (HWND btn) i runtime.
Hvordan kan jeg sætte noget event handle ting op og tjekke, når der bliver trykket på den? Mit message loop "gælder" jo kun for mit hovedvindue (hwnd)...

Hilsen Thomas



6 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Når brugeren trykker på knappen, sender knappen en besked til sin parent, normalt hovedvinduet.

I message proc for hovedvinduet kan du fange den med:

case WM_COMMAND:
if(HIWORD(wParam) == BN_CLICKED &&
LOWORD(wParam) == IDC_BUTTON1)
{
}
IDC_BUTTON1 er ID'en på knappen.



Pyha ... Jeg troede, jeg skulle til at lave et helt nyt message loop og registrere en ny klasse og så videre ;)

Hvordan kan jeg så sætte fx. en baggrundsfarve på knappen? Jeg kan jo ikke skrive .hbrBackground, som med mit main vindue.



Tag et kik på WM_CTLCOLORBTN:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/buttons/buttonreference/buttonmessages/wm_ctlcolorbtn.asp

Du bruger returværdien til at specificere hvilken "brush" der skal bruges til at tegne baggrund for knappen.



Det forstår jeg ikke en brik af. Kan du eventuelt lave et eksempel?



En ikke særlig god knap:
Fold kodeboks ind/udKode 


BackBrush er lavet med:
Fold kodeboks ind/udKode 


Det kræver at du giver knappen BS_OWNERDRAW style når du opretter den med CreateWindow.




Mange tak :)



t