OPENFILENAME结构不知道怎样用?
能够给代码,我的MSDN上的那个好象不能用

解决方案 »

  1.   

    OPENFILENAME ofn = {0};  // older version
    ofn.lStructSize = sizeof(OPENFILENAME);

    //É趨ÎļþµÄÃû³Æ´¢´æ¿Õ¼ä 
    TCHAR lpstrFilename[MAX_PATH] = {0};
    if ( ! strFile.IsEmpty () )
    {
    _tcscpy ( lpstrFilename, strFile );
    }
    //É趨¸¸´°¿Ú 
    ofn.hwndOwner = m_hWnd; 
    ///É趨´ò¿ªÎļþµÄÀàÐÍ 
    ofn.lpstrFilter = "È«²¿Îļþ\0*.*\0"; 
    ofn.nMaxFile = MAX_PATH; 
    ofn.lpstrFile=lpstrFilename;
    ofn.lpstrTitle = strTitle;

    if ( ! ::GetOpenFileName(&ofn) )
    {
    return false;
    }
      

  2.   

    GetOpenFileName函数的功能是创建一个“打开”对话框,让用户可以指定驱动器、目录以及一个或多个要打开的文件名。它的原型如下:
    BOOL GetOpenFileName(
      LPOPENFILENAME lpofn   // initialization data
    );其中参数lpofn是一个指向OPENFILENAME结构的指针,其中包含着初始化“打开”对话框时需要的信息,该函数返回时此结构体内包含了用户的选定信息。您可以参看下面的使用代码:OPENFILENAME ofn;       // common dialog box structure
    char szFile[260];       // buffer for file name
    HWND hwnd;              // owner window
    HANDLE hf;              // file handle// Initialize OPENFILENAME
    ZeroMemory(&ofn, sizeof(OPENFILENAME));
    ofn.lStructSize = sizeof(OPENFILENAME);
    ofn.hwndOwner = hwnd;
    ofn.lpstrFile = szFile;
    ofn.nMaxFile = sizeof(szFile);
    ofn.lpstrFilter = "All\0*.*\0Text\0*.TXT\0";
    ofn.nFilterIndex = 1;
    ofn.lpstrFileTitle = NULL;
    ofn.nMaxFileTitle = 0;
    ofn.lpstrInitialDir = NULL;
    ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;// Display the Open dialog box. if (GetOpenFileName(&ofn)==TRUE) 
        hf = CreateFile(ofn.lpstrFile, GENERIC_READ,
            0, (LPSECURITY_ATTRIBUTES) NULL,
            OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,
            (HANDLE) NULL);如果需要进一步的信息,可以参看:
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/CommCtls/winui/commdlg_3cbp.asp