Hogyan juthat el a fogantyút s egyéb programelemek

Hogyan juthat el a fogantyút s egyéb elemeit a program?

Kap egy fogantyú a prog egymástól a FindWindow, majd Handl „s az összes gomb, Edith, ezért alkalmazása szükséges FindWindowEx, de nem tudom, hogyan. Mivel a legkívánatosabb és a fogantyúkat, hogy megismerjék a kilincset koka amely elem megfelel.







Ahogy helyesen mondta - meg kell használni FindWindowEx + tudni az osztály az ablak (ugyanabban az ablakban gomb), hogy meg akarja találni.
például:

FindWindowEx (FindWindow ( "Shell_TrayWnd", nulla), 0, "gomb", nulla);

Kapsz egy fogantyú Start gombot.
Ie FindWindowEx az első paraméter mezőben, a szülő, a harmadik osztályba az ablak, hogy meg akarja találni. De amikor a fogantyú tudni fogja, mit jelent-e vagy sem az ablak, amire szüksége van - ez nem nehéz.

Ie ha rámutatok „Button” vagy „Edit” akkor lesz helyes, és azt fogja jelenteni, egy ablak osztály? És hogyan, például c DateTimePicker „om legyen?
És egy fogantyú, hogy melyik gombot vagy Szerkesztés „tartozik? Ha lehet részletesen.

Olvassa el a mintegy ablakot osztályok Win9x - az SDK nevük.







>> És egy fogantyú, hogy melyik gombot vagy Szerkesztés „tartozik?

Ismerve a kilincs, akkor az API f th megismerni ezt az ablakot minden. A képaláírás, abszolút nagysága, a relatív méret, stílus, szülő, stb
És amíg te magad tudod, mit keresnek - gombot vagy szerkesztése - ez attól függ, hogy az osztály neve, amelyet megadott FindWindowEx.
8)

Ha ez nem működik - fogunk harcolni :)

WinSight talán? Oké, nézd. De ha fel ezt a kérdést több :) Fájdalmasan érdekes téma. Igen, és másokat is érdekelni fog.

Minden kiderült, csak egy kis probléma maradt Hogyan juthat el minden Hendley például Edith (Edit1, Edit2.), Ha üres? Ie Ha így teszünk FindWindowEx (Hndl, 0, "tSzerkesztés" nulla); megkapjuk az első kapott egy fogantyú Edita. Ie Kiderült, hogy ha Edith Jelenleg nincs fejléc, ha százszor kell írni ezt a kódot, akkor még mindig ugyanazt a dolgot, hogy hogyan kell?

Ok, fogom látni a cikket.

próbálja ezen a módon.

char buf [65535];
// itt, így kap a fogantyút az első gyermek ablakban
HWD = GetWindow (Handle az ablakot, amit keres Chidlom, GW_HWNDFIRST | GW_CHILD);
while (HWD! = 0) // Azt viszont ciklus, amíg nincs gyerek ablakok
<
GetClassName (HWD, buf, 255); // Az osztály neve
if ((buf [0] == "E") (BUF [3] == "t")) // Ez a szerkesztés.
<
. Che menet ezt handle`om
>
HWD = GetWindow (HWD, GW_HWNDNEXT); // a következő gyermek ablakban
>

és nem szükséges, hogy fürödni :)

Memória: 0,74 MB
Idő: 0.023 c




Kapcsolódó cikkek