WM_NCPAINT到底肿么用?小弟我在里面画东西如何显示不出来?

WM_NCPAINT到底肿么用?我在里面画东西怎么显示不出来??????!!!!!!
在WM_PAINT里 TextOut(hdc,10,10,TEXT("abcd"),4);就显示在客户区了
在WM_NCPAINT里

C/C++ code

    case WM_NCPAINT:
        {
            HDC hdc;
            hdc = GetDCEx(hWnd, (HRGN)wParam, DCX_WINDOW|DCX_INTERSECTRGN);
            // Paint into this DC
            TextOut(hdc,10,10,TEXT("abcd"),4);
            ReleaseDC(hWnd, hdc);

        }
        break;

这就什么也显示不出来。我想难道是坐标问题? GetWindowRect完了,把窗口坐标加进去,还是不行

到底肿么样才行?

我用的是SDK,所以各位大神最好是用sdk的说法回帖;MFC也可以,说明白就行

------解决方案--------------------
"hdc = GetDCEx(hWnd, (HRGN)wParam, DCX_WINDOW|DCX_INTERSECTRGN);"
hdc=0 !
------解决方案--------------------
case WM_NCPAINT:
ret=DefWindowProc(hwnd,message,wParam,lParam); 
hdc=GetWindowDC(hwnd);
// Paint into this DC
if(hdc)
{
TextOut(hdc,400,10,TEXT("abcd"),4);
ReleaseDC(hwnd, hdc);
}
return ret;
//break;

------解决方案--------------------
探讨

case WM_NCPAINT:
ret=DefWindowProc(hwnd,message,wParam,lParam);
hdc=GetWindowDC(hwnd);
// Paint into this DC
if(hdc)
{
TextOut(hdc,400,10,TEXT("abcd"),4);
ReleaseDC(hwnd, hdc……

------解决方案--------------------
做非客户区自绘要自己处理所有消息不单单是WM_NCPAINT
还有WM_NCPAINT、WM_NCACTIVATE、WM_NCCALCSIZE、WM_NCHITTEST、WM_NCLBUTTONDOWN、WM_NCLBUTTONUP、WM_NCMOUSEMOVE
------解决方案--------------------
这样就可以了:
case WM_NCACTIVATE:
case WM_NCPAINT:
ret=DefWindowProc(hwnd,message,wParam,lParam); 
//hdc=GetWindowDC(hwnd);//without CS_CLASSDC!needs DCX_CACHE
hdc = GetDCEx(hwnd, (HRGN)1, DCX_WINDOW|DCX_INTERSECTRGN|DCX_CACHE);
// Paint into this DC
if(hdc)
{
TextOut(hdc,400,10,TEXT("abcd"),4);
ReleaseDC(hwnd, hdc);
}
return ret;

------解决方案--------------------
还是把标题栏去掉更省事,或者nccalsize的时候把客户区拉的跟dialog一样大,我反正经常这么干