Estoy haciendo una clase en C++ que representara una imagen. La idea es crear un DC y un BITMAP que se le agregara con un SelectObject(), el problema es que no consigo crear un DC a mi gusto. Si uso algo como CreateCompatibleDC(NULL) me crea un DC para memoria(que es lo que busco,claro) pero compatible con el modo grafico de windows, es decir, cuando haga un CreateBitmap() debera tener la misma profundidad de color que windows en ese momento si es de 32bits no podre asociarle un BITMAP creado con 16bits de color.
Existe la posibilidad de usar CreateCompatibleBitmap() claro, pero se creara con la profundidad de color de windows en ese momento, no??
Por eso necesito un DC hacho a medida y pense en usar CreateDC(), pero es realmente complejo y toda la documentacion que encuentro parecen conformarse con CreateCompatibleDC(). Si uso CreateDC(), solo me funciona si pongo "DISPLAY" como primer parametro, lo cual crea un DC para display y lo quiero para memoria, si dejo en NULL el primer parametro y trato de pasarle un DEVMODE en el ultimo no consigo crearlo, los parametros que le pongo en DEVMODE son los siguientes:
Como puedo crear un DC a mi gusto?!?! y si no es posible, si creo un CreateCompatibleDC(NULL), como puedo matenerlo con un BITMAP a mi "gusto"??
Son preguntas algo elementales, pero el API de windows no es mi lugar habitual, gracias.
Saludos.
Existe la posibilidad de usar CreateCompatibleBitmap() claro, pero se creara con la profundidad de color de windows en ese momento, no??
Por eso necesito un DC hacho a medida y pense en usar CreateDC(), pero es realmente complejo y toda la documentacion que encuentro parecen conformarse con CreateCompatibleDC(). Si uso CreateDC(), solo me funciona si pongo "DISPLAY" como primer parametro, lo cual crea un DC para display y lo quiero para memoria, si dejo en NULL el primer parametro y trato de pasarle un DEVMODE en el ultimo no consigo crearlo, los parametros que le pongo en DEVMODE son los siguientes:
Código [Seleccionar]
DEVMODE devModeInfo;
ZeroMemory(&devModeInfo,sizeof(DEVMODE));
devModeInfo.dmSize=sizeof(DEVMODE);
devModeInfo.dmBitsPerPel=32;
devModeInfo.dmPelsWidth=800;
devModeInfo.dmPelsHeight=600;
devModeInfo.dmFields=DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT;
Como puedo crear un DC a mi gusto?!?! y si no es posible, si creo un CreateCompatibleDC(NULL), como puedo matenerlo con un BITMAP a mi "gusto"??
Son preguntas algo elementales, pero el API de windows no es mi lugar habitual, gracias.
Saludos.