Asuntos Oficiales > Retos
Formato Bmp
JuanK:
sugerencia...
1- Consiguete un compilador mejor, descargate el visual C++ .net express desde la pagina de microsoft o quie se yo el que quieras pero cambia el que tienes.
2- Enviame tu codigo a mi mail en un archivo .rar lo revisare y tratare de detectar donde esta el problema para que lo corrijas. :smartass:
juank.ruiz@gmail.com
Danielo:
--- Cita de: "JuanK" ---sugerencia...
1- Consiguete un compilador mejor, descargate el visual C++ .net express desde la pagina de microsoft o quie se yo el que quieras pero cambia el que tienes.
2- Enviame tu codigo a mi mail en un archivo .rar lo revisare y tratare de detectar donde esta el problema para que lo corrijas. :smartass:
juank.ruiz@gmail.com
--- Fin de la cita ---
Muchas gracias por tu interés y ayuda JuanK, pero... acabo de descubrir donde estaba el ERROR :jumpie:
En el procedimiento WindowProcedure, en la parte en que se inicializa el OPENFILENAME (Initialize OPENFILENAME), hay una línea que dice: ofn.hwndOwner = hwnd;
bueno, si quito u oculto esa línea... se soluciona el problema!!... la verdad que no sé muy bien porqué se soluciona, tal vez porque el cabezal de WindowProcedure ya contiene una variable de tipo HWND y al hacer ofn.hwndOwner = hwnd; se inicializaba algo que no debía. Sea como sea, si no surge algún otro imprevisto te puedo decir que ahora casi estoy por terminar el reto, me faltan agregar unas cosillas menores (eso espero :blink: ) y listo.
Danielo:
cada vez me falta menos :rolleyes:
Ahora necesito refrescar la pantalla para que se actualice el bitmap cuando cargo algún otro por segunda vez. He intentado destruyendo la estructura que contiene el bitmap pero perecería que no basta con eso, ya que el primer bitmap cargado que aparece en pantalla queda fijo... lo extraño es que si abro otra ventana y la coloco sobre el area en que aparece el dibujo... éste desaparece (o mejor dicho se borra) :huh: y si vuelvo a cargar otro bitmap, se muestra correctamente en pantalla :think:
Se me ocurrió hacer algo como esto:
--- Código: Text --- ...case WM_PAINT: ... DeleteDC(hDC); hDC = BeginPaint(hwnd, &ps); ... ... EndPaint(hwnd, &ps); ... pero tampoco dió resultado :(
JuanK:
invalidate
usa invalidate para forzar el refresco de la ventana.
Danielo:
--- Cita de: "JuanK" --- invalidate
usa invalidate para forzar el refresco de la ventana.
--- Fin de la cita ---
:D Lo más parecido a invalidate que encontré fue:
--- Código: Text --- BOOL InvalidateRect( HWND hWnd, // manipulador de la ventana con la región de actualización modificada CONST RECT * lpRect, // dirección del rectángulo con las coordenadas BOOL bErase // flag de borrado de fondo ); ... tuve que crear un rectángulo con las dimensiones de la ventana y luego lo utilizo para refresar... y funciona!!! :D
Ahora... si minimizo la pantalla o si se superpone alguna otra ventana sobre la que contiene el bitmap, éste se borra :angry:
Por lo que estuve leyendo, eso pasa porque SetPixelV está pintando sobre la memoria de video y no sobre la memoria ram <_<
Por lo que estuve leyendo parecería que esto se soluciona con la función BitBlt, así que intentaré utilizarla, a ver que pasa :unsure:
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa