C

CycloneSoft

Usuario

Primer post: 20 abr 2017Último post: 27 oct 2017
11
Posts
80
Puntos totales
8
Comentarios
Introducción a la programación - mis apuntes
Introducción a la programación - mis apuntes
Apuntes Y MonografiasporAnónimo4/22/2017

"Divide y conquistarás" El arte de la guerra Imagen extraída de: http://blog.nubelo.com Divide un problema para resolverlo. Cuanto más parte, mejor! LA PROGRAMACIÓN SE BASA EN TOMAS DE DECISIONES, DECISIONES CORRECTAS ESTRUCTURAS DE CONTROL 1) Condicionales 2) Estructuras repetitivas - "Bucles" 1) Condicionales Ej: "SI el teléfono tiene tono entonces ---Hablo sino espero" CONDICIÓN - ACCIÓN Tipos de condicionales Incompletas o Simples Si se cumple una condición, entonces debe realizarse una acción. Ej: SI condición 1 entonces ---acción 1 Fin SI Completas Si se cumple una condición, entonces se debe realizar una acción, sino, otra. Ej: SI condición 1 entonces ---acción 1 SINO ---acción 2 FIN SI Anidadas Si se cumple una condición, otra condición, entonces se debe realizar una acción, sino, otra. Ej: SI condición 1 entonces ---SI condición 2 ------acción 1 --- SINO --- ---acción 2 FIN SI Múltiple Si se cumple una condición Y/O otra condición, entonces se debe realizar una acción, sino, otra. Ej: SI condición 1 Y condición 2 O condición 3 entonces ---acción 1 SINO ---acción 2 FIN SI Bucles Bucles de control anterior MIENTRAS Ej: MIENTRAS condición 1 ---hacer X FIN MIENTRAS Bucles de control posterior Continuará...

0
5
Introducción a la programación - mis apuntes
Introducción a la programación - mis apuntes
Apuntes Y MonografiasporAnónimo4/22/2017

"Divide y conquistarás" El arte de la guerra Imagen extraída de: http://blog.nubelo.com Divide un problema para resolverlo. Cuanto más parte, mejor! LA PROGRAMACIÓN SE BASA EN TOMAS DE DECISIONES, DECISIONES CORRECTAS ESTRUCTURAS DE CONTROL 1) Condicionales 2) Estructuras repetitivas - "Bucles" 1) Condicionales Ej: "SI el teléfono tiene tono entonces ---Hablo sino espero" CONDICIÓN - ACCIÓN Tipos de condicionales Incompletas o Simples Si se cumple una condición, entonces debe realizarse una acción. Ej: SI condición 1 entonces ---acción 1 Fin SI Completas Si se cumple una condición, entonces se debe realizar una acción, sino, otra. Ej: SI condición 1 entonces ---acción 1 SINO ---acción 2 FIN SI Anidadas Si se cumple una condición, otra condición, entonces se debe realizar una acción, sino, otra. Ej: SI condición 1 entonces ---SI condición 2 ------acción 1 --- SINO --- ---acción 2 FIN SI Múltiple Si se cumple una condición Y/O otra condición, entonces se debe realizar una acción, sino, otra. Ej: SI condición 1 Y condición 2 O condición 3 entonces ---acción 1 SINO ---acción 2 FIN SI Bucles Bucles de control anterior MIENTRAS Ej: MIENTRAS condición 1 ---hacer X FIN MIENTRAS Bucles de control posterior Continuará...

0
0
B
Base de datos: mis apuntes
Apuntes Y MonografiasporAnónimo10/6/2017

Base de datos - SQL Server de Windows REGISTRO Por ejemplo: (Los siguientes dentro del registro se denominan campos) I.d. - identificador C.I.: Nombre:Apellido:Teléfono: Tipo de Campos Numérico: si es entero (int- hasta 9999)/(smallint - hasta 99)/ (bigint 99999999)Texto (txt)Cadena de caracteres (varchar)Fecha (date)Booleanos (bit - si o no / true o false / 0 o 1)(Hay muchos otros que pueden indagar en la web) De acuerdo a los diferentes tipos de datos numéricos, cada uno debe ver lo que más conviene. Entonces: I.d - numeric (8) - 8 lugares en el campo I.d (identificador, por ejemplo I.d. de un funcionario) - BIGINT, y para que a cada uno me de un número siguiente debo especificar: autoincremental. Analizar para casos nulos: por ejemplo en el caso de la cédula, NO NULO, o sea que no puede quedar vacío. En el caso del nombre hay que usar VARCHAR, e indicar el largo. Por ejemplo 25 caracteres, o sea VARCHAR (25), de igual manera para el apellido. Para el caso de los teléfono, se debe usar cadena de caracteres. Un ejemplo es por la extensión +54 ... +598... Ademas el 0, no sale en el sistema. Entonces el teléfono debe ser VARCHAR (15) Así, ir analizando cada campo que el programador necesite. MER Modelo Entidad Relación (para realizar fuera de la compu, a lápiz y papel) 1- ¿Qué información necesito guardar? Base de datos (para guardar información). 2- No se debe guardar datos que deriven de un cálculo matemático. Por la edad de una persona, lo que se guarda es la fecha de nacimiento.

1
0
B
Base de datos SQL
Apuntes Y MonografiasporAnónimo10/13/2017

Programa que se necesita: SQL server - SQL server manager studio Recuerden que el SQL Server Express es gratuito, pero posee un límite. Primeramente se debe seleccionar una nueva base de datos. Se coloca el nombre del propietario, si se desea. Haremos una tabla. Clic derecho crear nueva tabla (al cerrar nos da la opción de colocar el nombre de dicha tabla). Editar Tablas Recordemos que las tablas son esos cajones de casilleros antiguos. El registro es, cada una de las fichas de esos cajones, que posen campos determinados. Comenzamos con los registros (ver post anterior) Por ejemplo ID.: - Tipo de datos: int (hasta 8 caracteres) y seleccionar si deseamos valor nulo o no. En este caso particular, el id. debe ser autoincremental y no debe ser nulo. Buscar dentro de las propiedades, en el cajón del extremo inferior estas posibilidades. Así, escojamos el tipo de datos para nombre, apellido, telefono (sin acentuación gráfica en el lenguaje de programación)... cédula, rut, etc. DESCARGAR PROGRAMA GRATUITO

15
0
B
Bases de datos SQL server
Apuntes Y MonografiasporAnónimo10/20/2017

Continuamos con nuestros apuntes de SQL Server. Cómo conectar el servidor, desde visual studio Referente a las preguntas en el post anterior, cabe mencionar, que es una serie de información que se va ampliando en las siguientes publicaciones. En este caso, iremos a crear los módulos. Por ejemplo, a modo de crear un programa para un super, lo primero que debo de crear es el módulo de los artículos, de allí en más, todo los otros que crea pertinente. 1er módulo Provedor2do módulo Artículos. (Esta parte la haremos en visual estudio) - Abrimos un nuevo proyecto - windows form Entonces podemos nombrar un primer formulario como FormProvedores (la prolijidad en la programación). Agregamos una carpeta, cada una para lo siguiente: Clases (de programación orientada a objetos), en la carpeta clases, damos clic derecho, agregar nuevo elemento, y vamos a diagrama de clases. Y lo nombramos provedores, acceso publico - ACEPTAR Luego damos detalle de la clase, para tener el panel a mano. Vamos a orígenes de datos - base de datos - nueva conexión - selecciono mi servidor local.

0
0
Introducción a la programación, mis apuntes 2da parte
Introducción a la programación, mis apuntes 2da parte
Apuntes Y MonografiasporAnónimo4/29/2017

"Divide y conquistarás" El arte de la guerra Imagen extraída de: http://blog.nubelo.com Divide un problema para resolverlo. Cuanto más parte, mejor! LA PROGRAMACIÓN SE BASA EN TOMAS DE DECISIONES, DECISIONES CORRECTAS - Apuntes 2da parte - ESTRUCTURAS REPETITIVAS Estructuras repetitivas - "Bucles" En los apuntes anteriores hablamos de Bucles de control anterior, y mencionamos algo de control posterior. En el presente desarrollaremos un poco más. 2a) MIENTRAS Ej: "MIENTRAS condición ---Hacer "X" FIN MIENTRAS ESTRUCTURA REPETITIVA (Cuando no sabemos la cantidad de veces que se va a repetir).- 2b) DESDE --- HASTA Ej: DESDE a = o HASTA a = 10 ---MOSTRAR 5*a Siguiente ---MOSTRAR "Esta fue la tabla del 5" ESTRUCTURA REPETITIVA (Cuando sabemos la cantidad de veces que se va a repetir).- Bucles de Control POSTERIOR Primero hace, luego controla. Ej1: HACER ---acción "X" MIENTRAS condición Ej2: HACER ---acción "X" HASTA condición Código Visual Basic Traducimos Condicional SI ---> If ENTONCES ---> Then SINO ---> Else FIN SI ---> End If Símbolo Comparativos. = ---> Igual <> ---> Diferente <= ---> Menor o igual >= ---> Mayor o igual < ---> Menor > ---> Mayor ! ---> Negación Continuará....

20
0
S
Salvación, impresionismo
ArteporAnónimo10/27/2017

Comparto una tarea de IMAGEN Amigos, hoy les traigo un creación propia, como tal está prohibida su reproducción o publicación sin mención del autor. Diseño en papel sulfito: Obra final: Obra: Salvación Técnica: Acrílico sobre papel Dimensiones: Hoja 1/4 W by Saiclon

0
0
D
Diferentes opciones para Navidad
Hazlo Tu MismoporAnónimo4/20/2017

Navidad 2017 [combinación y diseño] Una pequeña reseña histórica acerca de la navidad: 25 de Diciembre. Navidad, de Natalidad o nacimiento, referido a la persona de Jesús; una de las personas de la Divina Trinidad. De ello, se entiende de acuerdo a la Biblia; Dios Padre, Hijo y Espíritu Santo. Jesucristo, o antiguamente conocido por Jehová o Yavé, nació en la ciudad de Belén, en un pesebre. Para que se cumpliera lo proferido por los profetas del antiguo testamento, así también para que se cumpliese la voluntad de Dios Padre. Hecho que trasciende más allá de cualquier evento histórico, pues ésto es, de la Persona (Dios-Humano) que dividió nuestra historia en dos, lo que se conoce como aC-dC (antes de Cristo - después de Cristo). Se le atribuye como uno de los milagros de mayor impacto para la humanidad, ya que el mismo fue concebido por el mismo Espíritu Santo en el vientre de una virgen (María, madre de Jesús y sus hermanos). Cabe aclarar que la fecha es simbólica, por lo cual, no se refiere a que haya sido efectivamente en la ya mencionada. Recordemos, que lo simbólico no implica importancia en el objeto mismo (símbolo o emblema) sino en aquello que representa. Colores y combinaciones para el árbol navideño Cásico de 2 colores: - Pino tradicional artificial de color verde pasto - Chirimbolos o bolas rojas - Guías o guirnaldas sintética de color dorado - Puntero (estrella) color dorado - Luces cálidas intermitentes lentas o fijas Clásico de varios diseños y colores (pupurrí navideño): - Pino tradicional artificial de color verde pasto - Adornos, chirimbolos o bolas de diversos colores, formas y tamaños, con predominancia de un color dominante. Como por ejemplo el color dorado - Colocación de guía opcional - Luces de colores intermitente con frecuencia moderada Nevado cielo - Pino enramado tradicional artificial de color verde pasto - Chirimbolos o bolas blancas o color plata y azul o celeste - Listones celeste pálido - Puntero de moña de tamaño proporcional - Luces blancas (led) intermitentes lentas Oro Fantasía - Pino fantasía enramado de color dorado - Luces cálidas intermitentes media Enano safiro - Base: Rodaja de pino seco; forrado de arpillera virgen - Tramo de pino tradicional (20 cm) - Adornos varios de tamaño acorde, preferiblemente moños - Luces de forma discreta - Puntero opcional Natural tupido - Escoja adornos livianos - Trate de conseguir piñas pequeñas y darle un tinte plateado - Luces opcional (Recuerde cuidar nuestro ambiente y preservar nuestra ecología, utilice un árbol arraigado en tierra) Ecológico - Envases plásticos Sin duda, hay muchas más ideas en sus mente, igualmente les dejo éstas, para que explote esa creatividad. Saludos!

0
0
C
Crear una ventana en Windows
Hazlo Tu MismoporAnónimo4/20/2017

Ejemplo: simple window A veces las personas ingresan al IRC y preguntan "¿Como hago una ventana...?". Bien, no es tan simple como parece. No es difícil una vez que sepas lo que estás haciendo, pero hay algunas cosas que necesitas hacer para poder crear un ventana. Y son mas de las que pueden ser explicadas en una sala de chat o en una nota rápida. Siempre me gustó hacer las cosas primero y aprenderlas luego... por lo tanto aqui está el código de una simple ventana que será explicado en breve. Código: #include <windows.h> const char g_szClassName[] = "myWindowClass"; // Step 4: the Window Procedure LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch(msg) { case WM_CLOSE: DestroyWindow(hwnd); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd, msg, wParam, lParam); } return 0; } int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { WNDCLASSEX wc; HWND hwnd; MSG Msg; //Step 1: Registering the Window Class wc.cbSize = sizeof(WNDCLASSEX); wc.style = 0; wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wc.lpszMenuName = NULL; wc.lpszClassName = g_szClassName; wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION); if(!RegisterClassEx(&wc)) { MessageBox(NULL, "Window Registration Failed!", "Error!", MB_ICONEXCLAMATION | MB_OK); return 0; } // Step 2: Creating the Window hwnd = CreateWindowEx( WS_EX_CLIENTEDGE, g_szClassName, "The title of my window", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 240, 120, NULL, NULL, hInstance, NULL); if(hwnd == NULL) { MessageBox(NULL, "Window Creation Failed!", "Error!", MB_ICONEXCLAMATION | MB_OK); return 0; } ShowWindow(hwnd, nCmdShow); UpdateWindow(hwnd); // Step 3: The Message Loop while(GetMessage(&Msg, NULL, 0, 0) > 0) { TranslateMessage(&Msg); DispatchMessage(&Msg); } return Msg.wParam; } Generalmente este es el programa más simple que puedes escribir par crear una ventana funcional, digamos unas 70 líneas de código. Si has compilado el primer ejemplo, entonces este debería funcionar sin problemas. Paso 1: Registrar la Clase Ventana Una Clase Ventana almacena información sobre el tipo de ventana, incluyendo su Window Procedure, los íconos grandes y pequeños y el color de fondo. De esta forma podemos registrar una clase una vez y luego crear muchas ventanas a partir de ésta, sin tener que especificar todos los atributos una y otra vez. Muchos de los atributos que especificamos en la Clase Ventana pueden ser cambiados, si se desea, en una base per-windows. La Clase Ventana no tiene nada que ver con las clases de C++. Código: const char g_szClassName[] = "myWindowClass"; La variable anterior almacena el nombre de nuestra Clase Ventana y la usaremos en breve para registrar nuestra clase en el sistema. Código: WNDCLASSEX wc; wc.cbSize = sizeof(WNDCLASSEX); wc.style = 0; wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wc.lpszMenuName = NULL; wc.lpszClassName =g_szClassName; wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION); if(!RegisterClassEx(&wc)) { MessageBox(NULL, "Window Registration Failed!", "Error!", MB_ICONEXCLAMATION | MB_OK); return 0; } Este es el código que usamos en WinMain( ) para registrar nuestra Clase Ventana en el sistema. Para ello, rellenamos los campos de una estructura WNDCLASSEX y llamamos a RegisterClassEx( ). Los campos de la estructura son los siguientes: cbSize El tamaño de la estructura style El estilo de la clase (CS *), no confundirse con el estilo de la ventana (WS *). Generalmente este campo puede ser puesto en cero. lpfnWndProc Puntero al Window Procedure de esta clase. cbClsExtra Cantidad extra de asignación de memoria para datos de la clase. Generalmente cero. cbWndExtra Cantidad extra de asignación de memoria por ventana de este tipo. Generalmente cero. hInstance Handle a la instancia de la aplicación (la que obtenemos en el primer parámetro de WinMain( ) ) hIcon Handle al ícono grande (32x32), mostrado cuando el usuario presiona Alt+Tab. hCursor Handle al cursor que será mostrado sobre la ventana. hbrBackground Pincel para fijar el color de fondo de nuestra ventana. lpszMenuName Nombre del recurso Menú para usar con las ventanas de esta clase. lpszClassName Nombre para identificar la clase. hIconSm Handle al ícono pequeño (16x16), usado en la barra de tareas y en la esquina superior izquierda de la ventana. No te preocupes si esto no queda muy claro aún, las distintas partes que vimos serán explicadas mas adelante. Otra cosa para recordar es no intentar memorizar toda esta estructura. Yo raramente (de hecho nunca) memorizo estructuras o parámetros de funciones, esto es un desperdicio de tiempo y esfuerzo. Si conoces las funciones que necesitas llamar, entoces es una cuestión de segundos mirar los parámetros exactos en la ayuda de tu compilador. Si no tienes los archivos de ayuda entonces consigue algunos porque sin ellos estas perdido. Eventualmente irás aprendiendo los parámetros de las funciones que mas usamos. Luego llamamos a RegisterClassEx( ) y chequeamos por alguna falla, si hubo alguna mostramos un mensaje y abortamos el programa retornando a la función WinMain( ). Paso 2: Crear la Ventana Una vez que la clase ha sido registrada, podemos usarla para crear una ventana. Observemos los parámetros de la función CreateWindowEx( ) (como lo haremos con cada nueva llamada a la API que veamos), los explicaré brevemente: Código: HWND hwnd; hwnd = CreateWindowEx( WS_EX_CLIENTEDGE, g_szClassName, "The title of my window", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 240, 120, NULL, NULL, hInstance, NULL); El primer parámetro (WS_EX_CLIENTEDGE) es el estilo extendido de la ventana, en este caso he configurado éste para darle un borde interno y hundido al marco de la ventana. Pon este valor en cero para observar la diferencia, o prueba con otros valores para ver que hacen. A continuacióm tenemos el nombre de la clase (g_szClassName), éste le dice al sistema que tipo de ventana crear. Debido a que queremos crear una ventana a partir de la clase que hemos registrado, usamos el nombre de dicha clase. Luego especificamos el nombre de nuestra ventana o título que aparecerá en la barra de título de la ventana. El parámetro que tenemos como WS_OVERLAPPEDWINDOW es estilo de la ventana. Hay algunos de éstos y deberías mirarlos y experimentar para observar que hacen. De todos modos serán cubietos mas adelante. Los siguientes cuatro parámetros ( CW_USEDEFAULT, CW_USEDEFAULT,320,240) son las coordenadas X e Y de la esquina superior izquierda de la ventana y el alto y ancho de de la ventana, respectivamente. He puesto los campos X e Y con el valor CW_USEDEFALT para dejar que windows elija en qué lugar de la pantalla ubicar la ventana. Recuerda que la parte izquierda de la pantalla tiene un valor de X igual a cero y se incrementa hacia la derecha y la parte superior de la pantalla tiene un valor cero de Y y se incrementa cuando avanzamos hacia abajo en la pantalla. Las unidades son los pixeles, el cual es la miníma unidad que una pantalla puede mostrar en una resolución determinada. Los siguientes parámetros (NULL,NULL,g_hInstance,NULL) corresponden al handle de la ventana padre, al handle del menú, al handle de la instancia de la aplicación y un puntero a los datoscon los cuales se creó la ventana. En windows las ventanas son ordenadas en la pantalla de acuerdo a una jerarquía de padre e hijo. Cuando ves un botón en una ventana, el botón es el Hijo de la ventana en la cual está contenido y dicha ventana es su Padre. En este ejemplo, el handle al padre es nulo debido a que no tenemos padre, estamos en el nivel principal de las ventanas. El handle al menú es nulo debido a que, por ahora, no tenemos menú. El handle a la instancia de la aplicación es puesto con el valor que es pasado en el primer parámetro del WinMain( ). Los datos de creación (los culaes nunca uso) pueden ser usados para enviar información adicional a la ventana que está siendo creada. También es nulo. Si estás preguntándote que es la palabra mágica NULL, es simplemente definida como cero (0). En realidad, en C está definida como ((void *) 0), debido a que está destinada a ser usada con punteros. Por lo tanto probablemente obtengas algunos "warnings" si la utilizas para valores enteros, de todas maneras esto depende del compilador y del nivel de warnings en la configuaración del mismo. Puedes elegir ignorar los warnings o usar el valor cero (0)en lugar de NULL. La principal causa de que las personas no conozcan cuales son las fallas de sus programas es que no chequean los valores de retorno de las llamadas a funciones para determinar si éstas han fallado o no. CreateWindow( ) puede fallar aún si eres un experimentado programador debido a que hay una gran cantidad de errores que son fáciles de cometer. Hasta que aprendas como identificar rápidamente dichos errores date la oportunidad de resolverlos y siempre chequea los valores de retorno! if(hwnd == NULL) { MessageBox(NULL, "Window Creation Failed!", "Error!", MB_ICONEXCLAMATION | MB_OK); return 0; } Después que hemos creado la ventana y hemos chequeado para asegurarnos de que tengamos un handle válido, mostramos la ventana utilizando el último parámetro provisto en WinMain( ) y luego lo actualizamos para asegurarnos que se halla redibujado en la pantalla a si mismo de manera apropiada. ShowWindow(hwnd, nCmdShow); UpdateWindow(hwnd); El parámetro nCmdShow es opcional, simplemente puedes pasar el valor SW_SHOWNORMAL en todo momento y listo. Sin embargo si usamos el parámetro provisto en WinMain( ) le da a quien esté corriendo tu programa la oportunidad de especificar si quiere que la ventana comienze visible, maximizada, minimizada, etc... Encontrarás opciones para este parámetro en las propiedades de los iconos del escritorio y apartir de estos valores será determinado el valor que tome el parámetro nCmdShow. Paso 3: El Bucle de Mensajes Este es el corazón del programa, la mayoria de las cosas que tu programa realiza pasan a través de este punto de control. Código: while(GetMessage(&Msg, NULL, 0, 0) > 0) { TranslateMessage(&Msg); DispatchMessage(&Msg); } return Msg.wParam; GetMessage() obtiene un mensaje de la cola de mensajes de tu aplicación. Cada vez que el usuario mueve el mouse, presiona el teclado, hace click en el menú de la ventana , etc... el sistema genera mensajes que ingresan en la cola de mensaje de la tu aplicación. Utilizando GetMessage( ) estás solicitando que el siguiente mensaje disponible en la cola sea removido de la misma y te sea entregado para procesarlo. Si no hay mensajes, GetMessage( ) se bloquea . Si no estás familiarizado con dicho término, esto significa que espera a que halla un mensaje en la cola y luego te lo retorna. TranslateMessage( ) hace algunos procesos adicionales en los eventos del teclado, como generar mensajes WM_CHAR que van junto a los mensajes WM_KEYDOWN. Finalmente DispatchMessage( ) envía el mensaje a la ventana que había recibido dicho mensaje. Esta podría ser nuestra ventana principal, otra ventana, o un control e incluso una ventana que fué creada "detrás de la escena" por el sistema o algún otro progama. Esto no es algo que debería precocuparte debido a que lo único que nos interesa saber es que obtenemos el mensaje y lo envíamos, el sistema se encarga de hacer el resto asegurándose de trabajar con la ventana correcta. Paso 4: El Windows Procedure Si el bucle de mensajes es el corazón del programa entonces el Windows Procedure es el cerebro. Aqui es donde todos los mensajes son envíados para que sean procesados por nuestra ventana. Código: LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch(msg) { case WM_CLOSE: DestroyWindow(hwnd); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd, msg, wParam, lParam); } return 0; } El Windows Procedure (pronunciado "winprock" es llamado por cada mensaje que procesamos, el parámetro HWND es el handle dela ventana a la cual se aplica el mensaje. Esto es importante debido a que puedes tener dos o mas ventanas de la misma clase que usarán el mismo Windows Procedure (WndProc( ) ), la diferencia es que el parámetro hWnd será diferente dependiedno de la ventana. Por ejemplo cuando obtenemos el mensaje WM_CLOSE (cerrar ventana) destruimos la ventana y debido a que usamos el handle de la ventana (que recibimos en el primer parámetro) sabremos que ventana es la que hay que destruir. Las demás ventanas no se verán afectadas, solo la que recibió el mensaje. WM_CLOSE es envíado cuando el usuario presiona ALT+F4 o cuando presiona el botón . Esto causará que la ventana sea destruida por default, pero prefiero manejarlo explicitamente debido a que es el punto perfecto para realizar "limpiezas" o preguntarle al usuario si desea guardar los cambios, etc...antes que la ventana se destruida. (i.e el programa finalice). Cuando llamamos a DestroyWindow( ) el sistema envía el mensaje WM_DESTROY a la ventana que va a ser destruída, que en este caso es nuestra ventana, y por lo tanto destruimos todas las ventanas hijas antes de remover nuestra ventana del sistema. Debido a que esta es nuestra única ventana en nuestro programa todo lo que hacemos es salir del mismo, para ello utilizamos la llamada PostQuitMessage( ). Esta envía el mensaje WM_QUIT al bucle de mensajes pero nunca recibimos este mensaje debido a que éste causa que GetMessage( ) retorne FALSE y como vimos en el código del Bucle de Mensajes, cuando esto sucede, dejamos de procesar mensajes y retornamos el código resultante final, el Wparam del WM_QUIT el cual es el valor pasado en PostQuitMessage( ). El valor de retorno solo es usado si tu programa está diseñado para ser llamado por otro programa y quieres que retorne un valor especifico. Fuente origianl: http://winprog.org/tutorial/es/simple_window.html Copyright © 1998-2003, Brook Miles (theForger). All rights reserved. Versión en Español Federico Pizarro - 2003 No se permite establecer como fuente directa por error desconocido.

34
0
¿Duermes con o sin calcetines?
¿Duermes con o sin calcetines?
Salud BienestarporAnónimo4/20/2017

¿Duermes con o sin calcetines? Descubre lo que esto dice de ti Amantes de los calcetines nocturnos Si duermes con calcetines seguramente se debe a que eres muy sensible al frío. Si es así, esto puede estar relacionado con diferentes causas, como el grosor de la piel y el ritmo metabólico del cuerpo. En algunas personas la circulación de la sangre es más rápida o los ciclos naturales del cuerpo se llevan a cabo a un ritmo más acelerado y esto las hace emitir calor constantemente. Pero otras personas sencillamente tienen la piel más fina o una circulación lenta y debido a esto pueden ser más sensibles al frío en el ambiente. Aunque ser sensible al frío es una condición asociada a tus características físicas y biológicas, también es una sensación relacionada con tu percepción del espacio y la temperatura. Así, dos personas con características físicas muy similares perciben el clima de formas muy diferentes. Según esto, es posible que nuestro cerebro emita constantemente la señal de «sentir frío» como un mecanismo para buscar contacto y contención a través del calor. Las personas que sienten la necesidad de dormir con calcetines (y en general de dormir abrigados) usualmente buscan ser protegidos. Si eres uno de ellos, lo más probable es que adores los lugares acogedores y busques establecer relaciones profundas y muy íntimas con otras personas. No te incomoda ceder algo de tu espacio personal a los otros y el contacto físico como los mimos, las caricias y los abrazos te hacen feliz. Amantes de los pies frescos en la noche Si en cambio, no toleras la idea de dormir con calcetines, y sólo pensar en tu pies cubiertos dentro de la cama te genera algo de incomodidad, es probable que se deba en parte a que conservas por naturaleza una alta temperatura corporal. Esto puede deberse a que tienes un metabolismo más acelerado que otras personas, al grosor de tu piel o a que la sangre corre con fuerza y velocidad por tus venas. Tienes una predisposición biológica a conservar y generar calor y por eso te sobran los calcetines bajo las cobijas. Además de sentirte en libertad y a gusto en el contacto con las sábanas, dejas respirar los poros de tu piel, distensionas los músculos de tus pies y no hay ninguna prenda que oprima tus tobillos o piernas dificultando la circulación de la sangre. Sin embargo, no todo es físico. Ser menos sensible al frío también está relacionado con la forma en que te relacionas con tu entorno y percibes los estímulos externos. Seguramente eres del tipo de personas más independientes. Valoras enormemente tu espacio personal y entras en contacto con los demás sólo cuando estás dispuesto a interactuar. En una relación tenderás a asumir el rol protector, eres franco y en ocasiones retador; esa es una de las maneras en que expresas tu cariño a los demás, aunque no siempre lo entiendan. A pesar de que parezca contradictorio por tus actitudes de persona demasiado independiente, sabes muy bien cuidar de los demás. No importa si amas la sensación de tener los pies calientes dentro de tus calcetines o si disfrutas de la libertad de estar descalzo en la cama, ¡lo que importa es que tengas felices sueños!

0
0
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.