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.)
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.
Voiko char-tyypin muuttaa LPCTSTR-tyypiksi? Mitä se valittaa?
Tuo "paikka" muuttuja on nolla, joten se ei mene sinne minne pitäisi.
static char paikka[100]; // ----> TCHAR paikka[100];
Koita tuota, en kyllä tiedä toimiiko.
Legu kirjoitti:
static char paikka[100];
// ---->
TCHAR paikka[100];
Ei auttanut :/
Mitä tuossa "paikka"-muuttujassa on SendMessagen jälkeen?
Legu kirjoitti:
Mitä tuossa "paikka"-muuttujassa on SendMessagen jälkeen?
Siinä ei oo mitään
char paikka[100];
Tuon pitäisi toimia.
Ja oletko katsonut mitä SendMessage saa palautusarvoksi?
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ä ???
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).
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
Jalmari91 kirjoitti:
tuossa missä nyt on WM_GETTEXT
Ja missähän se mahtaa olla?
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); }
Ja tuopa kertookin paljon siitä, missä kohti ohjelmaasi se sijaitsee.
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
Jes sain toimimaan ratkaisu oli GetDlgItem() =D
Aihe on jo aika vanha, joten et voi enää vastata siihen.