你有没有用过mfc的CFileDialog这个控件,我不太明白
m_ofn is a structure of type OPENFILENAMEm_ofn.Flags  = m_ofn.Flags | OFN_ENABLETEMPLATE ;为什么要这么写?m_ofn.Flags  = OFN_ENABLETEMPLATE ; 这样写为什么不对?

解决方案 »

  1.   

    如果m_ofn.Flags==0;
    m_ofn.Flags  = OFN_ENABLETEMPLATE 这样是可以的。
    但m_ofn.Flags!=0;
    m_ofn.Flags  = OFN_ENABLETEMPLATE 这样是不可以的。
    ( | )他们之间是相与的结果。他们的风格值是不同的,你可以自己试试。
      

  2.   

    这是为m_ofn.Flags添加一个OFN_ENABLETEMPLATE  属性
    如原来m_ofn.Flags = OFN_A  
    m_ofn.Flags  = m_ofn.Flags | OFN_ENABLETEMPLATE ;后为m_ofn.Flags = OFN_A|OFN_ENABLETEMPLATE ;m_ofn.Flags  = OFN_ENABLETEMPLATE ; 这样当然不对了
      

  3.   

    m_ofn.Flags  = m_ofn.Flags | OFN_ENABLETEMPLATE 
    可以保存原来的值呀,看什么用途了
      

  4.   

    CSpecialFileDialog::CSpecialFileDialog(BOOL bOpenFileDialog,
    LPCTSTR lpszDefExt, LPCTSTR lpszFileName,DWORD dwFlags,
    LPCTSTR lpszFilter,CWnd* pParentWnd)
    :CFileDialog(bOpenFileDialog,lpszDefExt,lpszFileName,
    dwFlags,lpszFilter,pParentWnd)
    {
    //{{AFX_DATA_INIT(CSpecialFileDialog)
    // NOTE: the ClassWizard will add member initialization here
    //}}AFX_DATA_INIT
             m_ofn.Flags =m_ofn.Flags | OFN_ENABLETEMPLATE;
    m_ofn.lpTemplateName = MAKEINTRESOURCE(IDD_FILESPECIAL);
    m_ofn.lpstrTitle = "Delete File OK";
    m_bDeleteAll = FALSE;
    }这是原函数,在这里m_ofn.Flags 任何值都没有,为什么还要用它跟别的变量或呢?