我建了一个对话框程序A,上面除了默认的“确定”和“取消”按钮外,我还添加了其他几个普通按钮。并给第一个按钮添加了生成另外一个对话框的代码。编译运行后,点击这个按钮打开子对话框!然后我在另外一个程序B中,枚举程序A中的子窗口,并把子窗口的WindowText输出。但是我发现只能枚举出程序A主对话框的数据。查看 MSDN 中关于 EnumChildWindows 的解释我发现“If a child window has created child windows of its own, EnumChildWindows enumerates those windows as well. ”这应该是说如果子窗口拥有自己创建的窗口,EnumChildWindows 也会把他们枚举出来!我想 MSDN 应该不会有问题,可能还是我的方法有问题,请教高手指点呀!

解决方案 »

  1.   

    试了!把生成的新窗口属性改成Child就可以枚举出来了,多谢!:)
      

  2.   


    可以, 用SetWindowLong就可以了。DWORD dwStyle = 0;
    dwStyle &= WS_CLIPCHILDREN;
    dwStyle |= WS_OVERLAPPED|WS_VISIBLE|WS_CLIPSIBLINGS;
    ::SetWindowLong(hWnd, GWL_STYLE, dwStyle);
      

  3.   

    http://blog.csdn.net/jacky_qiu/archive/2010/11/04/5988309.aspx