Program do wyswietlania komunikatow

Witam! Chciałbym w C++ stworzyc program w ktorym wpisuje sie tekst a pozniej po nacisnieciu przycisku wyswietla komunikat z tekstem ktory sie wczescniej wpisalo, jezeli nie wiecie o co chodzi, tutaj sa obrazki:

drtsetsct2.th.png

drugi:

http://img340.imageshack.us/my.php?image=tydrtgb4.png

Nie licze tutaj na kompletne kody zrodlowe, tylko na jakies wskazowki :slight_smile:

Z góry dziekuje!

Taranos przeczytaj punkt 2.14 regulaminu i popraw temat - inaczej otrzymasz ostrzeżenie.

A w jakim języku programowania?

Ogólnie musisz wczytać do zmiennej wpisany napis i go wyświetlić w okienku.

W C++ (z WinAPI) będzie jakoś tak, tylko nie wiem jak zrobić pole do wpisania tekstu:

#include 

#include 


using std::string;


LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);


HWND hPrzycisk;


int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nMode)

{

   HWND hOkno;

   MSG message;

   WNDCLASS okno;


   okno.hInstance = hInstance;

   okno.lpszClassName = "klasa1";

   okno.lpfnWndProc = WndProc;

   okno.lpszMenuName = MAKEINTRESOURCE(200);

   okno.style = 0;

   okno.hIcon = 0;

   okno.hCursor = LoadCursor (NULL,IDC_ARROW);

   okno.hbrBackground = (HBRUSH) GetStockObject (GRAY_BRUSH);

   okno.cbClsExtra = 0;

   okno.cbWndExtra = 0;


   if (!RegisterClass (& okno)) return 0;

   hOkno = CreateWindow (

   "klasa1", //nazwa klasy okna

   "NoName", //tytuł okna

   WS_OVERLAPPEDWINDOW, //styl - WS_OVERLAPPEDWINDOW to standardowe okienko

   100, 300, //współrzędne i..

   220, 180, //..wymiary okna

   NULL, //brak okna nadrzędnego, właścicielem jest pulpit

   NULL, //brak menu

   hInstance, //uchwyt instancji

   NULL //brak dodatkowych danych

   );

//tu trzeba dać pole tekstowe przypisujące wartość zmiennej 'tekst'

   hPrzycisk = CreateWindowEx(0,"BUTTON","wyślij",WS_CHILD|WS_VISIBLE|BS_GROUPBOX,10,10,190,40,hOkno,(HMENU)150,hInstance,NULL);


   ShowWindow (hOkno, SW_SHOW);


while (GetMessage (&message, NULL, 0, 0))

 {

  TranslateMessage (&message);


  DispatchMessage (&message);

 }

}



LRESULT CALLBACK WndProc(HWND hOkno, UINT msg, WPARAM wParam, LPARAM lParam)

  {

   switch (msg) 

   {

    case WM_CLOSE:

    if (MessageBox(hOkno,"Czy chcesz zamknąć?","info",MB_YESNO) == IDYES)

    DestroyWindow(hOkno); 

    break;

    case WM_DESTROY:

    PostQuitMessage(0);

    return 0;

    break;

    case WM_COMMAND:

    if(LOWORD(wParam)==150) MessageBox(hOkno,tekst,"info",MB_OK);

    break;

   default:

   return DefWindowProc(hOkno,msg,wParam,lParam); 

   }

  }

najlepiej niech to jeszcze ktoś sprawdzi :slight_smile:

Ja uzywam programu Dev-c++ i tam wystarczy na okno programu nalozyc komponenty ktore chce sie uzuc w programie, i wystarczy tam wybrac pole do pisania, a po podwojnym kliknieciu na ten komponent pojawaia sie pole z kodem zrodlowym i wlasnie niewiem w ktorym miejscu umiescic powyzszy kod, a dotychczas udalo mi sie stworzyc taki kod i wlasnie niewiem co dalej robic:

#include "BezNazwy1Dlg.h"





BEGIN_EVENT_TABLE(BezNazwy1Dlg,wxDialog)


	EVT_CLOSE(BezNazwy1Dlg::OnClose)

	EVT_BUTTON(ID_WXBUTTON1,BezNazwy1Dlg::WxButton1Click)

END_EVENT_TABLE()



BezNazwy1Dlg::BezNazwy1Dlg(wxWindow *parent, wxWindowID id, const wxString &title, const wxPoint &position, const wxSize& size, long style)

: wxDialog(parent, id, title, position, size, style)

{

	CreateGUIControls();

}


BezNazwy1Dlg::~BezNazwy1Dlg()

{

}


void BezNazwy1Dlg::CreateGUIControls()

{


	SetTitle(wxT("BezNazwy1"));

	SetIcon(wxNullIcon);

	SetSize(8,8,295,144);

	Center();



	WxEdit1 = new wxTextCtrl(this, ID_WXEDIT1, wxT("WxEdit1"), wxPoint(86,66), wxSize(121,19), 0, wxDefaultValidator, wxT("WxEdit1"));

	WxEdit1->SetFont(wxFont(8, wxSWISS, wxNORMAL,wxNORMAL, false, wxT("Tahoma")));


	WxButton1 = new wxButton(this, ID_WXBUTTON1, wxT("WxButton1"), wxPoint(106,28), wxSize(75,25), 0, wxDefaultValidator, wxT("WxButton1"));

	WxButton1->SetFont(wxFont(8, wxSWISS, wxNORMAL,wxNORMAL, false, wxT("Tahoma")));


}


void BezNazwy1Dlg::OnClose(wxCloseEvent& /*event*/)

{

	Destroy();

}


/*

 * WxButton1Click

 */

void BezNazwy1Dlg::WxButton1Click(wxCommandEvent& event)

{

	MessageBox(NULL, "Tekst1", "Tytul1", MB_OK | MB_ICONINFORMATION);



}

w dev-c++? też używam, ale tego nie zauważyłem. Gdzie to jest?

Sądząc po przedrostkach funkcji(wx) to jest wxWidgets. Nie pytaj się nas jak to zrobić, tylko łap za pierwszego lepszego tutoriala i się ucz!

rozwalkompa, to jest tylko jezeli programujesz w WinApi, przy tworzeniu zwyklych aplikacji konsolowcyh nie ma tej funkcji.

A z tutoriali tez prubowalem sie czegos nauczyc ale nic z tego nierozumialem.

Przy aplikacjach konsolowych nie możesz w ogóle tworzyć okien :wink:

Jeśli nie znasz WinApi to radze się najpierw tego poduczyć. Dość dobry kurs WinAPI

Fiołek no ja to wiem, dlatego aplikacja ktora chce stworzyc jest w WinApi, ale wlasnie nierozumiem jednej rzeczy i prosze Was o pomoc :slight_smile:

Aż taki tępy nie jestem. Ale gdzie to jest w menu, bo jakoś nie widzę :smiley:

No po prawej stronie tam