|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Oct 2006
Messaggi: 31
|
Grafica in c++ crearla e posizionarla
Salve a tutti!
ho installato nel mio computer visual c++ 2005 e per creare i pulsanti non sarebbe neanche tanto difficile in se ma non capisco come attribuire delle funzioni hai pulsanti (onclick) e come posizionarli... cercando un pò nel forum ho trovato wx glade ma non ho capito a che serva essenzialmente... e i pulsanti (dato che non lo so usare) non li mette come desidero io)! sareste così gentili da aiutarmi nella mia impresa di riuscire a creare una interfaccia grafica semidecente? grazie mille a tutti!
__________________
Nocturnal poetry,
Dressed in the whitest silver, you'd smile at me Every night I wait for my sweet... |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
In Visual C++ per assegnare un metodo ad un evento devi clickare su un componente della form con il pulsante destro e poi clicka su Aggiungi gestore eventi o qualcosa del genere...
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Oct 2006
Messaggi: 31
|
ok grazie della risposta!
E come faccio a mettere in correlazione per esempio un pulsante con una text box?! tipo quando clicco sul pulsante carica una funzione al cui interno c'è una (o più) istruzionne "cout" che deve essere visualizzata nella text box... come fare? immagino che il procedimento per collegare due "oggetti" sia univoco per tutti gli oggetti giusto? grazie mille della risposta!
__________________
Nocturnal poetry,
Dressed in the whitest silver, you'd smile at me Every night I wait for my sweet... |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Dec 2005
Città: Provincia di Vicenza
Messaggi: 174
|
Ciao,
hai due possibilita`: 1 - Nell'evento di click del pulsante fai CWnd *pWnd = GetDlgItem(ID_DELLA_RISORSA); if(pWnd != NULL) { pWnd->SetWindowText("prova"); } 2 - Dichiari una variabile collegata alla editbox premendo con il pulsante destro sulla edit e premi su "Add Variable" e appare una dialog con delle opzioni, su "Category" selezioni la categoria della variabile (selezioni "control"), poi nel campo "Variable Name" dichiari il nome della variabile (per esempio m_ctrlEditBox), alla fine metti nell'evento click del pulsante: m_ctrlEditBox.SetWindowText("prova"); ciaoooooo |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Oct 2006
Messaggi: 31
|
c'è un problema.... non c'è aggiungi variabile! e adesso che fò?
grazie per la risposta!
__________________
Nocturnal poetry,
Dressed in the whitest silver, you'd smile at me Every night I wait for my sweet... |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
|
a me non fa cliccare su events...
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Oct 2006
Messaggi: 352
|
Io vi consiglio Borland C++ Builder 6
Io lo sto usando per il C++ Visuale e mi trovo abbastanza bene...creare le interfacce è un gioketto da ragazzi...giusto quello, anke xkè di c++ non so ancora praticamente niente =_= |
|
|
|
|
|
#8 |
|
Member
Iscritto dal: Oct 2006
Messaggi: 31
|
ok borland c++ 6 eccc...ecc.... non mi parte! lol cmq non cambiamo discorso per favore vorrei davvero imparare a creare iterfaccie i modo tale che i bottoni le textbox ecc interagiscano tra loro!
grazie mille per l'aiuto!
__________________
Nocturnal poetry,
Dressed in the whitest silver, you'd smile at me Every night I wait for my sweet... |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Oct 2006
Messaggi: 352
|
beh..è una delle poke cose ke sò fare cn il builder della borland..se usassi quello t saprei dare 1 mano anke xkè ho usato sl quello nella mia poca esperienza...
|
|
|
|
|
|
#10 |
|
Member
Iscritto dal: Oct 2006
Messaggi: 31
|
ok visto che sono disposto a tutto.... mi passi il programma? o il link diretto al file da scaricare per cortesia? chiaramente se mi aggiungi anche i modo per creare la grafica te ne sarei grato!
ciao e ancora grazie!
__________________
Nocturnal poetry,
Dressed in the whitest silver, you'd smile at me Every night I wait for my sweet... |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
A questo punto scarica il nuovo Turbo C++: http://www.borland.com/downloads/download_turbo.html
In ogni caso il modo per aggiungere la variabile dipende dalla versione che hai, per il 2005 non ti posso aiutare...quindi non so cosa dirti... |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Io vi consiglierei di provare le wxWidgets o le Qt. Le MFC mi sembrano inutilmente complicate, non capisco per quale motivo un programmatore non debba scrivere il codice ma affidarsi agli strumenti automatici che in realtà complicano la vita piuttosto che semplificarla.
Oltretutto per il layout le MFC non hanno i box contrariamente a wx, Qt o Java e l'editor non ha certo la semplicità di quello per C#. |
|
|
|
|
|
#13 | |
|
Member
Iscritto dal: Dec 2005
Città: Provincia di Vicenza
Messaggi: 174
|
Quote:
|
|
|
|
|
|
|
#14 |
|
Member
Iscritto dal: Oct 2006
Messaggi: 31
|
si esatto la express edition!
@tonino come dice il mio primo post l'ho provato ma non capisco a cosa ti riferisci quando dici che n programmatore non debba scrivere il codice.... dove trovo i codici per fare la grafica che effettivaente io preferirei scriverli aanche per capirli meglio! proverò anche borland cmq! edit UP!!
__________________
Nocturnal poetry,
Dressed in the whitest silver, you'd smile at me Every night I wait for my sweet... Ultima modifica di Sethrian : 11-10-2006 alle 02:06. |
|
|
|
|
|
#15 |
|
Member
Iscritto dal: Dec 2005
Città: Provincia di Vicenza
Messaggi: 174
|
boh... sinceramente non saprei il perche` non hai "Add Variable", in ogni caso puoi fare tranquillamente tutto a mano, visto che il wizard ti aggiunge in automatico le seguenti righe di codice.
nel file .h dichiari una variabile del tipo che vuoi, in questo caso CEdit: CEdit m_ctrlEditBox; poi nel .cpp nella funzione "DoDataExchange" della tua dialog aggiungi: DDX_Control(pDX, IDC_RISORSA_EDITBOX, m_ctrlEditBox); Ora hai la tua variabile (in questo caso m_ctrlEditBox) che implementa tutti i metodi della classe "CEdit". ciaoooo |
|
|
|
|
|
#16 |
|
Member
Iscritto dal: Oct 2006
Messaggi: 31
|
ecc qui il codice di un programmino fittizio che avevo fatto per sperimentare le classi appena le ho studiate!
Codice:
// sistemi1.cpp : Defines the entry point for the console application.
#include "stdafx.h"
#include "form1.h"
#include <iostream>
using namespace std;
class sistema {
public:
int coefficientex;
int coefficientey;
int coefficientetn;
int coefficientez;
int coefficientew;
int coefficientetn2;
};
void riduzione();
int x, y, tn, z, w, tn2;
int main()
{
int scelta;
cout <<"la prima equazione" <<"\n" ;
cout <<"inserire il coefficiente della x" <<"\n";
cin >> x;
cout <<"inserire il coefficiente della y" <<"\n";
cin >> y;
cout <<"inserire il termine noto" <<"\n";
cin >> tn;
cout <<"inserire la seconda equazione " <<"\n";
cout <<"inserire il coefficiente di z" <<"\n";
cin >> z;
cout <<"inserire il coefficiente di w" <<"\n";
cin >> w;
cout <<"inserire il termine noto" <<"\n";
cin >> tn2;
cout <<"inserire 1 se si vuole che il programma usi il sistema di riduzione, 2 per il sistema di sostituzione";
cin >> scelta;
if(scelta = 1){riduzione(); }
else if(scelta |= 1)
{
cout <<"inserire o 1 o 2";}
return 0;
}
void riduzione()
{
//crea l'oggetto prima del mcm
sistema aftermcm;
// coefficientei della prima equazione
aftermcm.coefficientex = x * z;
aftermcm.coefficientey = y + z;
aftermcm.coefficientetn = tn * z;
// coefficieti della seconda equazione
aftermcm.coefficientez = z * x;
aftermcm.coefficientew = w * x;
aftermcm.coefficientetn2 = tn2 * x;
cout <<"equazioni dopo il mcm";
cout <<"\n";
cout << aftermcm.coefficientex << "x" << "+" << aftermcm.coefficientey << "y" << "+" << aftermcm.coefficientetn << "=0";
cout <<"\n";
cout <<aftermcm.coefficientez <<"z" <<"+" <<aftermcm.coefficientew <<"w" <<"+" <<aftermcm.coefficientetn2 <<"=0";
cout <<"\n";
//crea l'oggetto dopo il mcm
sistema riduzione;
riduzione.coefficientex = aftermcm.coefficientex - aftermcm.coefficientez;
riduzione.coefficientey = aftermcm.coefficientey - aftermcm.coefficientew;
riduzione.coefficientetn = aftermcm.coefficientetn - aftermcm.coefficientetn2;
//visualizza il risultato della riduzione
cout << "equazione dopo la riduzione";
cout <<"\n";
cout << riduzione.coefficientex <<"x" << "+" << riduzione.coefficientey <<"y" <<"=" <<riduzione.coefficientetn ;
cout <<"\n" <<"la y" <<"\n" ;
y = -riduzione.coefficientetn / riduzione.coefficientey;
cout << y;
cout <<" la x" ;
x = (riduzione.coefficientey * y) + riduzione.coefficientetn;
cout << x;
}
Codice:
#pragma once
namespace sistemi1 {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
/// <summary>
/// Summary for Form1
///
/// WARNING: If you change the name of this class, you will need to change the
/// 'Resource File Name' property for the managed resource compiler tool
/// associated with all .resx files this class depends on. Otherwise,
/// the designers will not be able to interact properly with localized
/// resources associated with this form.
/// </summary>
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
//
//TODO: Add the constructor code here
//
}
protected:
/// <summary>
/// Clean up any resources being used.
/// </summary>
~Form1()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::Button^ button1;
protected:
private: System::Windows::Forms::TextBox^ textBox1;
private: System::Windows::Forms::TextBox^ textBox2;
private: System::Windows::Forms::TextBox^ textBox3;
private: System::Windows::Forms::TextBox^ textBox4;
private: System::Windows::Forms::MenuStrip^ menuStrip1;
private: System::Windows::Forms::ToolStripMenuItem^ fileToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ saveToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ stampaToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ helpToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ toolStripMenuItem1;
private: System::Windows::Forms::TextBox^ textBox5;
private: System::Windows::Forms::TextBox^ textBox6;
private: System::Windows::Forms::TextBox^ textBox7;
private:
/// <summary>
/// Required designer variable.
/// </summary>
System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
void InitializeComponent(void)
{
this->button1 = (gcnew System::Windows::Forms::Button());
this->textBox1 = (gcnew System::Windows::Forms::TextBox());
this->textBox2 = (gcnew System::Windows::Forms::TextBox());
this->textBox3 = (gcnew System::Windows::Forms::TextBox());
this->textBox4 = (gcnew System::Windows::Forms::TextBox());
this->menuStrip1 = (gcnew System::Windows::Forms::MenuStrip());
this->fileToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->saveToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->stampaToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->helpToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->toolStripMenuItem1 = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->textBox5 = (gcnew System::Windows::Forms::TextBox());
this->textBox6 = (gcnew System::Windows::Forms::TextBox());
this->textBox7 = (gcnew System::Windows::Forms::TextBox());
this->menuStrip1->SuspendLayout();
this->SuspendLayout();
//
// button1
//
this->button1->Location = System::Drawing::Point(194, 42);
this->button1->Name = L"button1";
this->button1->Size = System::Drawing::Size(86, 27);
this->button1->TabIndex = 0;
this->button1->Text = L"Riduzione";
this->button1->UseVisualStyleBackColor = true;
this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
//
// textBox1
//
this->textBox1->Location = System::Drawing::Point(15, 42);
this->textBox1->Name = L"textBox1";
this->textBox1->Size = System::Drawing::Size(45, 20);
this->textBox1->TabIndex = 1;
this->textBox1->TextChanged += gcnew System::EventHandler(this, &Form1::textBox1_TextChanged);
//
// textBox2
//
this->textBox2->Location = System::Drawing::Point(66, 42);
this->textBox2->Name = L"textBox2";
this->textBox2->Size = System::Drawing::Size(45, 20);
this->textBox2->TabIndex = 2;
//
// textBox3
//
this->textBox3->Location = System::Drawing::Point(120, 42);
this->textBox3->Name = L"textBox3";
this->textBox3->Size = System::Drawing::Size(45, 20);
this->textBox3->TabIndex = 3;
//
// textBox4
//
this->textBox4->Location = System::Drawing::Point(15, 116);
this->textBox4->Multiline = true;
this->textBox4->Name = L"textBox4";
this->textBox4->Size = System::Drawing::Size(259, 145);
this->textBox4->TabIndex = 4;
//
// menuStrip1
//
this->menuStrip1->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(3) {this->fileToolStripMenuItem,
this->helpToolStripMenuItem, this->toolStripMenuItem1});
this->menuStrip1->Location = System::Drawing::Point(0, 0);
this->menuStrip1->Name = L"menuStrip1";
this->menuStrip1->Size = System::Drawing::Size(286, 24);
this->menuStrip1->TabIndex = 5;
this->menuStrip1->Text = L"menuStrip1";
//
// fileToolStripMenuItem
//
this->fileToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(2) {this->saveToolStripMenuItem,
this->stampaToolStripMenuItem});
this->fileToolStripMenuItem->Name = L"fileToolStripMenuItem";
this->fileToolStripMenuItem->Size = System::Drawing::Size(35, 20);
this->fileToolStripMenuItem->Text = L"File";
//
// saveToolStripMenuItem
//
this->saveToolStripMenuItem->Name = L"saveToolStripMenuItem";
this->saveToolStripMenuItem->Size = System::Drawing::Size(121, 22);
this->saveToolStripMenuItem->Text = L"save";
//
// stampaToolStripMenuItem
//
this->stampaToolStripMenuItem->Name = L"stampaToolStripMenuItem";
this->stampaToolStripMenuItem->Size = System::Drawing::Size(121, 22);
this->stampaToolStripMenuItem->Text = L"Stampa";
//
// helpToolStripMenuItem
//
this->helpToolStripMenuItem->Name = L"helpToolStripMenuItem";
this->helpToolStripMenuItem->Size = System::Drawing::Size(39, 20);
this->helpToolStripMenuItem->Text = L"help";
//
// toolStripMenuItem1
//
this->toolStripMenuItem1->Name = L"toolStripMenuItem1";
this->toolStripMenuItem1->Size = System::Drawing::Size(24, 20);
this->toolStripMenuItem1->Text = L"\?";
//
// textBox5
//
this->textBox5->Location = System::Drawing::Point(15, 75);
this->textBox5->Name = L"textBox5";
this->textBox5->Size = System::Drawing::Size(45, 20);
this->textBox5->TabIndex = 6;
//
// textBox6
//
this->textBox6->Location = System::Drawing::Point(66, 75);
this->textBox6->Name = L"textBox6";
this->textBox6->Size = System::Drawing::Size(45, 20);
this->textBox6->TabIndex = 7;
//
// textBox7
//
this->textBox7->Location = System::Drawing::Point(120, 75);
this->textBox7->Name = L"textBox7";
this->textBox7->Size = System::Drawing::Size(45, 20);
this->textBox7->TabIndex = 8;
//
// Form1
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(286, 273);
this->Controls->Add(this->textBox1);
this->Controls->Add(this->textBox7);
this->Controls->Add(this->textBox6);
this->Controls->Add(this->textBox5);
this->Controls->Add(this->textBox4);
this->Controls->Add(this->textBox3);
this->Controls->Add(this->textBox2);
this->Controls->Add(this->button1);
this->Controls->Add(this->menuStrip1);
this->MainMenuStrip = this->menuStrip1;
this->Name = L"Form1";
this->Text = L"Form1";
this->menuStrip1->ResumeLayout(false);
this->menuStrip1->PerformLayout();
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
private: System::Void textBox1_TextChanged(System::Object^ sender, System::EventArgs^ e) {
}
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
}
};
}
e questo è ciò che viene fuori! [img=http://img207.imageshack.us/img207/300/form1rr5.th.jpg]
__________________
Nocturnal poetry,
Dressed in the whitest silver, you'd smile at me Every night I wait for my sweet... |
|
|
|
|
|
#17 |
|
Member
Iscritto dal: Dec 2005
Città: Provincia di Vicenza
Messaggi: 174
|
ciao,
ti avevo indicato male io nei post precedenti, perche` pensavo che l'applicazione fosse una MFC invece tu stai lavorando con un'applicazione WindowForms, che io non conosco molto. In ogni caso ci ho dato un'occhiata veloce, e per fare quello che devi fare tu e` molto piu` semplice di quanto ti avevo descritto precedentemente. Per aggiungere l'evento di click di un pulsante basta semplicemente farci doppio click sopra quando sei in modalita "Design". Altrimenti se vuoi vedere tutti gli eventi che puo` gestire un controllo e magari reimplementarli a tuo piacimento: sempre in modalita` "Design" selezioni il tuo oggetto (in questo caso un pulsante) e fai click con il pulsante destro e premi "Properties" a questo punto appare una finestra con le opzioni dove ci sono 5 icone, tu premi la pen'ultima (che e` un lampetto giallo) la quale visualizza tutti gli eventi di un controllo. Una volta aggiunto l'evento di click nel file "Formi1.h" ti vengono aggiunte le seguenti righe di codice Codice:
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
}
Verifica integrita dei dati inseriti: Codice:
if(textBox1->Text == "")
{
MessageBox::Show("Text Box 1 is empty", "Error", MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
}
Codice:
textBox1->Text = "Prova e vedrai che funziona"; Codice:
textBox2->Text = textBox1->Text; Codice:
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
if(textBox1->Text == "")
{
MessageBox::Show("Text Box 1 is empty", "Error", MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
}
else
{
textBox2->Text = "Prova e vedrai che funziona";
textBox3->Text = textBox2->Text;
}
}
Ciaooooooo |
|
|
|
|
|
#18 |
|
Senior Member
Iscritto dal: Jan 2004
Città: Montignoso(MS)
Messaggi: 9484
|
Sempre in Visual C++ sapreste dirmi come poter utilizzare le wxWidgets per realizzare semplici controlli ?
Ho provato a compilare la libreria ma senza che vada a buon fine.
__________________
"Il Meglio che si possa ottenere è evitare il peggio." I.C. |
|
|
|
|
|
#19 | |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Che errori ti dà il compilatore? Con VS2003 e VS2005 il codice che si scarica dal sito compila senza problemi. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:50.



















