Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [Consigli] Rendering e Contenitori di Controlli
Forum - C# / VB.NET - [Consigli] Rendering e Contenitori di Controlli

Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2331
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 13:26
Lunedì, 27/04/2009
Holà
Chiedo qualche consiglio da mani esperte.

Siccome in DirectX tutti i controlli windows sono inesisteni
e quindi devo ricrearli da 0, da una semplice textbox
a controlli molto avanzati.

Chiedevo solo qualche consiglio magari un'informazione tecnica

ho diverse classi.
ognuna di queste rappresenta un controllo windows, da una textbox,
alle label, al combobox etc.

purtroppo per ora ho trovato questo sistema
di crearmi una struttura di dati
del tipo (piccolo esempio)



public structure TextBox

dim location as vector2
dim text as string
dim enabled as boolean

ecc. ecc.


vorrei far in modo di posizionare tutto in una specie di contenitore
esempio il Gruopbox che contiene diversi elementi.

il problema sta che ogni controllo deve essere renderizzato
per poterlo vedere ma mi servirebbe un modo per poter visualizzare tutto e
gestirne il contenuto come se fosse un groupbox

come potrei includere tutti i controlli in una specie di contenitore virtuale?

qualche consiglio?

Non penso che posso inserire una lista di dati in un'altra lista.
questo mi servirebbe per poter generare una specie di finestra virtuale
con appositi pulsanti di chiusura e di ridunzione a icona con la possibilità
di spostarla. però per fare questo mi serviberre appunto questo sistema
che tutti i controlli vengano ancorati ad una windows virtuale


Ultima modifica effettuata da Thejuster il 27/04/2009 alle 13:31


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 20:43
Lunedì, 27/04/2009
Sei sicuro che non si possano usare quelli esistenti? In xna si può fare, quindi lo si deve poter fare anche in directx. Non mi ricordo bene, ma potresti assegnare come handle usato dalle directx come contenitore dell'area di rendering quello di un panel e non della finestra intera, e nella parte restante della finestra inserire normali controlli.

P.S.: se devi rappresentare entità estese come i controlli, dovresti usare le classi e non le strutture. Almeno potresti sfruttare l'erediterietà per non riscrivere ogni volta tutto.

PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2331
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 23:47
Lunedì, 27/04/2009
Testo quotato

Postato originariamente da Il Totem:

Sei sicuro che non si possano usare quelli esistenti? In xna si può fare, quindi lo si deve poter fare anche in directx. Non mi ricordo bene, ma potresti assegnare come handle usato dalle directx come contenitore dell'area di rendering quello di un panel e non della finestra intera, e nella parte restante della finestra inserire normali controlli.

P.S.: se devi rappresentare entità estese come i controlli, dovresti usare le classi e non le strutture. Almeno potresti sfruttare l'erediterietà per non riscrivere ogni volta tutto.



Nu già provato.
Posso anche passare l'handles del rendering in una picture box ma
il device invalida tutto il form.
anche se parzialmente in modalità finestra diciamo che si potrebbero usare.
ma in maxiscreen il controllo diventa invisibile, ed al momento del click anche se vai ad intuito nella sua posizione perdi il device.

stranamente in xna funziona. al quanto ne sò anche se tutti e 2 sono strutturati sulle DirectX, XNA ha delle proprie classi con funzioni diverse.

esempio in directX cambiando finestra se il gioco e a schermo intero (alt +Tab)
se non è gestito il lostdevice il gioco crasha mentre su xna questo non accade.

Uhm riguardo alle classi non ho afferrato bene il concetto.
io ho fatto in questo procedimento
mio creo la struttura di ogni controllo
dopodichè espongo tutte le strutture in varie liste

fatto questo durante il rendering mi basta fare del tipo

Codice sorgente - presumibilmente VB.NET

  1. sprite.Begin(SpriteFlags.None)
  2. for i as integer = 0 To TextBoxContainer.Count -1
  3.  
  4. 'disegno delle Textbox
  5. 'se ne esistono più di una
  6. sprite.Draw2D(TextBoxContainer(i).Texture,New point(0,0),0.0f,New Point(TextBoxContainer(i).X,TextBoxContainer(i).Y),Color.White)
  7.  
  8. 'disegno del testo
  9. text.DrawText(TextBoxContainer(i).Text,New Point(0,0),0.0f,New Point(TextBoxContainer(i).TextX,TextBoxContainer(i).TextY), Color.Black)
  10.  
  11.  
  12. next
  13. sprite.end()



intendevi in questo modo?
nel senso aggiungere un rendering in una classe stessa e dopo richiamarla dal main principale?

Ultima modifica effettuata da Thejuster il 27/04/2009 alle 23:53


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 15:09
Martedì, 28/04/2009
Io intendevo dire che, dato che ogni controllo espone proprietà comuni (Location, Text, Size, ForeColor, Font, ecc...) potevi fare una classe base (Control appunto) da cui far derivare le altre. Proprio come ho fatto nei miei esempi in xna con GameObject.

PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2331
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 22:45
Mercoledì, 29/04/2009
Ci dò un occhiatina grazie mille.

Era come dicevi tu in parte.

In Finestra i controlli win funzionano ma vengono renderizzati
senza effetti grafici tipo pulsanti di win xp o di vista.

invece eseguendo un rendering a schermo intero il controllo scompare
e quindi bisogna ricrearli tutti.

Ultima modifica effettuata da Thejuster il 29/04/2009 alle 22:46


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote