Windows

5.2
L'approccio alle finestre di easyhand nasce dalla seguenti considerazioni: normalmente quando si sviluppa un programma si lavoro su una finestra per volta, ogni nuova finestra aperta è una nuova sezione del programma, prende il focus di gestione, fino alla sua chiusura.
Quindi la filosofia di approccio è la seguente:


Queste restrizioni fanno si che la programmazione diventi fluida, veloce e semplice, ma comunque è possibile gestire finestre "figlie" in contemporanea usando gli oggetti o direttamente le API del sistema operativo, dove si ritiene necessario.

Finiestre con gestione di subPainting e/o controllo esterno

Raramente sono necessarie, ma dove serve è possibile controllare la finestra attraverso l'assegnizione di una funzione di controllo, principalmente per controllare il paiting a schermo pieno.




Aiuto per migrazione

Il sistema di controllo della finestra è stato cambiato da una funzione generica a questa.

Per migrare i vecchi sorgenti:
dato come unico parametro della funzione EH_SUBWIN_PARAMS * psSwp;
- Il messaggio si trova in psSwp->enMess
- La Paintstruct del messaggio WS_DISPLAY in psSwp->pVoid
- La finestra chiamante in psSwp->iWin
- Se la chiamata prima o dopo le normali operazioni, in psSwp>bAfter (True se dopo)

Esempio di subPainting

static void * _backPaint(EH_SUBWIN_PARAMS * psSwp)
{

	switch (psSwp->enMess)
	{
		case WS_DISPLAY:


				if (!psSwp->bAfter) // <-- Solo prima
				{
					PAINTSTRUCT * ps=psSwp->pVoid;
					RECTD rcd;
					SIZE siz,sizImage;
					RECT rectClient;
					INT x,y;
					S_FERBO_SRV * psFs;
					EH_WIN * psWin=psSwp->psWin;

					rectToD(&rcd,&ps->rcPaint);
					dcBoxFill(ps->hdc,&rcd,0,0,colorWeba("#052142"));

					psFs=srvFerbo(WS_OPEN,0,NULL);
					if (!psFs->dmiFerbo.iLength) {
						GetClientRect(psWin->hWnd,&rectClient);
						IMGGetSize(_p.imgMvWhite,&sizImage);
						sizeCalc(&siz,&rectClient);
						x=(siz.cx-sizImage.cx)/2;
						y=(siz.cy-sizImage.cy)/2;
						dcImageShow(ps->hdc,x,y,sizImage.cx,0,_p.imgMvWhite);
					}
					srvFerbo(WS_CLOSE,0,NULL);

				}					
				break;
	}
	return NULL;
}

See also:
Easyhand C/C++: Windows | Last modified: 18/02/2014 15.12.55 Europe/Rome | #1.20
P.. 620
Easyhand C/C++
Una mano alle tue idee.
|
Privacy Policy