LRESULT CALLBACK WIN::MainProc(HWND hwnd,UINT mes,
WPARAM wp,LPARAM lp)
{
LPWIN lpWin;
lpWin = (LPWIN)GetWindowLong(hwnd,GWL_USERDATA); //mainソースのwinと同化

if(mes)
{
lpWin->RelayProc(hwnd,mes,wp,lp);
}

return DefWindowProc(hwnd,mes,wp,lp);
}
LRESULT WIN::RelayProc(HWND hwnd,UINT mes,WPARAM wp,LPARAM lp)
{
switch(mes){
case WM_CREATE:
break;

case WM_DESTROY:
DestroyProc();
break;
case WM_PAINT:
PaintProc(hwnd);
default:
return DefWindowProc(hwnd,mes,wp,lp);
}
return 0;
}


void WIN::DestroyProc()
{
PostQuitMessage(0);

}

void WIN::PaintProc(HWND hwnd)
{
PAINTSTRUCT ps;
HDC hdc;

char *str = "test";

BeginPaint(hwnd,&ps);
hdc = BeginPaint(hwnd, &ps);
TextOut(hdc, 10, 10, (LPCSTR)str, strlen(str));
EndPaint(hwnd,&ps);

}
いきなり躓いているんですが、どこが悪いんでしょうか?
下のウィンドウの文字とかをそのままウィンドウ内に保存してしまっていて
ちゃんとウィンドウ内が真っ白になりません。