C++ problemy z MFC

0

No i znowu pytanie do kolegów programistów.
Piszę w MFC program i chcę z edita pobrać wartość i porównać go to wartości pobranej z pliku.
I mam problem z pobraniem wartości z edita.Próbuję tak foom_pin.GetWindowText(s);foo
gdzie m_pin wartość edita a s zmienna do której chcę przypisać wartość edita.

I wyskakuję taki błąd:
http://img207.imageshack.us/img207/1400/53312410.png

Wartość edita ustawiam za pomocą kreatora.Value i CString.
Znalazłem na forum podobny problem lecz niestety nie wiele mi to pomogło.

1

Skoro masz zmienną typu CString to jak chcesz używać metod z klasy CEdit?
W tej zmiennej już masz zawartość editbox'a, a jak jeszcze jej tam nie ma to używasz UpdateData(TRUE/FALSE) - w zależności w którą stronę ma być wymiana danych(z czy do kontrolki).

0

No to może inaczej zapytam.Zmieniłem wartość na Control i CEdit.
Teraz jak zamienić tą wartość na np. int żebym mógł ją przyrównać do wartości pobranej z edita?

1

stringstream albo atoi (jak już masz string wyciągnięty z tego edita)

0

A mógł byś to napisać jak ma to wyglądać dla mojego kodu

void CbankDlg::OnBnClickedButton1()
{

	int a;
	ifstream iFile("./dane/pin.txt");
	iFile >> a;
	if(a==wartosc z edita)
	{
		MessageBox(MB_OK);
	}
} 
0

Dobra już załapałem jak to wszystko działa.
Teraz muszę zamienić char* w którym przechowuję pobrane dane z pliku .txt na CStringa.
Mógł by ktoś pomóc.

1

Nie jestem pewien czy zadziała, ale możesz spróbować:

CString str;
str = (LPCSTR)w;

Jak to nie da rady to jeszcze jest metoda format z klasy CString - można jej użyć

0

Zrobiłem to trochę inaczej; ale działa i dzięki wielkie za pomoc; ale mam kolejny problem.
Mianowicie chodzi mi o to, żeby wyświetlić messageboxa ze swoim napisem i zmienną.Ma to być informacja o źle wprowadzonym pinie i ile pozostało prób.

1

Konstruujesz CString'a z taką informacją (metoda format) i wyświetlasz komunikat MessageBox

0

Ok dzięki działa.
Teraz mam problem z konwersją Cstringa do int i atoi niestety nie działa ;(

0

Poczytaj dokumentację klasy CString: GetBuffer i ReleaseBuffer

0

Z tym już się uporałem; ale mam kolejny.
Jak zrobić żeby do edita wczytywało mi kilka linijek oddzielonych enterem a nie w jednej lini.

0

Plz... jak wejdziesz w edycję dialogu, zaznaczasz kontrolkę i w properties jest tam opcja od tego... wszystko jest do znalezienia na szybkości w google, w MSDN'ie

0

No tak tylko że samo multiline i znak entera nic nie dawało; ale znalazłem na forum odpowiedź.
a teraz żeby uaktualnić tego edita po wciśnięciu buttona to muszę użyć Update.Dobrze myślę??

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