Programadores dedicados a C sharp .Net, eres nuevo, experto o quieres aprender a programar en C Sharp, aquí encontraras todo lo que necesitas.
 
ÍndiceCalendarioFAQBuscarMiembrosGrupos de UsuariosChatRegistrarseConectarse
Conectarse
Nombre de Usuario:
Contraseña:
Entrar automáticamente en cada visita: 
:: Recuperar mi contraseña
Últimos temas
Buscar
 
 

Resultados por:
 
Rechercher Búsqueda avanzada
Síguenos:
Crear foro Crear foro Crear foro

Comparte | 
 

 Redimensionar controles en tiempo de ejecución.

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
Guillermo Javier Salazar
STAFF TEAM
STAFF TEAM


Mensajes : 181
Puntos : 349
Localización : México
Comentarios : El azar favorece a una mente preparada.

MensajeTema: Redimensionar controles en tiempo de ejecución.   Vie Mar 11, 2011 8:16 pm

Redimensionar controles en tiempo de ejecución.

Les traigo este código para cambiar el tamaño de un control en tiempo de ejecución desde sus bordes, primero la librería:

using System.Runtime.InteropServices;

Ahora declaramos las APIs y sus constantes:

-------------------------------------------------------
[DllImport("user32.DLL", EntryPoint = "GetWindowLong")]
static extern int GetWindowLong(
int hWnd,
int nIndex);
[DllImport("user32.DLL", EntryPoint = "SetWindowLong")]
static extern int SetWindowLong(
int hWnd,
int nIndex,
int dwNewLong);
[DllImport("user32.DLL", EntryPoint = "SetWindowPos")]
static extern bool SetWindowPos(
int hWnd,
int hWndInsertAfter,
int X,
int Y,
int cx,
int cy,
uint uFlags);

const int GWL_STYLE = (-16);
const int WS_THICKFRAME = 0x40000;
const int SWP_DRAWFRAME = 0x20;
const int SWP_NOMOVE = 0x2;
const int SWP_NOSIZE = 0x1;
const int SWP_NOZORDER = 0x4;
-------------------------------------------------------

Ahora dentro del evento MouseDown de algún control ponemos el siguiente código:

-------------------------------------------------------
Código:
if (e.Button == MouseButtons.Right)
            {
                Control control = (Control)sender;
                try
                {
                    int Style = GetWindowLong(control.Handle.ToInt32(), GWL_STYLE);
                    if ((Style & WS_THICKFRAME) == WS_THICKFRAME)
                    {
                        Style = Style ^ WS_THICKFRAME;
                    }
                    else
                    {
                        Style = Style | WS_THICKFRAME;
                    }
                    SetWindowLong(control.Handle.ToInt32(), GWL_STYLE, Style);
                    SetWindowPos(control.Handle.ToInt32(), this.Handle.ToInt32(), 0, 0, 0, 0, SWP_NOZORDER | SWP_NOSIZE | SWP_NOMOVE | SWP_DRAWFRAME);
                }
                catch { }
            }
-------------------------------------------------------

Listo, ahora solo le damos click derecho y podemos redimensionarlo. saludos a todos!
Volver arriba Ir abajo
Ver perfil de usuario http://cspromex.activo.mx
 
Redimensionar controles en tiempo de ejecución.
Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.
 Temas similares
-
» Error Catastrófico y Error 9 en tiempo de ejecución
» Por Favor: Qué Rayos pasa con este código? (VBA vs Macro)
» Vba Excel error '6' en tiempo de ejecución Desbordamiento
» Tiempo de arranque
» Demoscraciat - Volver en el tiempo (Literal xD)

Permisos de este foro:No puedes responder a temas en este foro.
CSPromex :: PROGRAMACIÓN EN C# :: Código abierto-
Cambiar a: