根本不像CDialog那样会完全遮盖父窗口。
蓝色的是子窗口,两个按钮是父窗口的,为什么父窗口的控件会显示在子窗口上。子窗口:public CWnd
{}

解决方案 »

  1.   

    窗口无非三种:子窗口 弹出窗口 和 重叠窗口
    创建窗口的函数无非就是createex 他和windows API有一样的参数  他的第一个参数是窗口的类型(这里要注意,你可能创建的时候有一个WM_CHILD类型 (他表示你创建的窗口是一个字窗口)
    倒数第二个参数表示该窗口建立的父窗口还是物主窗口
    如果是副窗口 (前提是你前面的第一个参数设置的是字窗口)
    如果是物主窗口(前提是你创建的是一个重叠窗口或者谈出窗口)主要看下你的类型  哥们 分都给我算了
      

  2.   

    我是这样创建的,
    m_wnd = new CXXXWnd();
    m_wnd ->Create(_T("STATIC"), _T(""), WS_CHILD | WS_OVERLAPPED|WS_VISIBLE, rect, this, 1235);产生了父窗口控件遮盖子窗口,这怎么解决啊??
      

  3.   


    你把那2个子控件隐藏不行吗??
    在你的CXXXWnd是这样做的吧。
    CRect rc;
    GetClientRect(rc);
    dc.FillSolidRect(rc,RGB(128,0,0));我做没问题啊,就是鼠标移动到那2个按钮的时候,按钮会显示出来。
      

  4.   

    你还可以重载一个CMyButton类,和那2个按钮关联起来。
    并重载OnPaint,在OnPaint里面什么都不做。这样即使你鼠标移到按钮上,也不会重绘按钮了。。
      

  5.   


    我是想自己写个控件,然后可以完全遮盖父窗口的控件。。后来发现别人.ocx控件也是这样,做不到完全遮盖。OK,结贴。