Mam prostą aplikację testową, przycisk i texBox.
Przyciskiem tworzę obiekt p1.
W jaki sposób mogę wrzucić informację która teraz kierowana jest do cout ( z Open() ) w textBox lub w MessageBox ?
Wiem że do otwierania plików mam OPENFILENAME, ale chodzi mi o to jak z takiego przykładowego obiektu jak ten mój p1 sterować informacjami wrzucanymi do okienek MessageBox, texbox itp.
W przykładach na które się natykam nie doszukałem się takiego połączenia
To moja piaskownica działająca w CodeBlocks.
#include <Windows.h>
#include <fstream>
#include <iostream>
using namespace std;
class Plik
{
private:
fstream fileStream;
string SciezkaDoPliku;
streampos RozmiarPliku;
streampos WczytanychBajtow;
public:
Plik(const std::string _SciezkaDoPliku)
: SciezkaDoPliku{ _SciezkaDoPliku },
RozmiarPliku{0},
WczytanychBajtow{0}
{
this->SciezkaDoPliku = _SciezkaDoPliku;
fstream fileStream(SciezkaDoPliku.c_str());
}
~Plik() {
if (fileStream.is_open()) {
Close();
}
}
void Close() //Zamkniecie lacza z plikiem.
{
if (fileStream.is_open())
fileStream.clear();
fileStream.close();
}
int Open() {
fileStream.open(SciezkaDoPliku.c_str(), ios::in | ios::binary | ios::ate);// proba otwarcia pliku do odczytu
if (!fileStream.is_open()) {// jesli nie udalo sie otworzyc to ...
cout << "Nie udalo sie otworzyc pliku." << endl;
return 1;
}
return 0;
}
};
static HWND button;
static HWND textBoxOutput;
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
int CALLBACK WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR cmdLine,int nCmdShow)
{
HWND hMainWindow;
WNDCLASS wc = {};
wc.lpfnWndProc = WindowProc;
wc.lpszClassName = "Main window class";
wc.hInstance = hInstance;
RegisterClass(&wc);
hMainWindow = CreateWindow(wc.lpszClassName,"Append text main window",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,500,400,NULL,NULL,hInstance,NULL);
if(hMainWindow == NULL) return 1;
button = CreateWindowEx(WS_EX_CLIENTEDGE,"Button","Append",WS_CHILD | WS_VISIBLE | ES_CENTER, 10, 41,75,30,hMainWindow,NULL,NULL,NULL);
textBoxOutput = CreateWindowEx(WS_EX_CLIENTEDGE,"Edit",TEXT(""),WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_AUTOVSCROLL | ES_MULTILINE | ES_READONLY ,10,81,450,150,hMainWindow,NULL,NULL,NULL);
ShowWindow(hMainWindow,SW_SHOW);
MSG msg = { };
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
case WM_COMMAND:
if((HWND)lParam == button)
{
Plik p1("d:\\test1.txt") ;
// bufor na wiadomosci
TCHAR* buffer = new TCHAR[150];
SetWindowText(textBoxOutput,buffer);
delete [] buffer;
}
break;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}