The power of Win32 programming

 

De titel gaat nergens over, maar de inhoud wel!We gaan het namelijk hebben over Win32 programming! We behandelen resources en menu’s in deze tutorial, maar ik denk dat er nog meer zullen volgen.

 

Voorbereiding

 

Allereerst een opmerking dat ik dus absoluut niet weet of dit met borland werkt! Ik ben een aanhanger van het gebruik van Microsoft Visual C++.Deze is gewoon compleet en is tot tegenstelling van andere micro$oft producten een goed product.

 

Begin met een window te maken, zoals in vorige tutorials of plak en knip <a href=http://home.kabelfoon.nl/~pderaaij/tuts/window.cpp/ target=”_blank”>deze</a> lekker over.

 

Resources

 

Wel eens afgevraagd waarom sommige .exe’s zo onwijs groot kunnen zijn?? Nee? Neem daar nu eens de tijd voor…

 

Gedaan? En.. wat zinnigs bedacht? Of kwam je er niet uit? Maakt niet uit ik ga het vertellen!

 

Exe’s kunnen zo groot worden omdat in een .exe (executable) ook de resources worden opgeslagen. Dit kunnen icons, bitmaps, waves menu’s en nog veel meer zijn. Waarom, vraag je je mischien af? Simpel. In een exe kun je de gegevens niet “hacken”. Je kan niet even een bitmap kopiëren en op je site plaatsen. Met het gebruik van resources heb je dus een bescherming voor je creaties. Daarnaast: “Alles wat niet extern is, kun je ook niet kwijtraken!”

 

Goed, genoeg theorie voor nu, Show me the money, euhm… code.

 

Icons

 

We beginnen met Iconen. Allereerst maak je een icoon. Ik doe dit met de editor die in Visual C++ zit, maar je kan vast ook wel andere programma’s gebruiken, zolang je ze maar als .ico kan opslaan. Een icoon is vrijwel altijd 32x32 pixels en 16 kleuren. Je kan gaan tot 64x64 & 256 kleuren. Goed heb je wat leuks gemaakt? Dan gaan we nu verder.

 

Allereerst maken we een header file aan, genaamd resources.h. Puntje van aandacht hier is dat Win32 een resource graag numeriek wil herkennen, wij hebben liever namen dus we moeten hier een bemiddeling in maken. Dat doe je in deze header file.

 

#define ID_ICON1         100 // mag jezelf bepalen

 

Dan maak je een file genaamd resources.rc met daar het volgende in.

 

#include “resources.h”

 

 

ID_ICON1 ICON icon1.ico

 

Je hoeft nu alleen nog maar resource.rc aan je project toe te voegen  en vervolgens verander je de volgende code:

 

Winclass.hIcon         = LoadIcon(hinstance,MAKEINTRESOURCE(ID_ICON1));

Winclass.hIconSm    = LoadIcon(hinstance,MAKEINTRESOURCE(ID_ICON1));

 

Cursors

 

Voor een cursor is het precies hetzelfde als hierboven.

 

Sounds, Waves, & strings

 

Deze ga ik behandelen in de volgende tutorial, nog even geduld dus.

 

Menu’s

 

Zo zet je het menu in elkaar:

 

MainMenu MENU DISCARDABLE

{

POPUP “File”

         {

         MENUITEM “Open”, MENU_FILE_ID_OPEN

         MENUITEM “Close”, MENU_FILE_ID_CLOSE

}

POPUP “Help”

         {

         MENUITEM “About”, MENU_HELP_ID_ABOUT

         }

}

 

In resource.h gaat het volgende:

 

#define MENU_FILE_ID_OPEN         1000

#define MENU_FILE_ID_CLOSE         1001

#define MENU_HELP_ID_ABOUT         2000

 

Vervolgens zet je in je winclass dit:

 

Winclass.lpszMenuName = “MainMenu”;

 

i.p.v

 

Winclass.lpszMenuName = NULL;

 

Het is even een korte tutorial, maar ik hoop dat hij duidelijk genoeg is!

 

Groetjes,

Paul