Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Win32 Api

Estas en el tema de Win32 Api en el foro de C/C++ en Foros del Web. Estoy haciendo el siguiente programa, que lo unico que tiene que hacer es abrir una ventana sin menu ni nada, pero quiero que parta maximizada, ...
  #1 (permalink)  
Antiguo 17/10/2006, 15:38
 
Fecha de Ingreso: octubre-2006
Mensajes: 7
Antigüedad: 17 años, 6 meses
Puntos: 0
Win32 Api

Estoy haciendo el siguiente programa, que lo unico que tiene que hacer es abrir una ventana sin menu ni nada, pero quiero que parta maximizada, pero no funciona. Si alguien me puede ayudar, estaria muy agradecido.El codigo es:
Código:
#include <windows.h>
#include <commctrl.h>

#define _WIN32_IE 0x0500

LRESULT CALLBACK MainWndProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
	switch (msg)
	{
		case WM_DESTROY:
			PostQuitMessage(0);
			break;
		default:
			return DefWindowProc(hwnd,msg,wParam,lParam);
	}
	return 0;
}

HWND CreateMainWindow(HINSTANCE hInstance)
{
	InitCommonControls();
	HWND hTmp; // Temporary handle to a window
	WNDCLASSEX wcx;
	ZeroMemory(&wcx,sizeof(WNDCLASSEX));
	wcx.cbSize = sizeof(WNDCLASSEX); 
	wcx.style = CS_HREDRAW|CS_VREDRAW |CS_DBLCLKS; // Class styles
	wcx.lpfnWndProc = (WNDPROC)MainWndProc; // Pointer to the callback proc
	wcx.cbClsExtra = 0; 
	wcx.cbWndExtra = 0;
	wcx.hInstance = hInstance; // Instance of the application
	wcx.hIcon = NULL; // Class Icon
	wcx.hCursor = LoadCursor(NULL, IDC_ARROW); // Class Cursor
	wcx.hbrBackground = (HBRUSH)(COLOR_WINDOW); // Background brush
	wcx.lpszMenuName = NULL; // Menu resource
	wcx.lpszClassName = "Draw"; // Name of this class
	wcx.hIconSm = NULL; // Small icon for this class
	if (!RegisterClassEx(&wcx))
		return 0;
	hTmp = CreateWindowEx(0, //Extended window style
			"Draw", // Window class name
			"Draw 1", // Window title
			WS_OVERLAPPEDWINDOW | WS_MAXIMIZE, // Window style
			CW_USEDEFAULT,CW_USEDEFAULT, // (x,y) pos of window
			CW_USEDEFAULT,CW_USEDEFAULT, // Width, height of window
			HWND_DESKTOP, // HWND of the parent
			NULL, // Handle to menu
			hInstance, // Handle to application instance
			NULL); // Pointer to window creation data
	return hTmp;
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, INT nCmdShow)
{
	MSG msg; // MSG structure to store messages
	hwndMain = (HWND)CreateMainWindow(hInstance);
	if (!hwndMain)
		return 0;
	ShowWindow(hwndMain,SW_SHOW);
	while (GetMessage(&msg,NULL,0,0))
	{
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}
	return msg.wParam;
}
  #2 (permalink)  
Antiguo 17/10/2006, 21:40
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años
Puntos: 2
si lo intentaste en el estilo de ventana y no funciono, intentalo en ShowWindow

ejem:

ShowWindow(hwnd, SW_MAXIMIZE);

agregar que:

no creo que sea necesario el ZeroMemory() con una variable, esta se usa con punteros, es decir recerva memoria y la llena con ceros.

en C cuando declaramos una variable el compilador se encarga de recerbar la memoria necesaria para ese tipo.

saludos.

Última edición por Nivel7; 17/10/2006 a las 21:46
  #3 (permalink)  
Antiguo 18/10/2006, 03:01
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Cita:
Iniciado por Nivel7 Ver Mensaje
no creo que sea necesario el ZeroMemory() con una variable, esta se usa con punteros, es decir recerva memoria y la llena con ceros.
Esa variable es local y por lo tanto esta en la pila: sus datos son indefinidos y es una buena practica usar ZeroMemory para inicializar todos sus campos a 0.
  #4 (permalink)  
Antiguo 18/10/2006, 06:33
 
Fecha de Ingreso: octubre-2006
Mensajes: 7
Antigüedad: 17 años, 6 meses
Puntos: 0
muchas gracias, asi me funciono
  #5 (permalink)  
Antiguo 18/10/2006, 19:20
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años
Puntos: 2
Cita:
Iniciado por Eternal Idol Ver Mensaje
Esa variable es local y por lo tanto esta en la pila: sus datos son indefinidos y es una buena practica usar ZeroMemory para inicializar todos sus campos a 0.
si esa practica fuera recomendable, todas las variables de una funcion de C, tendrian que ponerse a 0.

si quiere puede hacerlo, pero como puedes ver, la estructura WNDCLASSEX, no la usara sin antes llenar todos sus campos con datos validos.
por tanto la tarea es innecesaria.

pero si el gusta dejarlo asi, esta bien.

Saludos.
  #6 (permalink)  
Antiguo 19/10/2006, 00:08
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Cita:
Iniciado por Nivel7 Ver Mensaje
si esa practica fuera recomendable, todas las variables de una funcion de C, tendrian que ponerse a 0.
Si, y los programadores solemos usar tipo variable = 0; aunque te sorprenda.

Cita:
Iniciado por Nivel7 Ver Mensaje
si quiere puede hacerlo, pero como puedes ver, la estructura WNDCLASSEX, no la usara sin antes llenar todos sus campos con datos validos.
por tanto la tarea es innecesaria.
"no creo que sea necesario el ZeroMemory() con una variable, esta se usa con punteros, es decir recerva memoria y la llena con ceros."

Por favor ... no tengo ganas de perder el tiempo. Eso fue lo que dijiste y no es correcto, esta razon que das AHORA es OTRA y yo respondi a lo que dijiste antes.
  #7 (permalink)  
Antiguo 19/10/2006, 08:43
 
Fecha de Ingreso: febrero-2005
Mensajes: 39
Antigüedad: 19 años, 2 meses
Puntos: 1
Lo de inicializar siempre las variables es basico, si no lo haces siempre tendras que controlarlas más pero lo correcto es hacerlo.

Un saludo!
  #8 (permalink)  
Antiguo 19/10/2006, 12:27
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
La inicializacion siempre es recomendable si, pero hay ocasiones en las que es inecesaria, en este caso ES necesario.

Saludos
  #9 (permalink)  
Antiguo 19/10/2006, 17:02
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años
Puntos: 2
WNDCLASSEX wcx;
ZeroMemory(&wcx,sizeof(WNDCLASSEX));

como puedo ver, wcx, no es un puntero, sino una variable estructura, la cual sera iniciada explicitamente campo a campo.

no veo la necesidad de usar ZeroMemory, ademas de que esta funcion se usa para recervar memoria a punteros y rellenar con 0s.

asi que en este ejemplo es totalmente innecesaria.

si quiere crear la variable iniciada lo mejor es usar inicializacion al estilo C, y no ZeroMemory.

si estoy en un error, creo que tenemos que avisarle a los de MS, que an estado programando mas al crear una WNDCLASSEX sin usar ZeroMemory();

Ejemplo del uso de WNDCLASSEX en MSDN
Código:
#include <windows.h> 
 
// Global variable 
 
HINSTANCE hinst; 
 
// Function prototypes. 
 
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int); 
InitApplication(HINSTANCE); 
InitInstance(HINSTANCE, int); 
LRESULT CALLBACK MainWndProc(HWND, UINT, WPARAM, LPARAM); 
 
// Application entry point. 
 
int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevInstance, 
    LPSTR lpCmdLine, int nCmdShow) 
{ 
    MSG msg; 
 
    if (!InitApplication(hinstance)) 
        return FALSE; 
 
    if (!InitInstance(hinstance, nCmdShow)) 
        return FALSE; 
 
    BOOL fGotMessage;
    while ((fGotMessage = GetMessage(&msg, (HWND) NULL, 0, 0)) != 0 && fGotMessage != -1) 
    { 
        TranslateMessage(&msg); 
        DispatchMessage(&msg); 
    } 
    return msg.wParam; 
        UNREFERENCED_PARAMETER(lpCmdLine); 
} 
 
BOOL InitApplication(HINSTANCE hinstance) 
{ 
    WNDCLASSEX wcx; 
 
    // Fill in the window class structure with parameters 
    // that describe the main window. 
 
    wcx.cbSize = sizeof(wcx);          // size of structure 
    wcx.style = CS_HREDRAW | 
        CS_VREDRAW;                    // redraw if size changes 
    wcx.lpfnWndProc = MainWndProc;     // points to window procedure 
    wcx.cbClsExtra = 0;                // no extra class memory 
    wcx.cbWndExtra = 0;                // no extra window memory 
    wcx.hInstance = hinstance;         // handle to instance 
    wcx.hIcon = LoadIcon(NULL, 
        IDI_APPLICATION);              // predefined app. icon 
    wcx.hCursor = LoadCursor(NULL, 
        IDC_ARROW);                    // predefined arrow 
    wcx.hbrBackground = GetStockObject( 
        WHITE_BRUSH);                  // white background brush 
    wcx.lpszMenuName =  "MainMenu";    // name of menu resource 
    wcx.lpszClassName = "MainWClass";  // name of window class 
    wcx.hIconSm = LoadImage(hinstance, // small class icon 
        MAKEINTRESOURCE(5),
        IMAGE_ICON, 
        GetSystemMetrics(SM_CXSMICON), 
        GetSystemMetrics(SM_CYSMICON), 
        LR_DEFAULTCOLOR); 
 
    // Register the window class. 
 
    return RegisterClassEx(&wcx); 
} 
 
BOOL InitInstance(HINSTANCE hinstance, int nCmdShow) 
{ 
    HWND hwnd; 
 
    // Save the application-instance handle. 
 
    hinst = hinstance; 
 
    // Create the main window. 
 
    hwnd = CreateWindow( 
        "MainWClass",        // name of window class 
        "Sample",            // title-bar string 
        WS_OVERLAPPEDWINDOW, // top-level window 
        CW_USEDEFAULT,       // default horizontal position 
        CW_USEDEFAULT,       // default vertical position 
        CW_USEDEFAULT,       // default width 
        CW_USEDEFAULT,       // default height 
        (HWND) NULL,         // no owner window 
        (HMENU) NULL,        // use class menu 
        hinstance,           // handle to application instance 
        (LPVOID) NULL);      // no window-creation data 
 
    if (!hwnd) 
        return FALSE; 
 
    // Show the window and send a WM_PAINT message to the window 
    // procedure. 
 
    ShowWindow(hwnd, nCmdShow); 
    UpdateWindow(hwnd); 
    return TRUE; 
 
}
LINK: http://msdn.microsoft.com/library/de...singwindow.asp


Saludos.

Última edición por Nivel7; 19/10/2006 a las 17:09
  #10 (permalink)  
Antiguo 20/10/2006, 00:12
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Cita:
Iniciado por Nivel7 Ver Mensaje
WNDCLASSEX wcx;
ZeroMemory(&wcx,sizeof(WNDCLASSEX));

como puedo ver, wcx, no es un puntero, sino una variable estructura, la cual sera iniciada explicitamente campo a campo.
Como ya se te dijo esa razon no tiene ninguna validez. Es mas, es una reverenda estupidez. Da exactamente lo mismo que sea una variable local (¿Variable estructura? ¿Eso tambien lo dice Microsoft? ...). Las variables locales usan la pila y sus datos estan INDEFINIDOS.

Cita:
Iniciado por Nivel7 Ver Mensaje
no veo la necesidad de usar ZeroMemory, ademas de que esta funcion se usa para recervar memoria a punteros y rellenar con 0s.

asi que en este ejemplo es totalmente innecesaria.
ZeroMemory no reserva nada de nada. ¿Eso donde lo vemos en la referencia de malloc? ¿En la real academia tambien ponen recervar? Lo que es innecesario en este ejemplo es poner NULL y 0 en los campos que ya no lo necesitan. ¿Que es lo innecesario acaso? ¿Lo que se hace antes? No, lo redundante es asignar valores que ya tienen a los campos (NULL y 0 en este caso).


Cita:
Iniciado por Nivel7 Ver Mensaje
si estoy en un error, creo que tenemos que avisarle a los de MS, que an estado programando mas al crear una WNDCLASSEX sin usar ZeroMemory();
No es un error sino muchos. Se escribe HAN y no an, reserva y no recerva ... ZeroMemory no reserva absolutamente NADA. Y la verdad es gracioso que uses un ejemplo de Microsoft para intentar sostener una ridiculez de este calibre, en la red tambien hay montones de ejemplos usando ZeroMemory. ¿Funcionan? Si, perfectamente.

"no creo que sea necesario el ZeroMemory() con una variable, esta se usa con punteros, es decir recerva memoria y la llena con ceros."

En fin ... que no sabes como trabajan las variables locales y yo pierdo el tiempo repitiendo lo mismo a un amateur ...
  #11 (permalink)  
Antiguo 20/10/2006, 01:31
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Como tengo un ratito voy a poner lo que a mi me parece redundante en el codigo generado por el VC++:

Código:
  ;en este punto nuestra variable WNDCLASSEX tiene todos sus campos indefinidos
  push        30h
  push        0
  lea         eax,[ebp-30h]
  push        eax
  call        _memset
  ;en este punto todos los campos tienen como valor 0
  add         esp,0Ch
  mov         dword ptr [ebp-30h],30h
  ;wcx.cbSize = 0x30 = 48
  mov         dword ptr [ebp-2Ch],0Bh
  ;wcx.style = 0xB = CS_HREDRAW (0x2) | CS_VREDRAW (0x1) | CS_DBLCLKS (0x8)
  mov         dword ptr [ebp-28h],offset ?MainWndPr
  ;wcx.lpfnWndProc = (WNDPROC)MainWndProc;
  mov         dword ptr [ebp-24h],0
  ;wcx.cbClsExtra = 0; << redundante
  mov         dword ptr [ebp-20h],0
  ;wcx.cbWndExtra = 0; << redundante
  mov         ecx,dword ptr [ebp+8]
  mov         dword ptr [ebp-1Ch],ecx
  ;wcx.hInstance = hInstance; [segundo parametro]
  mov         dword ptr [ebp-18h],0
  ;wcx.hIcon = NULL; << redundante
  push        7F00h
  push        0
  call        dword ptr [__imp__LoadCursorA@8]
  mov         dword ptr [ebp-14h],eax
  ;wcx.hCursor = LoadCursor(NULL, IDC_ARROW);
  mov         dword ptr [ebp-10h],5
  ;wcx.hbrBackground = (HBRUSH)(COLOR_WINDOW);
  mov         dword ptr [ebp-0Ch],0
  ;wcx.lpszMenuName = NULL; << redundante
  mov         dword ptr [ebp-8],offset $SG57435
  ;wcx.lpszClassName = "Draw";
  mov         dword ptr [ebp-4],0
  ;wcx.hIconSm = NULL; << redundante 

Última edición por Eternal Idol; 20/10/2006 a las 01:37
  #12 (permalink)  
Antiguo 20/10/2006, 01:39
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años
Puntos: 2
Claro. si usamos ZeroMemory, sera redundante volver a poner a NULL o 0, los campos de la estructura que no se utilizaran.
en eso estoy de acuerdo.

solo que en este caso la variable WNDCLASSEX, sera asignada campo a campo, y los campos que se ponen a NULL, son muy pocos 1 u 2.
esto segun veo yo, es mejor no usar ZeroMemory, y asignar esos campos uno a uno.

si el caso fuera que tan solo trabajaremos o asignaremos 1, 2 o 3, campos de esta estructura seria una buena opcion usar ZeroMemory, para evitar poner a NULL, campo a campo.

repito... yo en este caso no usaría ZeroMemory().
para mí, es redundante poner a 0, todos los campo, cuando depues tendre que asignar campo a campo una vez mas.

Saludos.

Última edición por Nivel7; 20/10/2006 a las 02:06
  #13 (permalink)  
Antiguo 20/10/2006, 01:56
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Cita:
Iniciado por Nivel7 Ver Mensaje
y le recomendaría a FlyFox, que en este caso no lo usara.
solo en casos en que trabaje con pocos campos de una estructura.
Entonces yo le recomendaria que no te tomara muy en serio. No sea cosa que empezara a reservar memoria con ZeroMemory ...
  #14 (permalink)  
Antiguo 20/10/2006, 02:22
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años
Puntos: 2
para eso hay funciones especificas, y si recomiendas no tomar en serio a un miembro de este Foro, si que cusas conflictos.

en fin, tal vez en este caso lo siga usando pero pronto se dara cuenta que es redundante.
  #15 (permalink)  
Antiguo 20/10/2006, 02:30
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Cita:
Iniciado por Nivel7 Ver Mensaje
para eso hay funciones especificas, y si recomiendas no tomar en serio a un miembro de este Foro, si que cusas conflictos.
Recomendaria hacerlo si insistieras en difundir ideas falsas y no fueras capaz de reconocer en lo mas minimo tu error. Si en este caso seguis sosteniendo esta estupidez: "no creo que sea necesario el ZeroMemory() con una variable, esta se usa con punteros, es decir recerva memoria y la llena con ceros." entonces mi recomendacion es esa. Por otro lado no me molesta causar conflictos, prefiero causar conflictos que confundir a los demas.

Cita:
Iniciado por Nivel7 Ver Mensaje
en fin, tal vez en este caso lo siga usando pero pronto se dara cuenta que es redundante.
Esta claro que no comprendes como trabaja C ni muchisimo menos el codigo que deje arriba. Redundantes son las asignaciones de 0 a campos que ya tienen ese valor.
  #16 (permalink)  
Antiguo 20/10/2006, 02:49
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años
Puntos: 2
la cuestion aqui es que no siempre podemos estar usando ZeroMemory con todas nuestras variables, sean lo que sean.

si tu decides hacerlo esta bien. yo no lo lo haría. y tampoco te pases diciendo que mi comentario es una estupides, eso ya es una ofensa, es suficiente decir "Equivocado".

si ya estas molesto por esta discucion, pues no insistas, yo estoy tranquilo y no he ofendido a nadie. pero seguire insistiendo.

y asta aqui la discucion si quieres seguir adelante, yo iré a dormir.

Saludos.

Última edición por Nivel7; 20/10/2006 a las 02:58
  #17 (permalink)  
Antiguo 20/10/2006, 02:58
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Cita:
Iniciado por Nivel7 Ver Mensaje
la cuestion aqui es que no siempre podemos estar usando ZeroMemory con todas nuestras variables, sean lo que sean.
Por supuesto, ZeroMemory se usa para estructuras como en este caso.

Cita:
Iniciado por Nivel7 Ver Mensaje
si tu decides hacerlo esta bien. yo no lo lo haría. y tampoco te pases diciendo que mi comentario es una estupides, eso ya es una ofensa, es suficiente decir "Equivocado".
No, uno esta equivocado una vez, cuando decide seguir insistiendo con la misma equivocacion ya se transforma en una estupidez.

Cita:
Iniciado por Nivel7 Ver Mensaje
si ya estas molesto por esta discucion, pues no insistas, yo estoy tranquilo y no he ofendido a nadie. pero seguire insistiendo.
No estoy molesto, realmente ya no me sorpenden para nada los pseudo-programadores en este ni en ningun otro foro, digan la burrada que digan. Segui insistiendo ... asi como yo dire que no te tomen en cuenta muy en serio ya que no sabes de lo que hablas.
  #18 (permalink)  
Antiguo 20/10/2006, 05:05
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años
Puntos: 2
bueno, esto no termino aqui, jaja.
terminamos en privado, mentando madres por doquier. jaja.

no en realidad todo concluyo bien, termine aceptando que no conocia el funcionamiento de ZeroMemory(), al pensar que trabajaba como calloc(), y
grasias a la argumentacion de Etrenal Idol, comprendí la importancia de usar esta funcion(ZeroMemory), sobre todo para obterner un codigo mas seguro.

eso es todo.
Saludos.
  #19 (permalink)  
Antiguo 20/10/2006, 06:15
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Nivel7, a ver, la función ZeroMemory hace lo que dice, llenar de ceros una región de memoria, nada más. Te confundes con calloc().

Dicha función es normal que un SO la tenga porque su uso es frecuente, precisamente porque es aconsejable inicializar TODA variable a un valor conocido (hay lenguajes, y compiladores de C/C++ que lo hacen ya de por sí). El tiempo para hacerlo es ínfimo y se evitan errores tontos.

Un consejo: Si es que no conocías a Eternal Idol, cuando hables con él y veas que no cambia de opinión después de 2 envites ten por cuenta que el equivocado seguramente seas tú... más aún si andas discutiendo de Win32/64. ;)

Ah! Eternal Idol, bienvenido a los viejos tiempos de nuevo :)
  #20 (permalink)  
Antiguo 20/10/2006, 06:27
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Cita:
Iniciado por MaxExtreme Ver Mensaje
Ah! Eternal Idol, bienvenido a los viejos tiempos de nuevo :)
Se agradece; ya veremos cuanto duro esta vez
  #21 (permalink)  
Antiguo 20/10/2006, 12:13
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Al parecer Eternal Idol tiene problemas de conducta

según los psicólogos

es broma
  #22 (permalink)  
Antiguo 20/10/2006, 12:15
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Cita:
Iniciado por Developer9 Ver Mensaje
Al parecer Eternal Idol tiene problemas de conducta

según los psicólogos

es broma
Si, amigo incontinente verbal
  #23 (permalink)  
Antiguo 20/10/2006, 14:48
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Jajajajaja. Vamos Eternal Idol, namas trata de que no te corran de nuevo.

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:26.