控制台窗口仅第二次打开一次

时间:2016-06-29 14:50:43

标签: c++ mfc

所以我在MFC,Visual C ++ 2005 for Windows CE中创建了我的应用程序,但是我遇到了一些奇怪的问题。

当我按下对话框中的按钮时,我必须在控制台中显示某些内容,我的意思是

std::cout << show_me_something;

碰巧,我可以清楚地看到我想要的一切,但当我按下&#39; X&#39;按钮退出或在工具栏中文件 - &gt;关闭我无法再次打开它,它看起来像我按下按钮但没有任何反应。

它是这样的: 1.按按钮给我看一些东西 你看到了你想要的东西 3.关闭它 我再次按下相同的按钮,因为我想再次看到它 5.仍然按下按钮(没有任何反应)

以下是发生它的对话框代码:

#include "stdafx.h"
#include "Dialog1.h"
#include "Dialog2.h"
#include "Diaglo3.h"
#include "tScannerDlg.h"
#include <fstream>
#include <CString>
#include <string>
#include <vector>
#include <cstdio>
#include <iostream>

// Dialog2 dialog

IMPLEMENT_DYNAMIC(Dialog2, CDialog)

Dialog2::Dialog2(CWnd* pParent /*=NULL*/)
    : CDialog(Dialog2::IDD, pParent)
{

}

Dialog2::~Dialog2()
{
}

void Dialog2::DoDataExchange(CDataExchange* pDX)
{
    CDialog::DoDataExchange(pDX);
    CWnd* pWnd = GetDlgItem(IDC_EDIT1);
    pWnd->SetWindowText(_T("test8.csv"));
}

BEGIN_MESSAGE_MAP(Dialog2, CDialog)
    ON_BN_CLICKED(IDOK, &Dialog2::OnBnClickedOk)
    ON_BN_CLICKED(IDC_BUTTON1, &Dialog2::OnBnClickedButton1)
    ON_BN_CLICKED(IDC_BUTTON2, &Dialog2::OnBnClickedButton2)
    ON_EN_CHANGE(IDC_EDIT1, &Dialog2::OnEnChangeEdit1)
    ON_BN_CLICKED(IDOK2, &Dialog2::OnBnClickedOk2)
END_MESSAGE_MAP()

// Dialog2 message handlers

void Dialog2::OnBnClickedOk()
{
    //wroc
    Dialog1 *dlg = new Dialog1();

    dlg->Create(IDD_DIALOG1, NULL);
    dlg->ShowWindow(SW_SHOW);
    DestroyWindow();
}

void Dialog2::OnBnClickedButton1()
{  

}

void Dialog2::OnEnChangeEdit1()
{
    //nazwa pliku
}

void Dialog2::OnBnClickedButton2()
{
    //sprawdz

    CWnd* pWnd = GetDlgItem(IDC_EDIT1);
    CString cstr;
    std::string s, linia;
    std::fstream fp;
    std::vector <std::string> vec;
    std::string delimiter = ";";
    std::string token;
    size_t pos = 0;
    pWnd->GetWindowTextW(cstr);

    fp.open(cstr, std::ios::in);
    if(fp.good() == true){
        printf("Cala zawartosc bazy danych:\n"             
               "----------------\n");

        while(!fp.eof()){  
            std::string linijka;
            getline(fp,linijka);
            std::cout<<linijka<<std::endl;
        }
        fp.close();
    }  

}
void Dialog2::OnBnClickedOk2()
{
    DestroyWindow();
}

编辑#1: 我忘了写它,所以我现在这样做:我认为它就像我按下关闭这个窗口(std :: cout)并且我正在做它但是Windows CE认为这个窗口仍然是打开的所以这就是为什么我无法再打开它的原因。你觉得我怎么写?最重要的是,如何解决这个问题?

0 个答案:

没有答案