Newsgroup: it.comp.lang.c++
Titolo: Aggiungere qualcosa ad AppWizard di VC5

Salve, uso VC++ 5.0. Mi trovo benino con l'AppWizard perché fa sě il 50% di
quello che mi serve, perň ho notato che sarebbe interessante ampliare il
codice che scrive, dato che per esempio mi ritrovo di continuo a dover
riscrivere funzioni tipo GetData(???) per prelevare i dati da un documento
o una voce "Undo" al menu "Edit" delle mie applicazioni. Come fare?
Riccardo
scozz...@iol.it

Salve, sono nuovo alla programmazione con VC ++ 5.0, ma quello che fa al
caso tuo e' il 'custom appwizard'.
Ti permette di creare wizard personati, oltre a insere degli elementi
standard della libreria MFC, puoi inserire codice propio, una  volta creato
un 'custom wizard' ,verra' aggiunto all'elenco delle applicazioni che
possono essere generate nella scheda projects della finestra di dialogo new.
Non sono in grado di dirti per il momento come fare ad usarli, almeno per il
momento.
Roberto.
_______________________________________________________
                               "Ho fatto un sogno,
           ho visto l'umanita' volgere il suo sguardo al cielo,
                            perche' nonostante tutto ...
                               ... e' li il suo destino !
Roberto B.
_______________________________________________________
Riccardo ha scritto nel messaggio <01bd7849$6a4b2fe0$c148d2c3@default>...


o una voce "Undo" al menu "Edit" delle mie applicazioni. Come fare?
Potresti creare un "Custom AppWizard Project", basandolo su di un
workspace che contiene un singolo progetto esistente, creato a sua
volta con l'MFC AppWizard, eventualmente con _piccole_ modifiche.
File/New/Projects/Custom AppWizard -- l'opzione di basarti su di
un progetto esistente e` la piu` semplice, bisogna pero` vedere
se gli "ampliamenti standard" che ti interessa apportare sono entro
la limitata gamma di modifiche permesse.  Questa, se ti funziona,
e` di gran lunga la cosa piu` semplice.
Se non ti basta, devi impararti l'API, i template, le macro, ecc ecc,
del Custom AppWizard, e poi creare un misto di standard MFC AppWizard
steps e tuoi custom steps, con tutto il codice C++ che ti serve.
Un Custom AppWizard e` un progetto MFC come tanti altri, piu` che
altro dovrai aggiungere "custom resource templates", specialmente
"text templates" per la generazione dei sorgenti da te richiesti.
Vediamo un esempio.  File/New/Projects/CustomAppWizard, Project
name: caw, Location: d:\projects\cawm, Create new workspace,
Platforms: Win32, e clicca OK.
Nel "Custom AppWizard - Step 1 of 2", scegliamo "Standard MFC
AppWizard steps", nome "caw AppWizard", 1 custom step.  Nello
Step 2 of 2, scegliamo ora di usare gli steps MFC AppWizard
per fare un Executable (piuttosto che una DLL) e supportare
solo l'English [United States] (APPWZENU.DLL).  Clic Finish,
e la "New Project Information" ci ricorda che il "caw AppWizard":
	-- mostra i dialoghi AppWizard per generare un'applicazione,
	-- ha le proprie copie dei template di codice del vero
	   AppWizard, che siamo liberi di modificare (o, se noi
	   cancelliamo dal nostro progetto custom AppWizard un
	   certo "code template", verra` invece usata automaticamente
	   la copia originale che ha AppWizard di quel code template;
	   in altri termini, occorre tenerci solo quei code template
	   che siamo in effetti interessati a modificare).
Diamo un OK, "Creating Application" frulla per un pochino, e ci
ritroviamo nel nostro nuovo progetto "caw".  Sotto caw files,
"Template Files", vediamo in particolare un mucchio di .rtf,
.cpp, .rc, ecc ecc, che sono i file da cui il nostro nuovo
AppWizard "caw" generera` i progetti dell'utente.  Vivono tutti
nel directory d:\projects\caw\Template\, e li possiamo
modificare a nostro piacimento.
In particolare, in Loc_enu.rc, troviamo ad esempio le varie
istanze di MENUITEM chiamati ID_EDIT_COPY, dopo ciascuna
delle quali potremmo ad esempio inserire un altro MENUITEM
chiamato invece ID_EDIT_UNDO (e analogamente se vogliamo
bottoni di toolbar, acceleratori, ecc) -- per seguire il
tuo esempio, anche se, naturalmente, di ID_EDIT_UNDO ce
ne sono gia` un tot:-).  Naturalmente, sarebbe meglio
studiarsi la ricca documentazione in linea del VC++ per
capire esattamente dove e come mettere le mani, ma si
puo` invece anche scegliere di procedere empiricamente
sulla base degli esempi esistenti!-)
Adesso, buildiamo il nostro progetto caw, e, voila`, con
File/New/Projects, lo vedremo fra le possibilita` a nostra
disposizione, nel suo bell'ordine alfabetico fra ATL COM
AppWizard e Custom AppWizard.  caw si usa proprio come
l'MFC AppWizard (EXE), salvo uno "Step 7 of 7" che d'altronde
abbiamo lasciato vuoto (dice solo "TODO: place controls for
custom dialog 1 here", ma e` innocuo:-).  E le nostre
modifiche all'RC di template, se corrette, avranno dato
i frutti desiderati (in questo caso, se ad esempio usiamo
caw per generare un progetto pip, nel Menu IDR_PIPTYPE ci
troveremo, sotto Edit e fra Copy e Paste, una seconda copia
della stessa entry di Undo che gia` avevamo al primo posto:-).
Buon divertimento...!-)
Alex
--
 ____    Alex Martelli, Bologna, Italia -- email: 
al...@magenta.com
 \SM/___                                 
http://magenta.com/~alex
  \/\bi/     You never know what is enough unless you know what
     \/          is more than enough.