用DialogBox产生的模态对话框,为什么点不了它?该怎么处理

用DialogBox产生的模态对话框,为什么点不了它?
#include <windows.h>
#include "resource.h"
#include "WinMain.h"

HINSTANCE _hInst;
HWND _hWnd;

char _szAppName[]="WinMain";
char _szTitle[]="Hello";

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{
if(!hPrevInstance)
if(!InitApplication(hInstance))
return false;
if(!InitInstance(hInstance,nShowCmd))
return false;

MSG msg;

while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}

return msg.wParam;
}

BOOL InitApplication(HINSTANCE hInstance)
{
WNDCLASS wc;
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wc.hCursor=LoadCursor(NULL,MAKEINTRESOURCE(IDC_ARROW));
wc.hIcon=LoadIcon(hInstance,MAKEINTRESOURCE(IDI_WINMAIN));
wc.hInstance=hInstance;
wc.lpfnWndProc=WndProc;
wc.lpszClassName=_szAppName;
wc.lpszMenuName=MAKEINTRESOURCE(IDR_WINMAIN);
wc.style=CS_HREDRAW | CS_VREDRAW;

return RegisterClass(&wc);
}

BOOL InitInstance(HINSTANCE hInstance,int nShowCmd)
{
_hInst=hInstance;
_hWnd=CreateWindow(_szAppName,_szTitle,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,NULL,CW_USEDEFAULT,NULL,NULL,NULL,hInstance,NULL);

if(!_hWnd)
return false;

ShowWindow(_hWnd,nShowCmd);
UpdateWindow(_hWnd);

return true;
}

LRESULT CALLBACK WndProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
int wmId,wmEvent;

switch(uMsg)
{
case WM_COMMAND:

wmId=LOWORD(wParam);
wmEvent=HIWORD(wParam);

switch(wmId)
{
case IDM_ABOUT:
DialogBox(_hInst,MAKEINTRESOURCE(IDD_ABOUT),hWnd,(DLGPROC)About);
break;
case IDM_EXIT:
DestroyWindow(hWnd);
break;
default:
return DefWindowProc(hWnd,uMsg,wParam,lParam);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
}
return DefWindowProc(hWnd,uMsg,wParam,lParam);
}

LRESULT CALLBACK About(HWND hDlg,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
switch(uMsg)
{
case WM_INITDIALOG:
return true;
break;
case WM_COMMAND:
if(LOWORD(wParam)==IDOK || LOWORD(wParam)==IDCANCEL)
{
EndDialog(hDlg,true);
return true;
}
break;
}
return DefWindowProc(hDlg,uMsg,wParam,lParam);
}
======================================================================
我把程序的代码发上来,编译的时候没错,好心人帮忙忙看看问题出在哪里?那
个about对话框生成的不对,用鼠标点不上它,不知道是哪里问题。小弟在线等。

------解决方案--------------------
return DefWindowProc(hDlg,uMsg,wParam,lParam); 
==================
改成return FALSE;
对话框处理程序与窗口处理程序不同,在系统内部有一个内部的对话框处理程序,如果你不处理的对话框消息你返回FALSE则由它来处理。