Oppure

Loading
27/04/09 11:26
Thejuster
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 27/04/09 11:31
mire.forumfree.it/ - Mire Engine
C# UI Designer
27/04/09 18:43
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.
aaa
27/04/09 21:47
Thejuster
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


sprite.Begin(SpriteFlags.None)
for i as integer = 0 To TextBoxContainer.Count -1

'disegno delle Textbox
'se ne esistono più di una
sprite.Draw2D(TextBoxContainer(i).Texture,New point(0,0),0.0f,New Point(TextBoxContainer(i).X,TextBoxContainer(i).Y),Color.White)

'disegno del testo
text.DrawText(TextBoxContainer(i).Text,New Point(0,0),0.0f,New Point(TextBoxContainer(i).TextX,TextBoxContainer(i).TextY), Color.Black)


next
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 27/04/09 21:53
mire.forumfree.it/ - Mire Engine
C# UI Designer
28/04/09 13:09
Il Totem
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.
aaa
29/04/09 20:45
Thejuster
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 29/04/09 20:46
mire.forumfree.it/ - Mire Engine
C# UI Designer