Autor Tema: Quitar icono de MIDIForm  (Leído 6531 veces)

0 Usuarios y 1 Visitante están viendo este tema.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Quitar icono de MIDIForm
« en: Octubre 13, 2012, 11:20:02 pm »
Pues eso, no logro conseguir quitar este icono:


No quiero ponerle ningún icono, por ahora solo se me ocurre ponerle un icono azul pero si hay una forma mas ortodoxa se los agradecería.

Saludos
Me encuentras en YAcosta.com

Bazooka

  • Terabyte
  • *****
  • Mensajes: 951
  • Reputación: +31/-20
  • El pibe Bazooka
    • Ver Perfil
    • Desof sistemas
Re:Quitar icono de MIDIForm
« Respuesta #1 en: Octubre 13, 2012, 11:29:48 pm »
Y desactivar ControlBox?
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Quitar icono de MIDIForm
« Respuesta #2 en: Octubre 13, 2012, 11:36:05 pm »
Esa propiedad no tiene el MidiForm. Ya me recorrí todas las propiedades y no hay de manera natural la opción para quitar el icono o cambiar el tipo de formulario como los formularios "normales"
Me encuentras en YAcosta.com

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Quitar icono de MIDIForm
« Respuesta #3 en: Octubre 13, 2012, 11:49:36 pm »
La verdad quisiera tambien inhabilitar o mejor desaparecer los botones del MidiForm


Voy a buscar a ver que encuentro.
Me encuentras en YAcosta.com

raul338

  • Terabyte
  • *****
  • Mensajes: 894
  • Reputación: +62/-8
  • xD fan!!!!! xD
    • Ver Perfil
    • Raul's Weblog
Re:Quitar icono de MIDIForm
« Respuesta #4 en: Octubre 14, 2012, 02:12:39 am »
Solo se me ocurre por API... y... si en lugar de eso no creas un MDI sin borde, y solo le pones para que se mueva por un label? (?

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Quitar icono de MIDIForm
« Respuesta #5 en: Octubre 14, 2012, 02:22:13 am »
No entendí doc lo del MDI sin borde, lo del label tampoco lo entendí.

Debo comentarte que no estoy empezando un programa desde cero, mas bien a uno +/- grande le he quitado un 50% de lo que tenia tanto en código como en formularios (varios días) y ya lo tengo 99% listo, por ello es que deseaba usar el mdiform que ya tengo con todo lo que en el hay y no rehacerlo.
Voy a averiguar si con APIs quito los botones, sino ni modo queda asi, y el icono le pondré uno azul = al fondo de la barra.

Gracias.
Me encuentras en YAcosta.com

ADONAIRAFA

  • Gigabyte
  • ****
  • Mensajes: 291
  • Reputación: +37/-1
  • Que bien se siente al terminar un programa !!!
    • Ver Perfil
Re:Quitar icono de MIDIForm
« Respuesta #6 en: Octubre 14, 2012, 02:41:56 am »
Saludos a todos !!!

Yvan, ¿no te serviría (tomando un poco de la idea de raul338) un form "normal" sin borde? lo colocas, ya sabes none.
¿Qué va a pasar con esto? Te a quedar un Form inmóvil. Pero puedes crear una barra de título personalizada, tomando un PictureBox, le creas un fondo, bueno ya queda a tu imaginación. A continuación, te puedes servir de las API's ReleaseCapture y SendMessage.

Ahi podrías resolver lo de tu problema con lo de "desaparecer" el icono default.

Ahora si lo que necesitas es mantenerlo con el 'formato' MDI, puedes "crear" los forms hijos (MDIChild), valiéndote de la API SetParent.

Espero te pueda servir de algo, Hermano !!!


Saludos !!!

Manuel F. Borrego S. 8)
Barcelona. Venezuela.
Hay dos tipos de personas: Los que siguen un camino... y los que hacen camino al avanzar !!!

Albertomi

  • Gigabyte
  • ****
  • Mensajes: 281
  • Reputación: +153/-0
    • Ver Perfil
Re:Quitar icono de MIDIForm
« Respuesta #7 en: Octubre 14, 2012, 03:04:08 am »
Estimado YAcosta
En el screenshot veras el código para poder quitar los botones de Minimizar, Maximizar y Cerrar del Formulario MDI como un efecto colateral de este código se obtiene lo que buscas que es retirar el Icono del formulario MDI, espero te sea de utilidad



NOTAS:
1.- Puedes descargar el proyecto de la siguiente URL http://www.technetperu.org/webdrive/EA64835D2E2E41F9AF85EBE06318BC87/MDI_to_YAcosta.rar
2.-  Adjunto en el archivo comprimido un icono transparente por si solo quieres que no se vea el Icono del formulario
 
Saludos de algún lugar de Lima-Perú
Saludos, desde algún lugar de Lima-Perú

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Quitar icono de MIDIForm
« Respuesta #8 en: Octubre 14, 2012, 03:10:55 am »
Gracias Manuel por los comentarios.

Te diré que si tengo en otros proyectos esa experiencia con el parent, dibujar controles, simular MDIForm mas personalizado, etc, incluso en mi soft bandera tengo ese tema realizado como puedes apreciar aquí:


Pero la verdad no quería meterle mucha letra a este tema que ya tengo casi terminado, me interesaba saber si habia algun truquillo bajo la manga al menos para quitar el icono (motivo original del post) pero si eso implica todo ese concierto... pues ya sea por tiempo, por costo o por pereza prefiero dejarlo así, es que tendría que mover algunas cosas que no quiero tocar.

Igual gracias, y lamento la aún presencia de Chavez.

Saludos doc.
Me encuentras en YAcosta.com

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Quitar icono de MIDIForm
« Respuesta #9 en: Octubre 14, 2012, 03:12:03 am »
guauu Albertomi!!! muchas gracias... voy a ver el codigo ya mismo.

Muchas gracias.
Me encuentras en YAcosta.com

Albertomi

  • Gigabyte
  • ****
  • Mensajes: 281
  • Reputación: +153/-0
    • Ver Perfil
Re:Quitar icono de MIDIForm
« Respuesta #10 en: Octubre 14, 2012, 03:21:16 am »
Estimado YAcosta

Espero que el código sea lo que estas necesitando.
 
Saludos desde algún lugar de Lima-Perú
Saludos, desde algún lugar de Lima-Perú

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Quitar icono de MIDIForm
« Respuesta #11 en: Octubre 14, 2012, 03:24:53 am »
Albertomi, muchas gracias, es poco código como justamente quería y tu proyecto efectivamente funciona, pero al llevar las declaraciones al mio, y llevar el código al load... también el icono ghost a la carpeta de mi proyecto... pues no me reproduce ningún cambio en tiempo de ejecución, no entiendo porque no se genera el mismo efecto, voy a seguir revisando.

Muchas gracias!!!
Me encuentras en YAcosta.com

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Quitar icono de MIDIForm
« Respuesta #12 en: Octubre 14, 2012, 03:27:46 am »
YA esta!!! PERFECTO!!!!!

Lo que pasa es que por ciertas validaciones que estoy haciendo cargo un formulario hijo en el Initialice y no lo puedo mover de alli por X motivos. Asi que puse tu codigo antes de levantar dicho form hijo y PERFECTO!!!

Muchas gracias doc, te debo un par de chelas pa cuando te vengas por Ate!!!

Saludos
Me encuentras en YAcosta.com

ADONAIRAFA

  • Gigabyte
  • ****
  • Mensajes: 291
  • Reputación: +37/-1
  • Que bien se siente al terminar un programa !!!
    • Ver Perfil
Re:Quitar icono de MIDIForm
« Respuesta #13 en: Octubre 14, 2012, 03:32:24 am »
Bueno Yvan, ahora si entiendo lo que querías !!! ::) :o

Por lo de chavez el C.D.S.M. !!! (Ojo que no es "cadena de suministros marinos", por si acaso, Je, Je !!!), 6 años más !!! pero que carajo !!! a seguir adelante !!!

Bien, albertomi !!! no j...!!! te vamos a postular para diputado (a algo más bravo :o) !!!

Ese código n.p.i. que no sabía que existía, porque la inquietud de Yvan la tuve una vez, y lo que me provocó, fue tirarle un atentado a microsoft por ese "detallito insolvente", pero veo que ahora tiene solución !!! excelente !!!

Lo voy a usar para probarlo en los MDI de VB 2008 (ya que aunque casi no hacen falta las API'S, se podría implementar).

Saludos !!!


Edición: No es que quiera decir que ya no se usan las API's, sino que con el poder y facilidades con que se pueden realizar las aplicaciones, No habría que recurrir por obligatoriedad (por así decirlo) a las API's como hay que hacerlo en más de una ocasión en VB 6.0, cuando uno quiere salirse del "estandar visual" ofrecido.
« última modificación: Octubre 14, 2012, 08:43:22 pm por ADONAIRAFA »
Hay dos tipos de personas: Los que siguen un camino... y los que hacen camino al avanzar !!!

ADONAIRAFA

  • Gigabyte
  • ****
  • Mensajes: 291
  • Reputación: +37/-1
  • Que bien se siente al terminar un programa !!!
    • Ver Perfil
Re:Quitar icono de MIDIForm
« Respuesta #14 en: Octubre 14, 2012, 08:54:12 pm »
Bueno Alberomi, como te dije hice las pruebas en Win7 con VB 2008 (si ya se, que para algunos, esta respuesta debería ir en el apartado de VB .Net  ::)) y estor fueron los resultados:



Lo bueno de todo, es que el MDI no pierde su 'movilidad'  :o :o :o

Este fue el código con muy ligeras modificaciones (el parámetro hWnd es sustituído por Handle)

Código: (VB) [Seleccionar]
Public Class frmMDIWithCBT

        Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Integer, ByVal nIndex As Integer)As Integer
        Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA"(ByVal hwnd As Integer,ByVal nIndex As Integer, ByVal dwNewLong As Integer)As Integer

        Private Const WS_CLOSEBOX As Long = &H80000
        Private Const WS_MAXIMIZEBOX As Long = &H10000
        Private Const WS_MINIMIZEBOX As Long = &H20000
        Private Const GWL_STYLE As Long = (-16)

        Private Sub frmMDIWithCBT_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
                Dim lWnd As Long = 0
                '//
                lWnd = GetWindowLong(Me.Handle.ToInt32, GWL_STYLE)
                lWnd = lWnd And Not (WS_MINIMIZEBOX)
                lWnd = lWnd And Not (WS_MAXIMIZEBOX)
                lWnd = lWnd And Not (WS_CLOSEBOX)
                lWnd = SetWindowLong(Me.Handle.ToInt32, GWL_STYLE, CInt(lWnd))
        End Sub

End Class


Saludos !!!  ;D


Manuel F. Borrego S. 8)
Barcelona. Venezuela.
« última modificación: Octubre 14, 2012, 08:57:45 pm por ADONAIRAFA »
Hay dos tipos de personas: Los que siguen un camino... y los que hacen camino al avanzar !!!