Kontrolka Edit - WinApi

Witam!

Jestem w trakcie pisania małego programu i zatrzymałem się w pewnym momencie, ze względu na zaistniały problem. Otóż Chciałbym odczytać wartość wprowadzoną do kontrolki Edit , więc użyłem takiego kodu:

case ID_PRZYCISK2: // dla buttona Oblicz

           if((LOWORD(wPar)==ID_PRZYCISK2)&&(HIWORD(wPar)==0))

           {       

                   HWND h_TextBox=GetDlgItem(hwnd, ID_EDITO);

                   char* tNapis=new char[GetWindowTextLength(h_TextBox)+1];

                   GetWindowText(h_TextBox,tNapis,GetWindowTextLength(h_TextBox));


                   HWND h_TextBox1=GetDlgItem(hwnd, ID_EDITO1);

                   char* tNapis1=new char[GetWindowTextLength(h_TextBox1)+1];

                   GetWindowText(h_TextBox1,tNapis1,GetWindowTextLength(h_TextBox1));


                   MessageBox(hwnd,tNapis,"1 - kontrolka",MB_OK); //sprawdzenie co zostalo zapisane

                   MessageBox(hwnd,tNapis1,"2 - kontrolka",MB_OK);


                   delete[] tNapis; 

                   delete[] tNapis1;

           }

      break;

Rezultatem tego jest zapisanie do zmiennych tNapis i tNapis1 wartości wprowadzonych do kontrolek. Problem tkwi w tym, że nie zapisuje ostatniego wprowadzonego znaku. Do mojej kontroli można wpisać max 3 znaki po wpisaniu 3 wyświetla 2 pierwsze. Proszę o poprawnie kodu tak by zapisywał wszystkie znaki. Z góry dziękuję.