{"id":158,"date":"2011-08-03T16:50:56","date_gmt":"2011-08-03T19:50:56","guid":{"rendered":"http:\/\/leandroascierto.com\/blog\/?p=158"},"modified":"2011-08-25T07:41:28","modified_gmt":"2011-08-25T10:41:28","slug":"mdi-taskbar","status":"publish","type":"post","link":"https:\/\/leandroascierto.com\/blog\/mdi-taskbar\/","title":{"rendered":"MDI TaskBar"},"content":{"rendered":"<p style=\"text-align: justify;\">Control de usuario para crear una barra de tareas dentro de un formulario MDI, act\u00faa pr\u00e1cticamente igual que la barra de tareas del explorador de Windows, la idea es darle al usuario una mejor forma de moverse dentro del formulario MDI, sobretodo cuando hay muchas ventanas abiertas. su uso es muy sencillo solo vasta con agregar un solo control el MDI y este se encarga de hacer todo el trabajo.<br \/>\nEn el ejemplo de descarga como complemento\u00a0 agregue dos m\u00f3dulos, uno de ellos es la clase\u00a0<a href=\"https:\/\/leandroascierto.com\/blog\/2011\/07\/clsbuttonnc\/\">ClsButtonNC<\/a>\u00a0para crear un efecto muy parecido al bot\u00f3n inicio de Windows, y el otro modulo es MdiFullScreen (que se encuentra en la secci\u00f3n de\u00a0<a href=\"http:\/\/www.leandroascierto.com.ar\/tips.php\">Tips<\/a>) este ultimo pone en pantalla completa al formulario MDI cuando esta maximizado.<br \/>\nEl control ucMDItaskBar internamente crea un ToolBar el cual cuenta con una propiedad para ponerle un Skin, tambi\u00e9n tiene soporte para caption Unicode e iconos de 32 bits si es que algunos de los formularios dentro del MDI tiene estos elementos.<br \/>\nTal como como Windows si no se quiere mostrar el formulario en la barra, solo vasta con que pongan al formulario hijo en tiempo de edici\u00f3n ShowInTaskBar = False.<br \/>\nEl ucMDItaskBar utiliza Subclasificaci\u00f3n y es SafeMode (Modo seguro) , pero tengan en cuenta que la clase ClsButtonNC no, asi que No presionar el Stop del IDE de VB6.<\/p>\n<p>Detalles de sus propiedades y funciones:<\/p>\n<ul>\n<li style=\"text-align: justify;\"><em>Initialize<\/em>: Esta funci\u00f3n es encaso que si dentro del evento Load del formulario MDI se carga alg\u00fan formulario es necesaria llamarla para inicializar el control antes que el formulario, de lo contrario lo este lo har\u00e1 autom\u00e1ticamente, su \u00fanico par\u00e1metro es el hwnd del formulario MDI.<\/li>\n<li style=\"text-align: justify;\"><em>BackColor<\/em>: En caso que no se utilice un Skin este utiliza el color del fondo asignado.<\/li>\n<li style=\"text-align: justify;\"><em>ButtonsWidth<\/em>: Devuelve o establece el ancho de los botones de la barra.<\/li>\n<li style=\"text-align: justify;\"><em>ButtonsHeight<\/em>: Devuelve o establece el alto de los botones de la barra.<\/li>\n<li style=\"text-align: justify;\"><em>IconSize<\/em>: Devuelve o establece el tama\u00f1o de icono que queramos utilizar.<\/li>\n<li style=\"text-align: justify;\"><em>SetIndent<\/em>: Devuelve o establece la ubicaci\u00f3n izquierda donde comienzan a mostrarse los botones, esto es por si queremos utilizar un bot\u00f3n Inicio, tener en cuenta que agregar un control sobre la barra no dar\u00e1 buenos resultados, lo aconsejable es utilizar la clase\u00a0<a href=\"https:\/\/leandroascierto.com\/blog\/2011\/07\/clsbuttonnc\/\">ClsButtonNC<\/a>, o utilizar un PictureBox como contenedor para poner el bot\u00f3n y al lado la barra.<\/li>\n<li style=\"text-align: justify;\"><em>Align<\/em>: Devuelve o establece la ubicaci\u00f3n por donde se mover\u00e1 la barra.(si bien soporta todas las posiciones lo aconsejable es vbAlignBottom)<\/li>\n<li style=\"text-align: justify;\"><em>SkinPicture<\/em>: Devuelve o establece una imagen que se utilizara como decoraci\u00f3n de la barra (el formato utilizado pueden verlo dentro del ejemplo).<\/li>\n<li style=\"text-align: justify;\"><em>MoveMode<\/em>: Indica a la clase en qu\u00e9 sentido debe mover el bot\u00f3n cuando la ventana padre se mueva o cambie de tama\u00f1o.<\/li>\n<li style=\"text-align: justify;\"><em>Enabled<\/em>: Devuelve o establece si el control est\u00e1 o no habilitado<\/li>\n<li style=\"text-align: justify;\"><em>Font<\/em>: Devuelve o establece la Fuente para la barra.<\/li>\n<li style=\"text-align: justify;\"><em>hwndToolbar<\/em>: Devuelve\u00a0 el Handle del ToolbarWindow32 de la barra<\/li>\n<li style=\"text-align: justify;\"><em>hwndUserControl<\/em>: Devuelve\u00a0 el Handle del control de usuario<\/li>\n<li style=\"text-align: justify;\"><em>hwndMDIClient<\/em>: Devuelve el Handle MDIClient del formulario MDI<\/li>\n<\/ul>\n<p align=\"center\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/www.leandroascierto.com\/blog\/imagenes\/ucMDItaskbar1.png\" alt=\"ucMDItaskbar1\" width=\"557\" height=\"452\" \/><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/www.leandroascierto.com\/blog\/imagenes\/ucMDItaskbar2.png\" alt=\"ucMDItaskbar1\" width=\"555\" height=\"450\" \/><\/p>\n<p align=\"center\"><a href=\"https:\/\/leandroascierto.com\/blog\/descarga.php?url=ucMDItaskbar.zip\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" title=\"Descargar\" src=\"https:\/\/leandroascierto.com\/blog\/descarga.php?file=ucMDItaskbar.zip\" alt=\"\" width=\"280\" height=\"61\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Control de usuario para crear una barra de tareas dentro de un formulario MDI, act\u00faa pr\u00e1cticamente igual que la barra de tareas del explorador de Windows, la idea es darle al usuario una mejor forma de moverse dentro del formulario MDI, sobretodo cuando hay muchas ventanas abiertas. su uso es muy sencillo solo vasta con <a href='https:\/\/leandroascierto.com\/blog\/mdi-taskbar\/' class='excerpt-more'>[&#8230;]<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[26],"tags":[31,5,32],"class_list":["post-158","post","type-post","status-publish","format-standard","hentry","category-controles-de-usuarios","tag-api","tag-mdi","tag-toolbarwindow32","category-26-id","post-seq-1","post-parity-odd","meta-position-corners","fix"],"_links":{"self":[{"href":"https:\/\/leandroascierto.com\/blog\/wp-json\/wp\/v2\/posts\/158","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/leandroascierto.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/leandroascierto.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/leandroascierto.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/leandroascierto.com\/blog\/wp-json\/wp\/v2\/comments?post=158"}],"version-history":[{"count":7,"href":"https:\/\/leandroascierto.com\/blog\/wp-json\/wp\/v2\/posts\/158\/revisions"}],"predecessor-version":[{"id":161,"href":"https:\/\/leandroascierto.com\/blog\/wp-json\/wp\/v2\/posts\/158\/revisions\/161"}],"wp:attachment":[{"href":"https:\/\/leandroascierto.com\/blog\/wp-json\/wp\/v2\/media?parent=158"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/leandroascierto.com\/blog\/wp-json\/wp\/v2\/categories?post=158"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/leandroascierto.com\/blog\/wp-json\/wp\/v2\/tags?post=158"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}