mikson Temat założony przez niniejszego użytkownika |
[winApi][C++] Pobieranie wartości textboxa do zmiennej » 2014-01-08 16:12:37 Witam. Jak pobrać wartość textboxa do zmiennej typu int ? Dodam, iż próbowałem zrobić to sposobem z lekcji w kursach, ale nie działa. Próbowałem również zrobić to sposobem: int r_b = GetWindowTextLength( hText ); TCHAR * bufor_na_tekst = new TCHAR[ r_b ]; GetWindowText( hText, bufor_na_tekst, r_b ); ale również nie działa, bo program wypisuje jakieś dziwne liczby typu 7477000 . Co tu robić? Z góry dziękuję za pomoc i pozdrawiam. |
|
alixir |
» 2014-01-08 17:08:08 Może są lepsze/bezpieczniejsze metody, ale ta też działa: HWND editID = GetDlgItem( hwnd, ID_EDIT ); _TCHAR buff[ 20 ]; GetWindowText( editID, buff, 20 ); int liczba = _tstoi( buff ); |
|
mikson Temat założony przez niniejszego użytkownika |
» 2014-01-08 18:19:44 C:\Users\admin\Documents\C++\Zliczarka\main.cpp In function `LRESULT WindowProcedure(HWND__*, UINT, WPARAM, LPARAM)': 174 C:\Users\admin\Documents\C++\Zliczarka\main.cpp `ID_EDIT' undeclared (first use this function) (Each undeclared identifier is reported only once for each function it appears in.) 177 C:\Users\admin\Documents\C++\Zliczarka\main.cpp `_tstoi' undeclared (first use this function) C:\Users\admin\Documents\C++\Zliczarka\Makefile.win [Build Error] [main.o] Error 1 |
|
alixir |
» 2014-01-08 19:19:08 Po 1: Znów to co poprzednim razem :) #include <tchar.h> Po 2: Kontrolki EDIT i BUTTON w moim przypadku miały nadane ID: #define ID_EDIT 501 #define ID_PRZYCISK 502 ... HWND hText = CreateWindowEx( WS_EX_CLIENTEDGE, _T( "EDIT" ), NULL, WS_CHILD | WS_VISIBLE | WS_BORDER, 10, 10, 150, 20, hwnd,( HMENU ) ID_EDIT, hInstance, NULL ); HWND g_hPrzycisk = CreateWindowEx( 0, _T( "BUTTON" ), _T( "Przycisk" ), WS_CHILD | WS_VISIBLE, 40, 40, 150, 30, hwnd,( HMENU ) ID_PRZYCISK, hInstance, NULL ); ... case WM_COMMAND: switch( wParam ) { case ID_PRZYCISK: HWND editID = GetDlgItem( hwnd, ID_EDIT ); _TCHAR buff[ 20 ]; GetWindowText( editID, buff, 20 ); int liczba = _tstoi( buff ); _TCHAR szBuffer[ 20 ]; _stprintf( szBuffer, _T( "%i + 15 = %i" ), liczba, liczba + 15 ); MessageBox( NULL, szBuffer, _T( "Liczba w oknie" ), MB_OK ); break; } break;
|
|
mikson Temat założony przez niniejszego użytkownika |
» 2014-01-08 19:27:42 Bibliotekę miałem zaimportowaną, ale ID nie nadałem :) Teraz jest już tylko błąd: 179 C:\Users\admin\Documents\C++\Zliczarka\main.cpp `_tstoi' undeclared (first use this function) |
|
alixir |
» 2014-01-08 19:38:05 Wygląda na brak biblioteki. U mnie na VC++ 2008 Express działa. |
|
alixir |
» 2014-01-08 19:41:25 A spróbuj zamiast _tstoi użyć _wtoi |
|
mikson Temat założony przez niniejszego użytkownika |
» 2014-01-08 19:42:54 U mnie na DEVcpp nie działa i jak tak w necie poszperałem to tam pisali że to powinno być _ttoi . Wstawiłem to na miejsce tego _tstoi i nie narzeka, ale znowu nie wypisuje liczby z textboxa. Przesyłam fragmet kodu. HWND editID = GetDlgItem( hwnd, ID_EDIT ); _TCHAR buff[ 20 ]; GetWindowText( editID, buff, 20 ); int liczba = _ttoi( buff );
_TCHAR szBuffer[ 100 ]; _stprintf( szBuffer, _T( "Liczba: %i pkt." ), liczba ); MessageBox( NULL, szBuffer, "Wniki skomplikowanych obliczeń", MB_ICONINFORMATION ); } |
|
« 1 » 2 3 |