我在WIN32中
在父窗口中的CREATE事件中定义一子窗口,代码如下:
hwnddial = CreateWindow (dial, NULL, WS_CHILD | WS_VISIBLE | SS_CENTER, 0,0,0,0,

hwnd, (HMENU) ID_DIAL, (HINSTANCE) GetWindowLong (hwnd,
GWL_HINSTANCE),NULL) ;
hwnd 为父窗口.
在父窗口的一个BUTTON中调用:
MoveWindow(hwnddial,0,0,150,200,TRUE);
覆盖整个父窗口,
在子窗口中定义一个按钮,
调用:MoveWindow(hwnddial,0,0,150,200,TRUE);
隐藏子窗口,
但此时我在父窗口中WM_KEYDOWN消息,就获取不到了,(在未调用第一个MoveWindow前是可以的)
用SetFocus () ;将焦点设置为父窗口也不行.
在子窗口中调用EnableWindow,该函数不能隐藏子窗口.
调用DestroyWindow则连父窗口一起删除.
请问我应如何获得父窗口WM_KEYDOWN消息,用什么语句隐藏或删除子窗口都行.

解决方案 »

  1.   

    隐藏子窗口??
    ShowWindow
    参数选SW_HIDE就可以了啊
    去看一下msdn,看是怎么用的
      

  2.   

    ShowWindow(hwnddial,SW_HIDE)显示ShowWindow(hwnddial,SW_SHOW)
      

  3.   

    谢谢回复!!
    这样可以隐藏子窗口,但是,在返回父窗口之后,父窗口中的回调函数中:
    case WM_KEYDOWN:
           number[num] = (char)wParam;
           return 0 ;
    case WM_PAINT:
           if(strlen(number))
                 TextOut(hdc,15,70,number,strlen(number));
           return 0 ;
    还是无法正常输出,假设,按健为1,2,3等数字.
      

  4.   

    解决了!!
    num问题,谢谢了 !!