Cambiar los textos de una barra de titulo

Supongamos un programa multidioma y al iniciarlo queremos que cambie la barra de menu dependiendo del idioma que escoja el usuario.

Asi pues definimos el elemento menu y un array para pasarle el texto. Tenemos declarado como manejador principal de la ventana la variable hWndPrincipal. Es el manejador que usamos cuando creamos la ventana principal.
MENUITEMINFO infoMenu;
char menutxt[256];

Ahora seteamos la estructura del menu a nuestro gusto insertandole el texto deseado.
strcpy(menutxt, "Archivo");
infoMenu.fMask = (MIIM_TYPE);
infoMenu.dwTypeData = menutxt;
infoMenu.cch = strlen(menutxt);
infoMenu.fType = MFT_STRING;
infoMenu.cbSize = sizeof(MENUITEMINFO);
SetMenuItemInfo(GetMenu(hWndPrincipal), 0, TRUE, &infoMenu);

En este ejemplo he pasado directamente la palabra “Archivo” pero podria haberla declarado en la tabla de strings y cargarla con LoadString.
LoadString(hInst, ESP_MENU_FILE, Menu_File, MAX_LOADSTRING);
strcpy(menutxt, Menu_File);

Siendo hInst, la instancia de la aplicación, ESP_MENU_FILE, la entrada en la talba de strings y Menu_File una variable. Tambien indicar que el 0 indica la posición del elemento en la barra de menu.

Para los submenus el proceso es identico a cualquier elemento, ya que cada submenu es un elemento diferenciado de la aplicación

SendDlgItemMessage(hDlg, IDC_SUBMENU1, WM_SETTEXT, NULL, (LPARAM) "Nuevo");

Siendo hDlg el manejador de la ventana y IDC_SUBMENU1 el elemento submenu a tratar.

SDL-config Not Found :(

Si alguna vez tenemos que compilar un programa , proceso por el que tarde o temprano pasa todo linuxero, y no encontramos con el siguiente mensaje:

/bin/sh sdl-config: not found

El problema tiene facil arreglo únicamente hay que descargar los paquetes de desarrollo de la libsdl

sudo apt-get install libsdl1.2-dev

Pero como estoy trasteando con la beta de kubuntu pues aún no está en sus repositorios algunas dependencias válidas para poder llevar a cabo la instalación de esta libreria de desarrollo. Asi que añadiremos los repositorios de xgl de la dapper a nuestro fichero de sources del apt /etc/apt/sources.list

deb http://www.beerorkid.com/compiz/ dapper main aiglx
deb http://xgl.compiz.info/ dapper main aiglx
deb http://ubuntu.compiz.net/ dapper main aiglx
deb http://media.blutkind.org/xgl/ dapper main aiglx

Si os fijais bien aun mantengo la versión de la dapper

Burbujitas de Colores

Todos recordareis, el fracaso gaseoso por excelencia que fue la cherry coke (Coca-cola), que lo único que consigio fue un anuncio con una pegadiza canción (la del cheeroke) que se acabó conviertiendo un gran hit, allá por los principios de los noventa. ¿Por que falló? ¿Quien lo sabe? Si te volviste adicto, ¿Con que suples su adicción?

Cherry Coke

Pero no solo fue este un “fracaso” aislado y exclusivo de coca-cola, algunos se acordarán de la mítica Crystal-Pepsi, esa pepsi que en principio deberia tener el mismo sabor pero con un color transparente. Vamos una gaseosa de toda la vida. Esta bebida además tiene una su propia página oficial.

Crystal Pepsi

Pero los señores de Pepsi, creyeron haber errado en el color asi que lo probaron con varios tonos, estos solo los he visto en internet, ya que la mayoria de rarezas de estas dos marcas no pisan el suelo español.

Pepsi azulPepsi fuegoPepsi gold

Incio de “La Cacharrería”

Aunque su nombre pueda llevar al yerro, esta categoría va sobre todos aquellos productos que han desaparecido de los stands de los supermercados, que tubieron mucha fama (o no) en su día y hoy sin darnos cuentas vemos que han desaparecido.

El otro día una compañera del trabajo me trajo a la memoria los bimbollos, porque tenia un antojo y no los encontraba. Asi que yo ni corto ni perezoso me puse a indagar, y la verdad que solo pude rescatar esta imagen de una tienda on-line del Perú.

Bimbollo

¿Que fue de aquellas meriendas de un bimbollo con nocilla mientras veias como espinete se ponia el pijama para dormir?

Bromas a parte, esta sección me hacía mucha ilusión. En ella también puede colaborar quien desee envíandome el artículo en cuestión a cacharreria@chumy.net. Gracias

Activar botones

El caso es el siguiente, creamos un botoncito y lo seteamos como enabled=false claro que queremos activarlo en determinados casos.

El primer paso es bucar y buscar que mensaje me lo va a activar y nos topamos con WM_ENABLE que tiene un buen nombre, pero que no sirve para nada, salvo para refresacar el ventanuco.

Solución sencilla:

EnableWindow(GetDlgItem(hDlg, IDC_BUTTON), TRUE);Solución mas rebuscada:

Declaramaos un manejador de vetantas

HWND hWndBtn Le asociamos el objeto y obtenemos su estilo
hWndBtn = GetDlgItem(hDlg, IDC_BUTTON);
style = GetWindowLong(hWndBtn, GWL_STYLE);
Ahora jugaremos con la máscara de estilo. Para activarlo
style &= ~WS_DISABLED; Y para desactivarlo

style |= WS_DISABLED;Y para repintar
SetWindowLong(hWndBtn, GWL_STYLE, style);
InvalidateRect(hDlg, NULL, TRUE);

Presentación de la sección WinAPI

Bueno, como algunos sabreis este blog fue concebido para recordarme que tengo mala memoria y que mas vale tener algunas cosillas apuntadas y como no encuentro los papeles donde almaceno tal crucial información.

Esta sección no pretende ser un manual de WinAPI, solo apuntaré cosas que por desuso voy olvidando y tarde o temprano siempre tengo que recurrir a ellas.

Nuevo Blog

Pues si como indica el titulo de la entrada, hoy estreno nuevo blog. Durante estos dias le iré cambiando la apariencia y agregando nuevas secciones.

El diseño esta basado en el original de NikyNik (link en el pie) que es me ha encantao por lo sencillo y cuidao que está. Pero como nunca llueve a gusto de todos pues algunas cosillas le cambiaré.

Como siempre acepto sugerencias, asi que cualquier mejora, consejo o petición sera bienvenida.

Un saludo y espero que os guste

Compartir internet

Hoy en dia casi todos tenemos mas de una maquina en casa para hacer trastadas, queremos que todas las maquinas tengan internet, claro que tampoco podemos llenar la casa de cables. Así que vamos a conectarnos via wireless .

El primer paso es instalar la tarjeta wireless

Leer el resto de la entrada »