创建工程:FileRead,其中CFileReadView:CEditView
如果把一个TEST.TXT文件的内容读入一缓冲BUFFER后,如何
将这一内容显示在运行的窗口中

解决方案 »

  1.   

    void CTestView::OnRButtonDown(UINT nFlags, CPoint point) 
    {
    // TODO: Add your message handler code here and/or call default
    HANDLE hFile;
    CFileDialog dlg( TRUE, TEXT("TXT"), NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, TEXT("文本文件(*.txt)|*.txt|所有文件(*.*)|*.*||"), this); UpdateData();
    if ( dlg.DoModal() == IDOK )
    {
    CString m_sOpenFile = dlg.GetPathName();
    hFile = CreateFile( m_sOpenFile, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
    if ( hFile == INVALID_HANDLE_VALUE )
    {
    MessageBox( "Cannot open file!", NULL, MB_OK|MB_ICONSTOP );
    return;
    }
    DWORD dwFileLen = GetFileSize( hFile, NULL );
    DWORD dwRead;
    char* pBuffer = new char[dwFileLen + 1];
    if ( pBuffer == NULL )
    {
    MessageBox("Malloc failed!");
    return;
    } VERIFY( ReadFile( hFile, pBuffer, dwFileLen, &dwRead, NULL) );
    pBuffer[dwFileLen] = '\0';
    CString sContent = pBuffer;
    SetWindowText(sContent);
    delete pBuffer;
    CloseHandle(hFile);
    }
    }