[C++ WinAPI] problem z tekstem

Proszę o pomoc w prostym edytorze tekstowym. Nie wiem jaką akcję wykonywać po naciśnięciu Backspace [glowa] . Co się będę rozpisywał ja na razie zrobiłem tyle:

LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)

{

        static HDC hdc;

        PAINTSTRUCT ps;

        RECT rect;

        static int x,y;

        static HINSTANCE inst;

        static int sz,wz;

        static int a,b;

        static SIZE s;

        static LOGFONT lf;

        static HFONT hf;

        char z;

        switch (message)

        {

                case WM_CREATE:

                        inst=(HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE);

                        hdc=GetDC(hwnd);           

                        lf.lfHeight=17;

                        lstrcpy(lf.lfFaceName,"Times New Roman");

                        lf.lfCharSet=238;

                        hf=CreateFontIndirect(&lf);

                        ReleaseDC(hwnd,hdc);

                        CreateCaret(hwnd,NULL,1,17);

                        a=b=0;

                        break;

                case WM_SETFOCUS:

                        SetCaretPos(a,b);

                        ShowCaret(hwnd);

                        break;

                case WM_KILLFOCUS:

                        HideCaret(hwnd);

                        DestroyCaret();

                        break;

                case WM_CHAR:

                        switch(wParam)

                        {

                                case '\n':

                                case '\r':

                                        HideCaret(hwnd);

                                        b+=s.cy;

                                        a=0;

                                        SetCaretPos(a,b);

                                        ShowCaret(hwnd);

                                        break;

                                case '\b':

                                        //jak to obsłużyć??

                                        break;

                                default: {

                                        hdc=GetDC(hwnd);

                                        SelectObject(hdc,hf);

                                        z=(char)wParam;

                                        HideCaret(hwnd); 

                                        GetTextExtentPoint32(hdc,&z,1,&s);

                                        TextOut(hdc,a,b,&z,1);

                                        a=a+s.cx;

                                        SetCaretPos(a,b);

                                        ShowCaret(hwnd);

                                        ReleaseDC(hwnd,hdc);}

                        }

                        break;

                case WM_SIZE:

                        x=LOWORD(lParam);

                        y=HIWORD(lParam);

                        break;

                case WM_PAINT:

                        hdc = BeginPaint(hwnd,&ps);

                        GetClientRect(hwnd,&rect);


                        EndPaint(hwnd,&ps);

                        break;

                case WM_DESTROY:

                        PostQuitMessage(0);

                        break;

                default:

                        return DefWindowProc(hwnd,message,wParam,lParam);

        }

        return 0;

}

Proszę o pomoc z tym Backspace i o jakieś rady :wink:

A gdzie przechowujesz te znaki? Bo widzę, że malujesz z, ale to nie dość. No i jak już przechowujesz całą linijkę, to możesz całą za każdym razem odświeżasz.