[ Milos Stojanovic @ 28.09.2005. 14:33 ] @
Da li je ikako moguće odrediti tip kontrole, ako imam potrebne informacije o njoj? Znači uspem da uzmem handle (HWND) te kontrole, ID threada kome ta konrola pripada, handle parenta... itd, ali da li postoji ikakav WinAPI poziv koji bi odredio određene karakteristike te kontrole, konkretno bih želeo da znam da li ta kontrola može da primi keystrokes, tj. da li spada u sledeću grupu: EditBox, ListBox, ComboBox, StringList, RTFList, neke custom controle, itd.

Gledao sam funkcije GetWindowLong, GetWindowInfo i GetClassInfoEx , ali nikako da pronađem ono što mi treba. Najveći problem je u tome što ne znam kako se tačno zove karakteristika koju želim da ispitam (canReceiveText ? :).

Samo nemojte neko rešenje u .Netu, please :)

Hvala unapred na pomoći.
[ X Files @ 28.09.2005. 16:07 ] @
Pogledaj ovde:

http://tinyurl.com/bojk4


Za Borland C++ Builder znam kako se to radi, a za MFC mislim da ide IsKindOf



[ Milos Stojanovic @ 28.09.2005. 16:29 ] @
Hvala za link. Pogledao sam, i koliko mogu da primetim to se svodi na nešto slično kao
GetClassName. Problem je što funkcije tog tipa ne vrše posao za klase / kontrole koje imaju ne specifično ime. Npr klase sa imenom "VsTestEditPane" (ovo mi vrati za Visual Studio Code Editor kontrolu), "MozillaWindowClass" (sva text polja koja sam probao u Mozilli), itd.

Meni je potrebno da nekako mogu generalno da ispitam da li kontrola prima text. A ispitivati da li je ime klase kontrole jednako nekom stringu je neizvodljivo kod custom controla.
[ X Files @ 28.09.2005. 18:31 ] @
Nisam siguran da sam bas najbolje razumeo, ali cini mi se da bi GetPropInfo() mogao
da ti zavrsi posao. Ovo je primer za Borland C++Builder, a ti svakako pogledaj API
dokumentaciju za pomenutu funkciju, kao i za SetStrProp();

Code:

    #include <TypInfo.hpp>

    for(int x = 0; x < ControlCount; ++x)
    {
        TControl *ctrl = Controls[x];
        PPropInfo pPropInfo = GetPropInfo(ctrl, "Caption", TTypeKinds() << tkString << tkLString << tkWString);
        if( pPropInfo )
            SetStrProp(ctrl, pPropInfo, "new value");
    }


[Ovu poruku je menjao X Files dana 28.09.2005. u 19:31 GMT+1]

P.S. Izgleda da su API-ji GetProp/SetProp, dok su ovi GetPropInfo/SetStrProp
ipak specificni za C++ Builder.


[Ovu poruku je menjao X Files dana 28.09.2005. u 19:57 GMT+1]
[ Milos Stojanovic @ 29.09.2005. 19:08 ] @
Hm... naleteo sam na nešto, ali to ništa ne mora da znači. Igrao sam se malo sa Spy++, i kolko sam primetio, kontrole koje primaju text imaju style ES_LEFT vezan za sebe, ali nikako mi ne polazi za rukom da ja u Run-time proverim da li kontrola ima taj style.

Mada pretpostavljam da neke custom kontrole ni ne koriste standardne style-ove :( Bolje išta nego ništa.
[ X Files @ 29.09.2005. 20:12 ] @
Pazi, kod Borlanda skoro sve kontole koje imaju neki naslov, imaju Caption
property. U gornjem primeru, trazi se Caption i menja se...

Kod Microsoft-a mislim da je Text taj property.

Nemoguce je da nesto takvo nema kod MFC-a... Mora da ima na net-u.

P.S. mada nisi nam rekao za sta ti zapravo treba takav mehanizam... mozda
moze nesto zaobilaznim resenjem.


[Ovu poruku je menjao X Files dana 29.09.2005. u 21:13 GMT+1]