naja, um das zu verstehen muss man sich die Konstruktion von windows Programmen ankucken. Wenn du in einem Fenster etwas anklickst z.b. einen Button, auf dem steht "start", wir eine Nachricht -eine Windows Message durch das System geschickt. Wenn du z.B. einen Button anklickst wird eine WM_COMMAND Botschaft geschickt. Dann wird eine Identlifizierung dazu geschickt, welcher Button gedrückt wurde. Diese ID legst du fest, du als Programmierer muss ja wissen, welcher Button gedrückt wurde, um aus dieser Aktion ein Resultat zu machen.
Also wenn du die ID's der Button löscht, oder umbenennst, weiss ja "Davids Code" nicht mehr, was er nun tun soll, weil die ID die der Button hat nicht im Code vorgesehen ist:
ein Beispiel: du hast die ID unseres StartButtons (vorher IDC_START) in IDC_END umbennannt. IDC_START ist damit ja nicht mehr bekannt un der folgende Code kann nicht mehr kompiliert werden:
Diese Konstanden sind in der HeaderDatei deiner Resource z.B. resource.h deklariert.
z.B.
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
INT_PTR CALLBACK DlgProc(HWND hDlg, unsigned int uiMsg, WPARAM WParam, LPARAM LParam) {
switch(uiMsg) {
case WM_COMMAND:
switch (LOWORD(WParam)) {
case IDC_START:
// hier starten wir etwas, wir führen eine Aktion durch
break;
case IDC_NOTHING:
// diser Codeabschnitt wird nie erreicht, weil unsere Buttons keine ID mit dem Namen IDC_NOTHING haben
break;
}
default:
return false;
};
return true;
}
|
Diese ID's gibt es aber nicht nur bei Buttons, Windows schickt bei jedem Mist eine Meldung z.B. auchz beim Aktivieren des Fensters, beim Minimieren, maximieren u.s.w.
Sinn von den Resourcen ist, wichtige Daten für den Benutzer des Programmes "unsichtbar" zu machen. Es gibt ja auch externe Resourcen, wie zum Beispiel irgendwelche INI's oder Bilder. Diese könnte der Benutzer verändern (wenn sie nicht dekodiert sind), interne Resourcen nicht, weil diese mitcompiliert sind. ;D und so im eigentlichen Code mit enthalten.
@Sk!p -> das nächste mal aber bitte in ein anderes Forum