为什么小弟我创建的对话框没有收到WM_INITDIALOG消息直接就是WM_DESTROY消息

为什么我创建的对话框没有收到WM_INITDIALOG消息直接就是WM_DESTROY消息
INT_PTR CALLBACK DlgProc(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
HWND hslider;
switch (msg){
case WM_INITDIALOG:
hslider = GetDlgItem(hdlg,IDC_SLIDER);
    SendMessage(hslider,TBM_SETRANGE, (WPARAM)1,(LPARAM)MAKELONG(15,255));
SendMessage(hslider,TBM_SETPOS, (WPARAM)1,50);
return TRUE;
case WM_CLOSE: 
DestroyWindow(hdlg); 
return TRUE;
};
return FALSE;
}

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
static int  cxClient, cyClient ;
HDC         hdc ;
PAINTSTRUCT ps ;
static HINSTANCE hInstance;

switch (message)
{
case WM_CREATE:
hInstance = ((LPCREATESTRUCT)lParam)->hInstance;
while(!DialogBox(hInstance, MAKEINTRESOURCE(IDD_FORMVIEW), hwnd, (DLGPROC)DlgProc));
return 0;
case WM_SIZE:
cxClient = LOWORD (lParam) ;
cyClient = HIWORD (lParam) ;
return 0 ;

case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;
EndPaint(hwnd, &ps);
return 0 ;
case WM_DESTROY:
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc (hwnd, message, wParam, lParam) ;
}


这个是代码,运行以后什么对话框都没有,我调试了一下,发现收到的第一个消息是WM_SETFONT,第二个就是WM_DESTROY了,这是怎么回事?

------解决方案--------------------
while(!DialogBox(hInstance, MAKEINTRESOURCE(IDD_FORMVIEW), hwnd, (DLGPROC)DlgProc)); 
----------------------------
那就是你的DialogBox创建失败了?自己Debug调试一下啊