Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Killfocus ja Cancel-nappi

Sivun loppuun

Delrauch [03.09.2004 20:43:33]

#

Jos oon luonu vaikkapas editboxin ja liittäny siihen KillFocus functionin, joka tarkistaa että on annettu kelvollista tietoo esim. tarkistaa tilnumeron oikeellisuuden ja huomauttaa kun tilinumero on vääränlainen. Ja palauttaa focuksen takaisin editboxiin.

Ongelma tulee siinä kun käyttäjä klikkaa vaikkapas Cancelii sillo ku editboxi on focuksessa ja se sitte tietysti tarkistaa sen oikeellisuuden ja paluttaa sen focuksen siihen editboxiin jos oli vääränlaista dataa.

Eli miten saisi homman pelittämään ilman mitään suurempia purkkaviritelmiä?

EDIT:Siis ongelma on miten Cancel napin saa tomimaan "oikein"

Metabolix [03.09.2004 20:52:50]

#

Ohjelmointiputkan ohje kirjoitti:

Jos alueella keskustellaan useammasta ohjelmointikielestä, muista mainita viestissä, mihin kieleen oma ongelmasi liittyy.

Delrauch [03.09.2004 20:55:33]

#

Aivan kielenä on VC++

kaviaari [03.09.2004 21:11:21]

#

Kieli ei ole VC++ vaan C++ ja VC++ on sun IDE,

Metabolix [03.09.2004 21:25:13]

#

Käytätkö .NET-komponentteja? *voi kerpele kun on joskus vaikeaa*

Delrauch [03.09.2004 21:38:53]

#

Ohjelma: Microsoft Visual C++ 6.0
Kieli: C/C++

Ja käytössä ei ole .Net componentteja.

*muminaa ja mutinaa*

Ja Kaviaari anteeksi että en ollut riittävän tarkka, mutta jäikö joltakin ton VC++ jälkeen käyttämäni kieli epäselväksi?

Metabolix [04.09.2004 20:43:42]

#

En aivan tarkalleen tiedä noiden käyttäytymistä, mutta:
KillFocus-funktion alussa voisi käydä läpi ohjelmalle lähetetyt viestit:

while (PeekMessage(&msg, 0, 0, 0, PM_REMOVE))
{
  TranslateMessage(&msg);
  DispatchMessage(&msg);
}

Tällöin varmaankin saataisiin napinpainallus käsiteltyä. Cancel-napinpainallus sitten asettaa jonkin muuttujan, josta KillFocus tarkistaa, pitääkö jatkaa.

Tai sama purkkana:
Laita KillFocus-funktioon vain timerin luonti, vaikkapa yhden millisekuntin päähän, ja liitä tähän timeriin koodi, jossa tarkistat numeron oikeellisuuden. Windows-timerin WM_TIMER-viesti menee viestijonon loppuun, jolloin Cancel hoidetaan ensin. Tässäkin pitää lisätä napinpainallukseen muuttuja ja TimerProciin sen tarkistus.

Delrauch [04.09.2004 21:05:27]

#

Joo, sain jo tossa päivällä ongelman ratkastuu oikeestaan juuri tolla tavalla kun sanoit tossa yllä (ei purkka).
Mutta kiitoksia kuiteski.


Sivun alkuun

Vastaus

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

Tietoa sivustosta