   Window Translucency in Selected Areas
  I'm trying to make a window that has a partially transparent background, and fully opaque text. From the way MSDN described SetLayeredWindowAttributes, I thought I could do this:SetLayeredWindowAttributes(hWnd, // Window  RGB(100, 0, 0), // background color  150,  // translucency of background  LWA_COLORKEY|LWA_ALPHA);Unfortunately it seems that this just makes the background completely transparent and the rest of the window translucent.Is there any way to perform selective translucency?Thanks.   
  I do know it's possible, because I've seen games that used the layered windows to create rounded edges at the corners of the windows, unfortunately I don't know how it is done (sorry!).   ;  use window regions.   ;  If you don't want any translucency and want things either opaque or transparent, use an alpha value of 255.   ;  For true per-pixel alpha, use UpdateLayeredWindow to draw your window. It completely overrides the usual WM_PAINT method, so you'll have to draw everything manually, including any child windows.ULW takes a handle to a device context, which can have 8 alpha bits in addition to 24 color bits.   ;  Maybe this will be of some help:// WindowRgnExample.cpp : Defines the entry point for the application.//#include <windows.h>#define sAppName "Window RGN Example // Jaime Muscatelli"#define IDOK 1HWND CMDOK;HINSTANCE hInst;LRESULT CALLBACK DlgProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hprevinst, LPSTRlpCmdLine, int  cmdShow){ if (hprevinst == NULL){WNDCLASS wclass;memset (&wclass, 0, sizeof(wclass));wclass.style = CS_HREDRAW | CS_VREDRAW;wclass.lpfnWndProc = DlgProc;wclass.hInstance = hInstance;//wclass.hIcon = LoadIcon(hinst,MAKEINTRESOURCE(IDI_ICON1));wclass.hCursor = LoadCursor (NULL, IDC_ARROW);wclass.hbrBackground = (HBRUSH)GetStockObject(1);wclass.lpszClassName = "WinRGNExample";if (!RegisterClass (&wclass)) return 0;}HWND hwnd = CreateWindow("WinRGNExample",sAppName,WS_OVERLAPPED | WS_MINIMIZEBOX |WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_DLGFRAME | WS_BORDER,CW_USEDEFAULT,CW_USEDEFAULT,350,350,0,0,hInstance,0);ShowWindow(hwnd, cmdShow);UpdateWindow(hwnd);hInst = hInstance;MSG msg;while (GetMessage(&msg, NULL, 0, 0)){DispatchMessage(&msg);}return msg.wParam;}LRESULT CALLBACK DlgProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam){switch(msg){case WM_DESTROY:{PostQuitMessage(0);break;}case WM_CLOSE:{SendMessage(hwnd,WM_CLOSE,0,0);break;}case WM_LBUTTONDOWN:{PostQuitMessage(0);break;}case WM_CREATE:{if (CMDOK){break;}CMDOK = CreateWindow("Button","&Set Window RGN",WS_CHILD | WS_VISIBLE,175,5,125,25,hwnd,(HMENU)IDOK,hInst,0);break;}case WM_COMMAND:{switch(HIWORD(wparam)){case BN_CLICKED:switch(LOWORD(wparam)){case IDOK:{// THIS IS THE CODE THAT DOES THE RESHAPING !!!!!HRGN WinRgn; // Create RGNWinRgn = CreateRoundRectRgn (0,0,278,378,363,363); // Specify shapeSetWindowRgn(hwnd,WinRgn,true); // Apply it to our main windowMessageBox(hwnd,"Window RGN Set, To exit, click on the window.",sAppName,MB_OK);ShowWindow(CMDOK,0); // Hide The "Set Window RGN" Command BUttonUpdateWindow(hwnd); // Redraw (Just in  case!)break;}}break;}}default:{return DefWindowProc(hwnd, msg, wparam, lparam);}}return false;};  I have also seen programs that use translucency in the corners of rounded windows (ie Konfabulator) to reduce aliasing.The effect I'm going for is to have the entire background semitransparent, not just shaped differently (which is what a window region does). The text has to be fully opaque so that it is readable.I have to do some more reading, but it looks like UpdateLayeredWindow is going to give me what I want.Thanks again.   