Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: VB menu takkuaa

vp [03.02.2003 09:22:35]

#

Minulla on MDI ohjelma jossa käytän Menua. Jossain tilanteissa menu alkaa takkuamaan (valikko aukeaa, mutta hiiren klikkaus ei toteuta haluttua toimintoa).
Ongelmana on lähinnä auki olevien ikkunoiden välillä liikkuminen. Onko jotain keinoa millä voisi esim. ikkunan kahvan numeron mukaan hypätä auki olevaan ikkunaan.
Ohjelmassa tehdään ikkunoita dynaamisesti eli saman nimisiä formeja voi olla auki yhtäaikaa useita.

Teme [03.02.2003 18:12:45]

#

Olet siis tehnyt itse MDI-pääikkunaan menut, ja sulla on kanssa menut niissä dynaamisissa ikkunoissa? Eikös niiden menujen pitäisi yhdistyä, siis MDI:n menun ja aktiivisena olevan ikkunan menun...? Ota aina ikkunan aktivoituessa vaikkapa ikkunan nimi johonkin muistiin, esimerkiksi MDI-formin tagiin ja samalla kun valikko aukeaa, aseta niille toiminnoille kohteeksi se ikkuna, joka on otettu viimeisenä muistiin.

vp [04.02.2003 09:22:37]

#

Tässä tapauksessa lapsi-ikkunoissa ei ole menua.
Tarkoitukseni on ongelman kiertämiseksi tehdä erillinen menu-formi joissa painikkeiden avulla otetaan näkyviin auki olevat ikkunat sekä vielä avaamattomat ikkunat. Epäilen MDI menun takkuamisen johtuvan COM portin käytöstä, koska jos COM porttissa ei ole liikennettä menu toimii moitteettomasti. Ikkunoiden vaihtaminen onnistuu hyvin normaali Windows MDI ohjelmien tapaan painamalla <ctrl> pohjaan ja painelemalla <tab> näppäintä, mutta se ei käy tässä tapauksessa formeissa olevat toiminnot ja tapahtumat toimivat myös aivan normaalisti.
Formin nimeä ei voi tässä yhteydessä käyttää koska saman nimisiä formeja voi olla auki useita yhtäaikaa.
Voin tietysti pyörittää kaikkia formeja loopissa kunnes kohdalle tulee formi jonka Caption täsmää etsityn formin kanssa ja tehdä muista näkymättömiä. Mutta jotenkin tuntuu että se ei ole kovin fiksu tapa.
Joten löytyisikö Windows API funktiota jolla voidaan hypätä ikkunan kahvan numeron mukaiseen ikkunaan?

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta