一个基于dlg应用程序,为何覆盖PreCreateWindow(),设置了cs.style,cs.dwstyle都不起作用?

解决方案 »

  1.   

    原因很简单,因为CDialog不是从CFrameWnd继承,
    另外不明白为什么要采用覆盖PreCreateWindow,
    如果你要改变对话框风格和设置对话框大小,
    可以直接在OnInitDialog中操作:
    ------------------------------------------------
    修改对话框风格:
    API函数:
    ::SetWindowLong(m_hWnd, GWL_EXSTYLE, ::GetWindowLong(m_hWnd, GWL_EXSTYLE) |  WS_EX_LAYERED );
    MFC函数:
    ModifyStyle(...)
    设置大小可用
    MoveWindow()
    SetWindowPos();
    参数参考MSDN,还有不会继续找我:-)