为什么小弟我创建一个子窗口时,创建动作会重复20次

为什么我创建一个子窗口时,创建动作会重复20次?
我在主窗口的回调函数的WM_CREATE下写了个CreateWindow函数,想产生个子窗口用作工具栏:

hWndToolBox = CreateWindow(szToolBox, NULL, WS_CHILD | WS_VISIBLE | WS_THICKFRAME,  
0, 0, 100, 480, hWnd, (HMENU) 1, hInst, NULL);

注册的窗口类:
wcex.lpfnWndProc = ToolBoxProc;
wcex.hbrBackground = (HBRUSH)(COLOR_APPWORKSPACE+1);
wcex.hIcon = NULL;
wcex.lpszClassName = szToolBox;
wcex.hIconSm = NULL;

  RegisterClassEx(&wcex);

可是在运行时,在子窗口的区域内却同时出现了20个窗口边框,在CreateWindow处加入断点单步debug,发现要重复执行20次才能跳出。有点不明白,想请教下各位朋友,为什么会出现这种情况?应该怎么样解决呢?

另外:为什么我在窗口类里已经定义了颜色,在子窗口里却不显示出来,还是使用主窗口的颜色呢?

------解决方案--------------------
你在回调函数里create,每次接收到wm_create的时候又再次的create,我猜是因为这个原因导致了不停的create并接受到消息,至于为什么是20次,我想可能刚好到那个时候create失败了,所以循环就结束了。
------解决方案--------------------
你没加switch(message)吧?
case WM_CREATE:

------解决方案--------------------
就是,你再执行一次可能会产生更多的窗口~
------解决方案--------------------
消息的重复接收
------解决方案--------------------
没有break吧,所有来的消息都跑到create里面 了。
------解决方案--------------------
C/C++ code

CreateWindow

Remarks
Before returning, CreateWindow sends a WM_CREATE message to the window procedure. For overlapped, pop-up, and child windows, CreateWindow sends WM_CREATE, WM_GETMINMAXINFO, and WM_NCCREATE messages to the window. The lParam parameter of the WM_CREATE message contains a pointer to a CREATESTRUCT structure. If the WS_VISIBLE style is specified, CreateWindow sends the window all the messages required to activate and show the window.

------解决方案--------------------
我觉得是窗口类的窗口函数问题
wcex.lpfnWndProc = ToolBoxProc; //这里你有可能指定错了函数
你看看处理WM_CREATE消息的地方是不是在ToolBoxProc,如果是这样会是个死循环
------解决方案--------------------
楼主说创建子窗口时不进入其回调函数,而且注册窗口类时定义的颜色也不生效
可以肯定是注册窗口类的问题了
不过上面的这段代码的确没有问题,建议楼主检查下你的子窗口类名定义,是不是和主窗口重复了