-
1. Data: 2010-03-27 16:21:16
Temat: WinAPI - RealGetWindowClass
Od: Karol Y <k...@o...pl>
Witam, problem dotyczy funkcji WinAPI, RealGetWindowClass. Checkboxy,
groupboxy, radiobuttony i zwykłe buttony identyfikuje jako "button".
Spotkał się ktoś może z tym problemem i dał radę, to jakoś rozgryźć?
RealGetWindowClass -
http://msdn.microsoft.com/en-us/library/ms633538%28V
S.85%29.aspx
--
Mateusz Bogusz
-
2. Data: 2010-03-28 22:15:44
Temat: Re: WinAPI - RealGetWindowClass
Od: Jarek <j...@s...pl>
Dnia Sat, 27 Mar 2010 17:21:16 +0100, Karol Y napisał(a):
> Witam, problem dotyczy funkcji WinAPI, RealGetWindowClass. Checkboxy,
> groupboxy, radiobuttony i zwykłe buttony identyfikuje jako "button".
Bo to wszystko ma jedną klase 'button', różnią się one stylem.
--
Jarek
-
3. Data: 2010-03-30 17:02:28
Temat: Re: WinAPI - RealGetWindowClass
Od: Karol Y <k...@o...pl>
>> Witam, problem dotyczy funkcji WinAPI, RealGetWindowClass. Checkboxy,
>> groupboxy, radiobuttony i zwykłe buttony identyfikuje jako "button".
>
> Bo to wszystko ma jedną klase 'button', różnią się one stylem.
Dziękuje. Używam teraz GetWindowInfo do pobrania informacji o oknie i
jego stylu "dwStyle". Tyle, że to mi zwraca wartości jak np.
"1342177287", a stałe jak BS_RADIOBUTTON czy BS_GROUPBOX mają wartości
rzędu pojedynczego typu "4" czy "7".
Rozumiem, że na styl składa się wiele "właściwości", ale jak mam
wyłuskać czy jest to radiobutton czy np. groupbox skoro te trybuty BS_*
rosną liniowo 1,2,3,4... i nie da się tego binarnie porównać?
--
Mateusz Bogusz
-
4. Data: 2010-03-30 20:57:13
Temat: Re: WinAPI - RealGetWindowClass
Od: Marcin Kral <k...@p...na-onecie.pl>
W dniu 2010-03-30 19:02, Karol Y pisze:
>>> Witam, problem dotyczy funkcji WinAPI, RealGetWindowClass. Checkboxy,
>>> groupboxy, radiobuttony i zwykłe buttony identyfikuje jako "button".
>>
>> Bo to wszystko ma jedną klase 'button', różnią się one stylem.
>
> Dziękuje. Używam teraz GetWindowInfo do pobrania informacji o oknie i
> jego stylu "dwStyle". Tyle, że to mi zwraca wartości jak np.
> "1342177287", a stałe jak BS_RADIOBUTTON czy BS_GROUPBOX mają wartości
> rzędu pojedynczego typu "4" czy "7".
>
> Rozumiem, że na styl składa się wiele "właściwości", ale jak mam
> wyłuskać czy jest to radiobutton czy np. groupbox skoro te trybuty BS_*
> rosną liniowo 1,2,3,4... i nie da się tego binarnie porównać?
Dawno nie uzywalem WinApi wprost ale robilo sie to wlasnie "binarnie":
if (dwStyle & (BS_RADIOBUTTON | BS_CHECKBOX)))
...
PS. Nie lepiej z GUI bawic sie w .NET?
--
Pozdrawiam
Marcin Kral
-
5. Data: 2010-03-31 21:12:17
Temat: Re: WinAPI - RealGetWindowClass
Od: Karol Y <k...@o...pl>
> if (dwStyle & (BS_RADIOBUTTON | BS_CHECKBOX)))
^^ taka konstrukcja nie działa. Lepiej taka:
if (dwStyle & (BS_RADIOBUTTON | BS_CHECKBOX) == (BS_RADIOBUTTON |
BS_CHECKBOX))
Niedogodność w tym, że mimo iż przycisk wygląda tak jak np. zwyczajny
przycisk, to należy sprawdzić go dla kilku styli np. BS_PUSHBUTTON,
BS_DEFPUSHBUTTON, BS_USERBUTTON, BS_PUSHBOX, bo nie ma żadnego który po
prostu powie - tak to jest jakiś tam przycisk.
> PS. Nie lepiej z GUI bawic sie w .NET?
Ależ aplikacja jest pisana w C# :-) A jedną z jej ważniejszych funkcji
jest iterowanie po oknach aplikacji zewnętrznych i
poprawianie/wykrywanie przycięć tekstu, zduplikowanych skrótów
klawiszowych...
--
Mateusz Bogusz