建立一个新窗口作为原窗口的子窗口 在叠加的时候是否可以做成半透明的样式呢 请大家帮忙

解决方案 »

  1.   

    不知道这种算不算:
    先copy父窗口的dc,然后绘制自己时,绘制一个半透明png当做背景。
    看起来是半透明的。
    如果你说用SetLayeredWindowAttribute,这个是针对popup样式的。
      

  2.   

    应该可以,当二个窗口有重叠时,将子窗口通过SetLayeredWindowAttributes函数设置成半透明即可。
      

  3.   

    可以这样使用么?pWnd->ShowWindow();
    SetLayeredWindowAttributes(pWnd.m_hWnd,....);
      

  4.   

    可以,CWnd的m_hWnd就是HWND类型,表示窗口句柄。
    不过窗口要具有WS_EX_LAYERED属性。可以通过如下语句来设置。
    // 设置分层属性
    SetWindowLong(hwnd, GWL_EXSTYLE, GetWindowLong(hDlg, GWL_EXSTYLE) | WS_EX_LAYERED);