WinAPI ustawianie tekstu w EDIT

0

Witam, znów mam mały (może nie, sam nwm) problem, a mianowicie ten kod:

				case ID_PRZYCISK5:
				{
					dlugosc = GetWindowTextLength(WiadomoscWindow);
					GetWindowText(WiadomoscWindow,Wiadomosc2,dlugosc+1);
					dlugosc = GetWindowTextLength(Rozmowa);
					GetWindowText(Rozmowa,RozmowaTresc,dlugosc+1);
					Wiadomosc=RozmowaTresc;
					Wiadomosc=Wiadomosc+"\n"+User+": "+Wiadomosc2;
					char *WiadomoscCon = new char[Wiadomosc.size()+1];
					strcpy(WiadomoscCon,Wiadomosc.c_str());
					SetWindowText(Rozmowa,WiadomoscCon);
					break;
					
				} 

nie ustawia mi tekstu w kontrolce "Rozmowa" na tekst zawarty w zmiennej, cały program się kompiluje, lecz gdy wcisne przycisk to wywala program z komunikatem "Program przestał działać". Da się coś z tym zrobić?

1

ale czym jest Wiadomosc, Wiadomosc2, i czy wiesz w jakim celu używasz GetWindowTextLength, bo chyba widziałeś w przykładzie i skopiowałeś ale nie wiesz po co.

Po to się pobiera długość tekstu, by zaalokować tablicę o wymaganym rozmiarze.

int dlugosc;

dlugosc = GetWindowTextLength(Rozmowa);
char *RozmowaTresc = new char[dlugosc+1];
GetWindowText(Rozmowa, RozmowaTresc, dlugosc+1);

dlugosc = GetWindowTextLength(WiadomoscWindow);
char *Wiadomosc2 = new char[dlugosc+1];
GetWindowText(WiadomoscWindow, Wiadomosc2, dlugosc+1);

string WiadomoscCon = (string)RozmowaTresc + "\n" + User + ": " + Wiadomosc2;
SetWindowText(Rozmowa, WiadomoscCon.cstr());

delete[] Wiadomosc2;
delete[] RozmowaTresc;

jakoś tak. nie sprawdzane. przeanalizuj, zanim ślepo skopiujesz.

0
Azarien napisał(a):

ale czym jest Wiadomosc, Wiadomosc2, i czy wiesz w jakim celu używasz GetWindowTextLength, bo chyba widziałeś w przykładzie i skopiowałeś ale nie wiesz po co.

Do pobrania ilości znakow z kontrolki EDIT, zmienna Wiadomosc2 to zmienia LPSTR do pobrania treści z kontrolki a Wiadomosc to string żeby dalo się później wrzucić do innej kontrolki, ale nie bardzo pomagasz

1 użytkowników online, w tym zalogowanych: 0, gości: 1