Du behøver ikke men det er klart det nemmeste. Du kan evt. også subclasse kanppen, men det er ofte besværligt at få til at virke.
Den sidste mulighed, som jeg kan huske, er at lave sit egen control (custom control), som du tegner og lader reagagere som en kanp. (Dette brugte jeg bla. i tidernes morgen til at lave hover-buttons i Win95)
Hvis du bruger MFC er løsningen ret simpel, da MFC alllerede subclasser sine controls. Alt du skal gøre er at skrive message-handlers, til de messages du vil behandle. Hvis du vil tegne vinduet, skal bruge ON_WM_PAINT() -> OnPaint() osv. Husk at kalde base-class´en på det rette tidspunkt ellers vil knappen opføre sig sjovt!
En custom control er bare et vindue som du selv registrere via funktionerne RegisterClass() (API) eller AfxRegisterClass() (MFC), og derefter skriver message-handler´ne.
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.