首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

使用GetOpenFileName()和GetSaveFileName()的有关问题

2012-03-27 
使用GetOpenFileName()和GetSaveFileName()的问题使用完GetOpenFileName()和GetSaveFileName()之后,都有哪

使用GetOpenFileName()和GetSaveFileName()的问题
使用完GetOpenFileName()和GetSaveFileName()之后,都有哪些东西值会发生变化啊?

我是在类内部这样定义的一个函数:

BOOL   CMapEditor::OpenSaveDialog(   int   dwFlag   )
{
        //   设置OPENFILENAME结构
        OPENFILENAME   ofn   ;//
        ZeroMemory(&ofn,   sizeof(ofn));

        static   const   TCHAR   szFilter[]   =  
TEXT( "Map   Files   (.txt)\0*.txt;\0 ")TEXT( "All   Files   (*.*)\0*.*;\0 ");
        ofn.lStructSize                   =   sizeof(OPENFILENAME);
        ofn.hwndOwner                       =   m_pApp-> GetWindow();
        ofn.hInstance                       =   NULL;
        ofn.lpstrFilter                   =   szFilter;
        ofn.nFilterIndex                 =   1;
        ofn.lpstrCustomFilter       =   NULL;
        ofn.nMaxCustFilter             =   0;
        ofn.lpstrFile                       =   m_MapFileName;
        ofn.nMaxFile                         =   MAX_PATH;
        ofn.lpstrFileTitle             =   NULL;
        ofn.nMaxFileTitle               =   0;
        ofn.lpstrInitialDir           =   NULL;
        if(   dwFlag   ==   0   )//打开文件编辑
                ofn.lpstrTitle             =   TEXT( "选择一个场景文件... ");
        else//保存文件
                ofn.lpstrTitle             =   TEXT( "保存为指定的文件... ");
        ofn.Flags                               =   OFN_HIDEREADONLY;
        ofn.nFileOffset                   =   0;
        ofn.nFileExtension             =   0;
        ofn.lpstrDefExt                   =   TEXT( "txt ");
        ofn.lCustData                       =   0L;
        ofn.lpfnHook                         =   NULL;
        ofn.lpTemplateName             =   NULL;

        if(   dwFlag   ==   0   )//打开文件编辑
                return   GetOpenFileName(   &ofn   );


        else   //保存文件
                return   GetSaveFileName(   &ofn   );
}

昨天我发现用过它后,竟然改变了我四个类内的private变量的值!而且不论把m_MapFileName的定义移动到哪个位置,它都会改变包括m_MapFileName在内的和在它后面定义的三个变量的值!

很不明白这是为什么?

今天又用时,发现它又改变了我其它的量,具体是哪一个不清楚,但是却让我的LoadImage()函数调用不成功

到底用了我定义的这个函数后都会产生哪些值的变化?

肯请高手指点




[解决办法]
貌似楼主这个问题前两天问过了吧

单步调吧,估计还是你代码的问题
[解决办法]
MSDN
[解决办法]
在之前调用GetCurrentDirectory,之后调用SetCurrentDirectory

热点排行