Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C: Win32 WM_GETTEXT ei toimi

Sivun loppuun

Jalmari91 [12.01.2007 19:09:24]

#

Mikä tässä on vikana.

static char paikka[100];
SendMessage (edit, WM_GETTEXT, 99, (LPARAM) paikka);
ShellExecute(hwnd,0,paikka,NULL,NULL,SW_SHOWNORMAL);

Mun mielestä se on oikein, mut ei toimi :(
(Mod. edit: Niin lyhyt kuin se onkin, käytä silti kooditageja.)

Metabolix [12.01.2007 19:12:53]

#

Jaa, ja kumpihan kohta siinä ei toimi? Voisit vaikkapa selvittää, meneekö viestisi perille, käsitelläänkö se, mikä on paikka-taulun sisältö viestin jälkeen jne. ShellExecutelle oikea operaatio taitaisi olla "open" eikä 0.

moptim [12.01.2007 19:15:21]

#

Voiko char-tyypin muuttaa LPCTSTR-tyypiksi? Mitä se valittaa?

Jalmari91 [12.01.2007 19:26:36]

#

Tuo "paikka" muuttuja on nolla, joten se ei mene sinne minne pitäisi.

Legu [12.01.2007 19:46:00]

#

static char paikka[100];
// ---->
TCHAR paikka[100];

Koita tuota, en kyllä tiedä toimiiko.

Jalmari91 [12.01.2007 19:50:41]

#

Legu kirjoitti:

static char paikka[100];
// ---->
TCHAR paikka[100];

Ei auttanut :/

Legu [12.01.2007 19:56:55]

#

Mitä tuossa "paikka"-muuttujassa on SendMessagen jälkeen?

Jalmari91 [12.01.2007 20:07:58]

#

Legu kirjoitti:

Mitä tuossa "paikka"-muuttujassa on SendMessagen jälkeen?

Siinä ei oo mitään

Legu [12.01.2007 20:14:35]

#

char paikka[100];

Tuon pitäisi toimia.
Ja oletko katsonut mitä SendMessage saa palautusarvoksi?

Jalmari91 [12.01.2007 20:32:20]

#

Nyt mä huomasin mistä se johtuu, kun se ei suorita tuota SendMessage juttua, kun laittaa.

 if ( LOWORD(wParam) == 1) {
static char paikka[100];
SendMessage (edit, WM_GETTEXT, 99, (LPARAM) paikka);
ShellExecute(hwnd,0,paikka,NULL,NULL,SW_SHOWNORMAL);
}

Onko siinä joku syy miks se ei suorita niitä ???

Metabolix [14.01.2007 13:44:18]

#

Kuinka niin ei suorita? Palauttaakos se heti? Jospa vaikka laittaisit sleepin sen jälkeen tai kokeilisit PostMessagea. Melkeinpä kuvittelisin, ettei tuota ehkä voi käyttää WndProcista (kuten tuosta päättelisin sen sinulla olevan).

Jalmari91 [14.01.2007 14:02:07]

#

No kun laitoin, että se kirjoittaisi tekstin eli WM_SETTEXT jutun niin se ei kirjoittanut tuossa missä nyt on WM_GETTEXT, mutta case WM_CREATE: kohdassa kirjoitti.Niin mihin se pitäis tuo GETTEXT laittaa, että se hakis tekstin edit laatikosta, kun painais nappia???

Oon huono selittää, mut toivoittavasti tajusitte :D

Metabolix [14.01.2007 14:57:30]

#

Jalmari91 kirjoitti:

tuossa missä nyt on WM_GETTEXT

Ja missähän se mahtaa olla?

Jalmari91 [14.01.2007 15:10:36]

#

Jalmari91 kirjoitti:

tuossa missä nyt on WM_GETTEXT

Metabolix kirjoitti:

Ja missähän se mahtaa olla?

 if ( LOWORD(wParam) == 1) {
static char paikka[100];
SendMessage (edit, WM_GETTEXT, 99, (LPARAM) paikka); //tässä =D
ShellExecute(hwnd,0,paikka,NULL,NULL,SW_SHOWNORMAL);
}

Metabolix [14.01.2007 20:51:08]

#

Ja tuopa kertookin paljon siitä, missä kohti ohjelmaasi se sijaitsee.

Jalmari91 [15.01.2007 15:59:36]

#

case WM_COMMAND:
switch HIWORD(wParam)
{
case BN_CLIKED:
if (LOWORD(wParam) == 1)
{
char paikka[100];
SendMessage (edit, WM_GETTEXT, 99, (LPARAM) paikka);
ShellExecute(hwnd,0,paikka,NULL,NULL,SW_SHOWNORMAL);
}
}

Eli se on LRESULT CALLBACK systeemissä. Pitääkö vielä tarkentaa =D

Jalmari91 [19.01.2007 14:15:15]

#

Jes sain toimimaan ratkaisu oli GetDlgItem() =D


Sivun alkuun

Vastaus

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

Tietoa sivustosta