我使用GetOpenFileName函数来创建通用的打开文件的对话框,初始化和是在窗体的
WS_CREATE中:代码如下:
                        ofn.lStructSize=sizeof(OPENFILENAME);
                        ofn.hwndOwner=hWnd;
                        ofn.hInstance=hIns;
                        ofn.lpstrFilter="Bmp Files(*.BMP)\0*.bmp\0All files(*.*
                        ofn.lpstrCustomFilter=NULL;
                        ofn.nMaxCustFilter=0;
                        ofn.nFilterIndex=0;
                        ofn.lpstrFile=NULL;
                        ofn.nMaxFile=255;
                        ofn.lpstrFileTitle=NULL;
                        ofn.nMaxFileTitle=255;
                        ofn.lpstrInitialDir="d:\\";
                        ofn.lpstrTitle=NULL;
                        ofn.Flags=0;
                        ofn.nFileOffset=0;
                        ofn.nFileExtension=0;
                        ofn.lpstrDefExt="bmp";
                        ofn.lCustData=0;
                        ofn.lpfnHook=NULL;
                        ofn.lpTemplateName=NULL;
然后我在我的一个菜单项消息命令中调用如下:
        case WM_COMMAND:
                switch(wParam){
                case IDM_LOADBMP:
                        ofn.Flags=OFN_HIDEREADONLY | OFN_CREATEPROMPT;                        ofn.lpstrTitle="打开";
                        if (!GetOpenFileName(&ofn))
                                MessageBox(hWnd,"can not open the file","file",
                        else
                        {
                                MessageBox(hWnd,"open is ok","open",0);
                                MessageBox(hWnd,ofn.lpstrFile,"open file",0);
                        }
我测试函数调用是成功的,但是在我的变量中却没有我需要返回的文件名,
ofn.lpstrFile仍然为NULL,请各位指教。
谢谢。