Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo generar gráficos en vs2010

Cómo generar gráficos en vs2010

Tengo varias funciones para que le eches un vistazo

CreateCompatibleDC

Función función

Esta función crea una memoria compatible con el especificado dispositivo Contexto del dispositivo (DC). El HDC obtenido mediante GetDc() se comunica directamente con el dispositivo correspondiente, mientras que el DC creado por esta función se asocia a una superficie en memoria.

Prototipo de función

HDC CreateCompatibleDC(HDC hdc);

Parámetros

hdc: maneja el contexto del dispositivo existente, si es el caso. el identificador es NULL, esta función crea un contexto de dispositivo de memoria que es compatible con la visualización actual de la aplicación.

Valor de retorno: si tiene éxito, se devuelve el identificador del contexto del dispositivo de memoria; si falla, el valor de retorno es NULL.

Windows NT: Si desea obtener más información sobre el error, llame a la función GetLastError.

Nota: El contexto del dispositivo de memoria es un contexto de dispositivo que solo existe en la memoria. Cuando se crea el contexto del dispositivo de memoria, su interfaz de visualización es un píxel estándar de un color de ancho y un píxel de un color antes de una aplicación. Puede usar el contexto del dispositivo de memoria para operaciones de dibujo, debe seleccionar un mapa de bits con la altura y el ancho correctos en el contexto del dispositivo. Esto se puede hacer especificando la combinación de alto, ancho y color usando la función CreateCompatibleBitmap.

Cuando se crea un contexto de dispositivo de memoria, todas las propiedades se configuran con valores predeterminados. El contexto del dispositivo de memoria se utiliza como un contexto de dispositivo normal. Por supuesto, estas propiedades también se pueden configurar con valores no predeterminados. , obtenga la configuración actual de sus propiedades, seleccione el lápiz, el pincel y el área correspondiente.

La función CreateCompatibleDc solo se aplica a dispositivos que admiten operaciones ráster. Las aplicaciones pueden determinar si un dispositivo admite estas operaciones llamando a la función GetDeviceCaps.

Cuando el contexto del dispositivo de memoria ya no es necesario, puede llamar a la función DeleteDc para eliminarlo.

ICM: Si el contexto del dispositivo (Dc) pasado a esta función a través del parámetro hdc de esta función está disponible para la gestión de color independiente (ICM), el contexto del dispositivo (Dc) creado por esta función es Para ICM Para utilizar, los intervalos de color de recurso y destino se definen en Dc.

CreateCompatibleBitmap

Función: esta función crea un mapa de bits compatible con el dispositivo relacionado con el entorno del dispositivo especificado.

Prototipo de función: HBITMAP CreateCompatibleBitmap(HDC hdc,int nWidth,int nHeight);

Parámetros:

hdc: identificador del entorno del dispositivo.

nWidth: Especifica el ancho del mapa de bits, en píxeles.

nHeight: Especifica la altura del mapa de bits, en píxeles.

Valor de retorno: si la función se ejecuta correctamente, el valor de retorno es el identificador del mapa de bits; si la función falla, el valor de retorno es NULL. Si desea obtener más información sobre errores, llame a GetLastError.

Nota: El formato de color del mapa de bits creado por la función CreateCompatibleBitmap coincide con el formato de color del dispositivo identificado por el parámetro hdc. Este mapa de bits se puede seleccionar en cualquier entorno de dispositivo de memoria que sea compatible con el dispositivo original. Porque el entorno del dispositivo de memoria permite mapas de bits tanto en color como monocromáticos. Por lo tanto, cuando el entorno del dispositivo especificado es un entorno de dispositivo de memoria, el formato de mapa de bits devuelto por la función CreateCompatibleBitmap no es necesariamente el mismo. Sin embargo, los mapas de bits compatibles creados para contextos de dispositivos sin memoria suelen tener el mismo formato de color y utilizar la misma paleta de colores que el contexto de dispositivo especificado.

fillsolidrect

void FillSolidRect(

int x,

int y,

int cx,

p>

int cy,

COLORREF clr

Parámetros:

lpRec

Puntero a una estructura de datos RECT que contiene las coordenadas lógicas del rectángulo relleno. Se puede pasar un puntero a una estructura de datos RECT o un objeto CRect para este parámetro.

clr

Especifica el color utilizado para rellenar el rectángulo.

x

La coordenada lógica X de la esquina superior izquierda del rectángulo.

y

Coordenada lógica Y de la esquina superior izquierda del rectángulo.

cx

Especifica el ancho del rectángulo.

cy

Especifica la altura del rectángulo.

Descripción:

Llame a esta función miembro para rellenar el rectángulo con el color sólido especificado.

FillSolidRect es similar a CDC::FillRect. FillSolidRect solo puede usar colores sólidos (determinados por el parámetro COLORREF). Pero FillRect tiene un pincel, por lo que puedes rellenar el rectángulo con un color sólido, un color difuminado, una sombra o una paleta. FillRect es generalmente más lento que FillSolidRect.

Nota: Al llamar a FillSolidRect, el color de fondo previamente establecido con SetBkColor se establece en el color especificado por clr.

Función separar

detach():

Función miembro de la clase CMENU en la clase MFC. La función es cortar la conexión entre un objeto CWnd y una ventana activa.

Dado que WNDCLASS en realidad no tiene nada que ver con CWnd, solo están conectados a través de HWND, un miembro de CWnd. La función de Detach es cortar la conexión entre un objeto CWnd y una ventana válida. Debido a que CWnd es un objeto C ++, los objetos C ++ tienen un concepto de vida útil. Si salen del alcance del objeto, el objeto se destruirá. Sin embargo, los objetos de Windows no tienen esta característica. Al destruir el objeto CWnd, no necesariamente. queremos que WNDCLASS se destruya juntos, por lo que antes de eso, primero debemos cortar esta conexión.

Cuando creamos un objeto de menú local, por ejemplo, creamos un objeto de menú local en una función de clase de ventana, cuando finaliza el ciclo de vida de la función de ventana, si no queremos que el objeto de menú sea A destruir, debe usar la función detach() para separar el identificador de menú del objeto de menú. De esta manera, cuando se destruye el objeto del menú local, no destruye un menú que no es de su propiedad.

GetClientRect

Función Función

Esta función obtiene las coordenadas del área cliente de la ventana. Las coordenadas del área del cliente especifican las esquinas superior izquierda e inferior derecha del área del cliente. Dado que las coordenadas del área del cliente son relativas a la esquina superior izquierda del área del cliente de la subventana, las coordenadas de la esquina superior izquierda son (0, 0)

Prototipo de función

En Win32 SDK, esta función API El prototipo es

BOOL GetClientRect(

HWND hWnd, // identificador de ventana

LPRECT lpRect // coordenadas del área del cliente

);

En MFC, el prototipo de esta función es void GetClientRect(LPRECT lpRect)

Parámetros

hWnd

[Entrada] Sí El identificador de la ventana del programa.

lpRect

[Salida] es un puntero que apunta a una estructura rectangular de tipo RECT.

Esta estructura tiene cuatro campos LARGO, a saber, izquierdo, superior, derecho e inferior. GetClientRect establece estos cuatro campos al tamaño del área de visualización de la ventana. Los campos izquierdo y superior suelen estar configurados en 0. Los campos derecho e inferior están configurados para el ancho y alto (número de píxeles) del área de visualización. También puede ser un puntero de objeto CRrect. El objeto CRect tiene múltiples parámetros, que se usan de la misma manera que RECT.

Valor de retorno

Si la función tiene éxito, devuelve un valor distinto de cero.

Si la función falla, se devuelve cero. Para obtener más información sobre errores, utilice la función GetLastError.

BitBlt

Función

Esta función realiza la conversión bit_block en los píxeles en el área del entorno del dispositivo de origen especificado para transmitir al entorno del dispositivo de destino.

Prototipo de función

BOOL BitBlt(HDC hdcDest,int nXDest,int nYDest,int nWidth,int nHeight,HDC hdcSrc,int nXSrc,int nYSrc,DWORD dwRop

Parámetros

hdcDest: maneja el apuntamiento al entorno del dispositivo de destino.

nXDest: Especifica la coordenada lógica del eje X de la esquina superior izquierda del área rectangular de destino.

nYDest: Especifica la coordenada lógica del eje Y de la esquina superior izquierda del área rectangular de destino.

nWidth: Especifica el ancho lógico de las áreas rectangulares de origen y destino.

nHeight: Especifica la altura lógica de las áreas rectangulares de origen y destino.

hcSrc: Identificador que apunta al contexto del dispositivo de origen.

nXSrc: Especifica la coordenada lógica del eje X de la esquina superior izquierda del área rectangular de origen.

nYSrc: Especifica la coordenada lógica del eje Y de la esquina superior izquierda del área rectangular de origen.

dwRop: Especifica el código de operación ráster. Estos códigos definirán cómo se combinan los datos de color del área rectangular de origen con los datos de color del área rectangular de destino para completar el color final.

A continuación se enumeran algunos códigos de operación ráster comunes:

NEGRO: Indica el uso del color asociado con el índice 0 de la paleta física para rellenar el área rectangular de destino (para el valor predeterminado En términos de la paleta física, el color es negro).

DSTINVERT: Indica invertir el color del área rectangular objetivo.

MERGECOPY: Indica el uso del operador booleano AND para combinar el color del área rectangular de origen con un patrón específico.

MERGEPAINT: Fusiona el color del área rectangular de origen invertida con el color del área rectangular de destino mediante el uso del operador booleano OR (o).

NOTSRCCOPY: Invierte el color del área rectangular de origen y lo copia en el área rectangular de destino.

NOSRCERASE: Utilice el operador booleano OR (o) para combinar los valores de color de las áreas rectangulares de origen y destino, y luego invierta el color resultante.

PATCOPY: Copia un patrón específico al mapa de bits de destino.

PATPAINT: Fusiona el valor de color invertido del área rectangular de origen con el color de un modo específico mediante el uso del operador booleano OR (o). Luego, el resultado de esta operación se combina con el color dentro del área rectangular objetivo utilizando el operador OR (o).

PATINVERT: Combina los colores dentro de las áreas rectangulares de origen y destino mediante el uso del operador XOR (OR exclusivo).

SRCAND: Combina los colores dentro de los rectángulos de origen y destino mediante el operador AND.

SRCCOPY: Copia el área rectangular de origen directamente al área rectangular de destino.

SRCERASE: invierte el color del área rectangular de destino y lo fusiona con el valor de color del área rectangular de origen mediante el operador AND.

SRCINVERT: Combina los colores de los rectángulos de origen y destino mediante el operador booleano XOR (OR exclusivo).

SRCPAINT: Combina los colores de los rectángulos de origen y destino mediante el operador booleano OR.

WHINESESS: Rellena el área rectangular de destino con el color asociado al índice 1 en la paleta física. (Para la paleta física predeterminada, este color es el blanco).

Valor de retorno

Si la función tiene éxito, el valor de retorno es distinto de cero; si la función falla, el valor de retorno es cero.

SetClassLong

Función de función: esta función reemplaza el valor entero de 32 bits de longitud en la dirección de desplazamiento especificada en el espacio de almacenamiento de clase adicional, o reemplaza la estructura WNDCLASSEX de la clase a la que pertenece la ventana especificada.

Prototipo de función: DWORD SetClassLong (HWND hWnd, int nlndex, LONG dwNewLong);

Parámetros:

hWnd: identificador de ventana y ventana a la que se accede indirectamente. La ventana dada pertenece a la clase.

nlndex: Especifica el valor de 32 bits que se reemplazará. Para establecer un valor de 32 bits en el almacenamiento de clase adicional, se debe especificar un desplazamiento mayor o igual a 0.

Los valores válidos varían desde 0 hasta el número de bytes de almacenamiento de clase adicional hasta 4, por ejemplo, si se especifican 12 bytes o más de almacenamiento de clase adicional, el índice cuando el valor es 8; corresponde al tercer valor entero de 32 bits. Para establecer cualquier valor en la estructura WNDCLASSEX, especifique uno de los siguientes índices:

GCL_CBCLSEXTRA: establece el tamaño en bytes del tamaño relacionado con la clase. Establecer este valor no cambia la cantidad de bytes adicionales asignados.

GCL_CBWNDEXTRA: Establece el tamaño en bytes de las dimensiones asociadas a cada ventana de la clase. Establecer este valor no cambia la cantidad de bytes adicionales asignados. Para ver cómo ingresar a esta memoria, consulte SetWindowLOng.

GCL_HBRBACKGROUND: Reemplaza el mango del pincel de fondo relacionado con la clase.

GCL_HCURSOR: Reemplaza el identificador del cursor asociado a la clase. GCL_HICON: Reemplaza el identificador del icono asociado a la clase.

GCL_HMODULE: Reemplaza el identificador del módulo de la clase registrada. GCL_STYLE: reemplaza el bit de estilo de la clase de ventana.

GCL_MENUNAME: Reemplaza la dirección de la cadena del nombre del menú. Esta cadena identifica el recurso de menú asociado con la clase.

GCL_WNDPROC: Reemplaza la dirección del procedimiento de ventana relacionado con la clase de ventana.

dwNewLong: Valor de reemplazo especificado.

Valor de retorno: si la función tiene éxito, el valor de retorno es el entero de 32 bits en la estructura de clase original; si no se establece de antemano, el valor de retorno es 0. Si la función falla, el valor de retorno es 0. Si desea obtener más información sobre el error, llame a la función GetLastError.

Nota: Si utiliza la función SetClassLong y el valor del índice GCL_WNDPROC para reemplazar el procedimiento de ventana, el nuevo procedimiento de ventana debe ser consistente con las reglas especificadas en la función de devolución de llamada WindowProc.

Modificar una subclase de una clase de ventana con la función SetClassLong con un valor de índice GCL_WNDPROC afectará a todas las ventanas posteriores creadas con esa clase. Una aplicación puede subclasificar una clase del sistema, pero no puede subclasificar una clase creada por otro proceso.

Reserve espacio de almacenamiento de clases adicional especificando un valor distinto de cero para la unidad cbWndExtra en la estructura WNDCLASSEX mediante la función RegisterClassEx.

Tenga cuidado al utilizar la función SetClassLong. Por ejemplo, puede cambiar el color de fondo de una clase usando SetClassLong, pero este cambio no tendrá efecto inmediatamente hasta que se vuelva a dibujar el formulario que pertenece a la clase, a menos que se use UpdateWindow() para forzar la actualización del formulario.

Windows CE: el parámetro nlndex es un desplazamiento de bytes pero debe ser un múltiplo de 4. No se admite la opción no alineada.

El valor CGL_★ estándar en el parámetro nlndex no se admite, con una excepción: si el objetivo admite el mouse, se puede especificar CGL_HCURSOR en el parámetro nlndex.