000
19.02.2005, 11:12 Uhr
RedEagle
|
Hi Ich hab 30 STATIC-Elemente:
C++: |
int i=0; int y=137; for(i=0; (i<iMaxEintrage)&&(i<30); i++) { if(Liste[i].iStatus == 1) hIcon[i] = LoadImage (GetModuleHandle (NULL), "bmp1.bmp", IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR | LR_LOADFROMFILE);
else if(Liste[i].iStatus == 2) hIcon[i] = LoadImage (GetModuleHandle (NULL), "bmp2.bmp", IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR | LR_LOADFROMFILE);
else if(Liste[i].iStatus == 3) hIcon[i] = LoadImage (GetModuleHandle (NULL), "bmp3.bmp", IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR | LR_LOADFROMFILE);
else hIcon[i] = LoadImage (GetModuleHandle (NULL), "bmpE.bmp", IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR | LR_LOADFROMFILE);
hwndStatic[i] = CreateWindow("STATIC", "", WS_CHILD | WS_VISIBLE | SS_BITMAP, 20, y, 20, 13, hWnd, (HMENU)i, (HINSTANCE) GetWindowLong (hWnd, GWL_HINSTANCE), NULL); //(HMENU)i damit ich bei WM_COMMAND die Punke 0-29 abfragen kann
SendMessage(hwndStatic[i], STM_SETIMAGE, (WPARAM) IMAGE_BITMAP, (LPARAM)(HANDLE) hIcon[i]); y+=15; }
|
Mein WM_COMMAND:
C++: |
case WM_COMMAND: { switch(LOWORD(wParam)) //Wenn auf ein Icon geklickt wurde: { case 0: ChangeEintragStatus( 0, hwndStatic[ 0], hIcon[ 0]); break; case 1: ChangeEintragStatus( 1, hwndStatic[ 1], hIcon[ 1]); break; case 2: ChangeEintragStatus( 2, hwndStatic[ 2], hIcon[ 2]); break; //... case 28: ChangeEintragStatus(28, hwndStatic[28], hIcon[28]); break; case 29: ChangeEintragStatus(29, hwndStatic[29], hIcon[29]); break; } break; }
|
Mein ChangeEintragStatus(29, hwndStatic[29], hIcon[29]);:
C++: |
void ChangeEintragStatus(int iEintrag, HWND hwndStatic, HANDLE hIcon) { int oldStatus = Liste[iEintrag].iStatus; if(oldStatus == 1) { Liste[iEintrag].iStatus = 2; hIcon = LoadImage(GetModuleHandle (NULL), "bmp2.bmp", IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR | LR_LOADFROMFILE); } else if(oldStatus == 2) { Liste[iEintrag].iStatus = 3; hIcon = LoadImage(GetModuleHandle (NULL), "bmp3.bmp", IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR | LR_LOADFROMFILE); } else if(oldStatus == 3) { Liste[iEintrag].iStatus = 1; hIcon = LoadImage(GetModuleHandle (NULL), "bmp1.bmp", IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR | LR_LOADFROMFILE); } SendMessage(hwndStatic, STM_SETIMAGE, (WPARAM) IMAGE_BITMAP, (LPARAM)(HANDLE) hIcon); }
|
Wenn ich jetzt auf eins der 30 STATICs klicke, sollen Das sein Symbol ändern. Aber leider passiert nichts, wenn ich Draufklicke. Was ist Falsch?? -- MFG RedEagle Dieser Post wurde am 19.02.2005 um 11:13 Uhr von RedEagle editiert. |