yann_lo_san
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
26
2 avril 2007 à 15:17
Il faut simplement dessiner avec un logiciel de dessin le MAGENTA sans flou, c'est facile.
Ensuite utiliser WS_EX_LAYERED pour ta form.
HWND hWnd = CreateWindowEx(WS_EX_LAYERED, szAppName, szAppName,
WS_POPUP | WS_VISIBLE | WS_CLIPSIBLINGS,
CW_USEDEFAULT, CW_USEDEFAULT, SizeBmp .cx, SizeBmp.cy,
0, 0, hInstance, 0);
Puis utiliser wm_create :
case WM_CREATE:
hBmp = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_BMP));
SetLayeredWindowAttributes(hWnd, RGB(255, 0, 255), 0, LWA_COLORKEY);
// Ajouter | LWA_ALPHA pour la transluance (0 -> 255)
return 0;
Puis utiliser le message eraseBackground :
case WM_ERASEBKGND: {
HDC hDC, hMemDC;
HBITMAP hOldBmp;
hDC = (HDC)wParam;
if(hBmp) {
hMemDC = CreateCompatibleDC(hDC);
hOldBmp = (HBITMAP)SelectObject(hMemDC, hBmp);
BitBlt(hDC, 0, 0, SizeBmp.cx, SizeBmp.cy, hMemDC, 0, 0, SRCCOPY);
SelectObject(hMemDC, hOldBmp);
DeleteDC(hMemDC);
}