Utilice VC.net para implementar fácilmente el autodibujo de controles de botones
¿Uso? ¿Implementar fácilmente la pintura automática de los controles de los botones?
¿Descargar el código fuente? En mi último artículo, VC NET simplemente implementa la animación GIF, ¿ya has visto la facilidad de uso? del marco. Esta vez quiero decir que el autodibujado de controles también es mucho más fácil que el autodibujado de controles MFC. Comencemos con el control de botón más utilizado. ¿Comenzar a crear el proyecto? ¿Agregar el mensaje? ¿Mensaje de respuesta de control? Agregar el código Primero cambie la apariencia del botón para hacerlo redondo y luego use los mensajes del mouse para cambiar el estado del botón. Tenga en cuenta que fui vago aquí y no mostré el cuadro de selección cuando el botón recibió el foco. es el cuadro de puntos en el borde cuando todos seleccionan algo) Si cree que la línea de puntos es necesaria, puede dibujar una línea de puntos cuando el botón recibe el foco. También puede guardar el estado normal del botón como un mapa de bits y luego dibujar un. línea de puntos en el mapa de bits y guárdela. Cuando el botón se enfoque, se mostrará la línea de puntos. Si la imagen pierde el foco, ¿es muy fácil volver a cambiarla a la imagen original? System::Void Form _Load(System::Object *?sender System::EventArgs *?e) {//Crear la primera ruta: dibuja una elipse en la ruta y luego usa esta ruta para crear un área. al botón y establezca el rango del botón System::Drawing::Drawing D::GraphicsPath *path=new System::Drawing::Drawing D::GraphicsPath( ); ( )); //Dibuja una elipse en la ruta System::Drawing::Región *reg=new System::Drawing::Región(ruta);//Usa la ruta para crear el botón Región Bounds=System::Drawing ::Rectangle(); //Establecer la posición de visualización del botón y el rango de respuesta máximo solo puede ser botón rectangular gt; //Establecer el área de control real del botón en cualquier forma} //El siguiente contenido es simple; Configurar los diferentes estilos del botón en diferentes estados no responde al estado de enfoque. Simplemente trátelo como una tarea para el lector ^_^ privado: System::Void button _MouseDown(System::Object *? sender System:: . Windows::Forms::MouseEventArgs *?e) { botón gt;Imagen=Imagen::FromFile("mapa de bits bmp" } privado: Sistema::Botón vacío _MouseUp(Sistema::Objeto *?Sistema emisor ::Windows: :Forms::MouseEventArgs *?e) { botón gt; BackColors::AppWorkspace; botón gt; Imagen=NULL } privado: Sistema::Botón vacío _MouseEnter(Sistema::Objeto *?Sistema del remitente: :EventArgs *? e) { botón gt;BackColor=SystemColors::AppWor
kspace; button > NULL; } ¿No es así de simple? Sin embargo, el CBitmapButton proporcionado en MFC también es fácil de usar. Si está interesado, puede probarlo. Pero otros controles de MFC no tienen tanta suerte: (Y el autodibujo del control es básicamente como se describe en este artículo. p>
lishixinzhi /Article/program/c/201401/30251