bmp auf bmp malen/mehrere bmp malen?
-
Hi, ich bins wieder

In dem Programm, welches ich schreibe, habe ich 'ne Bitmap als Hintergrund- Als "mouseover-effekt" wollte ich jetzt den hintergrund button (der natürlich auch gemalt ist) hell aufleuchten lassen bei einem "drüber rollen" nur irgendwie bekomm ichs ned auf die reihe, ich hab für fast alles nen eigenen canvas gemacht
naja seht mal selbst:
switch (message)
{
case WM_CREATE:
{
// bitmap laden
hBmp=(HBITMAP)LoadImage(GetModuleHandle(NULL),MAKEINTRESOURCE(ID_BITMAP_01),IMAGE_BITMAP,0,0,LR_SHARED);
hBmp2=(HBITMAP)LoadImage(GetModuleHandle(NULL),MAKEINTRESOURCE(ID_BITMAP_02),IMAGE_BITMAP,0,0,LR_SHARED);
hRegion1 = ScanRegion(hBmp,250,0,250);
SetWindowRgn(hWnd,hRegion1,TRUE);
DeleteObject(hRegion1);DWORD ID;
static HANDLE Thread;
Thread = CreateThread(NULL, 0, main_thread, (LPVOID)NULL, 0, &ID);
WaitForSingleObject(Thread, 250);
break;
}case WM_LBUTTONDOWN:
{
x1 = LOWORD(lParam);
y1 = HIWORD(lParam);if((x1>=1 && x1 <= 390) && (y1>=1 && y1<=21)) {
SendMessage(hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0);
}if((x1>=365 && x1<=378) && (y1>=6 && y1<=19)) {
PostQuitMessage(WM_QUIT);
}break;
}case WM_MOUSEMOVE:
{
x2 = LOWORD(lParam);
y2 = HIWORD(lParam);if((x2>=365 && x2<=378) && (y2>=6 && y2<=19)) {
hDC3 = BeginPaint(hWnd, &ps2);
hDC4 = CreateCompatibleDC(hDC3);
SelectObject(hDC4,hBmp2);
BitBlt(hDC3,0,0,365,6,hDC4,0,0,SRCCOPY);
DeleteDC(hDC4);
EndPaint(hWnd, &ps2);
}break;
}< das was nur passeren soll, wenn die mouse drauf ist funzt ned (aber andere sachen kp ne messagebox funzt schon, also scheint irgendwie am erstellen/zeichnen der bmp zu liegen...
case WM_PAINT:
{
hDC = BeginPaint(hWnd, &ps);
hDC2 = CreateCompatibleDC(hDC);
SelectObject(hDC2,hBmp);
BitBlt(hDC,0,0,390,304,hDC2,0,0,SRCCOPY);
DeleteDC(hDC2);
EndPaint(hWnd, &ps);return 0;
}< das geht wie geschmiert
case WM_DESTROY:
{
PostQuitMessage(WM_QUIT);
break;
}
}
return DefWindowProc(hWnd, message, wParam, lParam);
}Ich hoffe ihr könnt mir sagen woran es liegt, danke shconmal
mfg
-
Hi, habs jetzt hinbekommen es malen zu können, aber NICHT beim mouseover...
case WM_MOUSEMOVE: { x2 = LOWORD(lParam); y2 = HIWORD(lParam); if((x2>=365 && x2<=378) && (y2>=6 && y2<=19)) { asd = 1; } break; } case WM_PAINT: { hDC = BeginPaint(hWnd, &ps); hDC2 = CreateCompatibleDC(hDC); SelectObject(hDC2,hBmp); BitBlt(hDC,0,0,390,304,hDC2,0,0,SRCCOPY); if(asd == 1) { SelectObject(hDC2,hBmp2); BitBlt(hDC, 365, 6, 20, 20, hDC2, 0, 0, SRCCOPY); } DeleteDC(hDC2); EndPaint(hWnd, &ps); return 0; }Warum geht es einfach nicht?!
helft mir bitte

mfg
-
*pusch*
Bitte helft mir doch, weiß ned was ich amchen soll!
-
habs schon hinbekommen ,danke für nix^^
ne trotzdem thx xD
mfg