aplikacja bez focusa (coś jak klawiatura ekrnanowa)

0

szukałem w internecie ale nie mogę nic znaleźć
chodzi mi o coś takiego że mam formę na niej jakieś przyciski (u mnie akurat panele) w które mogę kliknąć i coś się tam dzieje
ale ta moja aplikacja nie powinna stawać się aktywna od kliknięcia fokus powinien pozostać przy aktywnej aplikacji - czyli ma działać tak jak klawiatura ekranowa w windows
jeżeli wiecie rak to zrobić to prosił bym o rozwiązanie lub link
najlepiej w c++ builder lub z informacją jak zastosować rozwiązanie w c++ builderze
z góry dziękuję ..

0

nie wiem jak tworzysz okno ale winapi pozwala na ustawienie w oknie flagi która sprawia, że nie można zaznaczyć okna(nie staje się aktywne)

0

jeżeli myślisz o SW_SHOWNOACTIVATE to to sprawia tylko że po uruchomieniu nie staje się aktywna
ale każde kliknięcie w któryś panel powoduje okno przejmuje focus

0

oczywiście ja wiem że można wziąć fokus aktywnego okna wykonać dla niego setforeground window i wykonać akcję - ale ja nie chce żeby tamto okno "wiedziało" że przestało być aktywne

jakoś klawiatura ekranowa to robi - może ktoś wie jak

0
SetWindowPos(hwnd, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOACTIVATE); 

ta funkcja sprawi, że okno nie będzie się ruszać i nie będzie aktywne

0

dzięki za zainteresowanie ale to nie działa - klikam w okno pasek staje się niebieski (okno aplikacji którą chcę sterować przestaje być aktywne)

0

ewentualnie można jeszcze:

SetWindowPos(hwnd, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE);  

może podajesz nie ten uchwyt?

0

no chyba dobry Form1->Handle
bo inne flagi działają i pozycję/rozmiar też można zmieniać
może to specyfika buildera
próbowałem też to ustawiać dla uchwytu panelu ale nie skutkuje

0

WS_EX_NOACTIVATE

0

... no nie wiem, według mnie uchwyt jest nie taki, choć buildera nie mam... może spróbuj tak pobrać uchwyt:

hwnd = FindWindow(NULL,(LPCWSTR)"nazwa okna idzie tutaj"); 

i jak to nic nie da to w tedy coś się innego wymyśli...

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0