Witam. Do tej pory sprawdzałem, czy kursor wchodzi na kontrolkę i z niej schodzi funkcją:
bool DLL_EXPORT sButtonClass::KursorWewnatrz(){
POINT cur;
GetCursorPos( & cur );
ScreenToClient( hWindow, & cur );
if( cur.x < 0 || cur.x >= WindowWidth() || cur.y < 0 || cur.y >= WindowHeight() )
return false;
else
return true;
}
Jednak od czasu jak dodałem flagę, aby kontrolka mogła być okrągła lub miała kształt zdefiniowany przez uzytkownika funkcja straciła swoją ... funkcjonalność. Istnieje jakaś funkcja, która mówi mi, czy kursor znajduje się nad oknem bądź regionem?
Opis sytuacji:
Mam przycisk. Okrągły przycisk. Po najechaniu na niego kursorem zmienia się bitmapa i jak zjedziemy kursorem wraca do poprzedniego stanu. Ale ale. Mając okrągły przycisk i klikając w pixel (0, 0) klikamy w obszar nie należący do kontrolki.
Próbowałem zrobić to za pomocą wzoru na długość odcinka w układzie współrzędnych, ale wiadomo, że to zadziała tylko w przypadku okręgu, a kontrolka może mieć dowolny kształt.