Newsgroup: it.comp.lang.c++
Titolo: visual C++ e OnDraw

spero di non essere completamente OT!
Io ho questo problema, vorrei da una mia funzione richiamare ad ogni ciclo
la funzione
::OnDraw() per disegnare sul documento, ma non ci riesco!
Nella funzione OnDraw() voglio disegnare delle linee, a seconda di come sono
alcune variabili nella mia funzione main.
Ho chiamato il mio progetto "Progetto" (che fantasia, eh?), quindi
 ho una classe definita in ProgettoView.h:
class CProgettoView : public CView
{
protected: // create from serialization only
 CProgettoView();
 DECLARE_DYNCREATE(CProgettoView)
// Attributes
public:
 CProgettoDoc* GetDocument();
......
e l'implementazione della funzione (in ProgettoView.cpp):
void CProgettoView::OnDraw(CDC* pDC)
{
 CProgettoDoc* pDoc = GetDocument();
 ASSERT_VALID(pDoc);
 // TODO: add draw code for native data here
// Disegna delle linee a seconda di come sono le variabili k, x, ecc
}
il mio modulo è Bus.cpp e Bus.h e vorrei fare qualcosa del genere:
while (i>0) {
  if x==0 disegna_linea_rossa
 else disegna_linea_nera;
}
Nel libro che sto usando risolve sempre assegnando una funzione ad una voce
di menù
e quindi in ProgettoDoc.cpp viene:
void CProgettoDoc::OnEseguiTutto()
{
 // TODO: Add your command handler code here
 UpdateAllViews(NULL)  // ma che cavolata è?
}
in modo che quando clicco sulla voce di menù aggiorna la vista.
Ma io voglio che quando clicco sul pulsante la vista venga aggiornata via
via che il
programma è in esecuzione e non soltanto alla fine!
Come posso fare?
Io ho tentato così:
1) ho spostato il codice all'interno di ::OnEseguiTutto(), cercando di
richiamare
UpdateAllViews(NULL) ogni volta che volevo aggiornare la vista.
Ma un inspiegabile:   Fatal Error C1010
unexpected end of file while looking for precompiled header directive
mi ha costretto a lasciar perdere.
2) In Bus.cpp ho scritto:
 #include "ProgettoView.h"
ma mi dà errore nella classe generata dal wizard:
class CProgettoView : public CView
{
protected: // create from serialization only
 CProgettoView();
 DECLARE_DYNCREATE(CProgettoView)
// Attributes
public:
 CProgettoDoc* GetDocument(); <--- error 'CProgettoDoc' : missing
storage-class or type specifiers !!!
inoltre se poi tento di fare
CProgettoView  MyView;
dà ancora errore:
cannot access protected member declared in class 'CProgettoView'
*****************************************
Un'ultima cosa:
se in Bus.cpp definisco al di fuori delle funzioni   int k
questa è una variabile globale, però se all'interno
della funzione ::OnDraw mi riferisco a k dice che la variabile
non è definita, come mai?
Cioè in definitiva non posso usare  k fuori da Bus.cpp?
(Ho provato a definirla in Bus.h ma dice :
ProgettoDoc.obj : error LNK2005: "int  k" (?k@@3HA) already defined in
Bus.obj
ProgettoView.obj : error LNK2005: "int  k" (?k@@3HA) already defined in
Bus.obj
però nonostante l'errore l'eseguibile parte)
So di non essere stato molto chiaro, ma forse chi usa Vc++ queste cose le
conosce bene e spero che saprà aiutarmi, grazie.
Andrea

 ha scritto nel messaggio
news:Hart6.38509$x3.7...@news2.tin.it...


direttamente da windows quando è necessario
Sei OT e non sai neanche quotare...
Luc.

Dai tu allora una risposta, rincoglionito
"Luc" <TOGL...@katamail.com-TOGLI> ha scritto nel messaggio
news:e0v3ctgakqij6igi0...@4ax.com...


Dai tu allora una risposta, rincoglionito
Trollone... 8-P
Luc.

 spero di non essere completamente OT!
Si, sei completamente OT. Il newsgroup giusto e'
it.comp.programmare.win32 .
Ciao,
Nicola