自定义窗口透明度源码

来源:互联网 发布:lol登录失败检查网络 编辑:程序博客网 时间:2024/06/13 01:31
#include <windows.h>#define ID_EDIT      1     //定义编辑框ID#define ID_BUTTON    2     //定义确定按钮IDLRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow){static TCHAR szAppName[] = TEXT ("HelloWin") ;HWND         hwnd ;MSG          msg ;WNDCLASS     wndclass ;wndclass.style         = CS_HREDRAW | CS_VREDRAW ;wndclass.lpfnWndProc   = WndProc ;wndclass.cbClsExtra    = 0 ;wndclass.cbWndExtra    = 0 ;wndclass.hInstance     = hInstance ;wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ;wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;wndclass.lpszMenuName  = NULL ;wndclass.lpszClassName = szAppName ;if (!RegisterClass (&wndclass)){MessageBox (NULL, TEXT ("This program requires Windows NT!"), szAppName, MB_ICONERROR) ;return 0 ;}hwnd = CreateWindow (szAppName,                  TEXT ("The Hello Program"), WS_OVERLAPPEDWINDOW,        CW_USEDEFAULT,              CW_USEDEFAULT,             CW_USEDEFAULT,              CW_USEDEFAULT,             NULL,                      NULL,                       hInstance,                 NULL) ;                     ShowWindow (hwnd, iCmdShow) ;UpdateWindow (hwnd) ;while (GetMessage (&msg, NULL, 0, 0)){TranslateMessage (&msg) ;DispatchMessage (&msg) ;}return msg.wParam ;}LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){static HWND hwndEdit ;static HWND hwndButton ;HDC         hdc ;PAINTSTRUCT ps ;RECT        rect ;TCHAR str[20];int i;switch (message){case WM_CREATE://产生子窗口控件:编辑框hwndEdit = CreateWindow (TEXT ("edit"), NULL,WS_CHILD | WS_VISIBLE | WS_BORDER | ES_LEFT |ES_AUTOHSCROLL | ES_AUTOVSCROLL,0, 0, 0, 0, hwnd, (HMENU) ID_EDIT,((LPCREATESTRUCT) lParam) -> hInstance, NULL) ;//产生子窗口控件:按钮hwndButton = CreateWindow(TEXT("button"),TEXT("确定"),WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,100,50,50,20,hwnd,(HMENU) ID_BUTTON,((LPCREATESTRUCT) lParam) -> hInstance, NULL);//增加窗口样式SetWindowLong(hwnd,GWL_EXSTYLE,WS_EX_LAYERED);//设置窗口透明度SetLayeredWindowAttributes(hwnd, RGB(255,255,255), 255, LWA_ALPHA);return 0 ;case WM_SETFOCUS :SetFocus (hwndEdit) ;//设置输入焦点return 0 ; case WM_SIZE ://创建文本框窗口大小MoveWindow (hwndEdit, 0, 0, LOWORD (lParam)/4, HIWORD (lParam)/16, TRUE) ;return 0 ;case WM_COMMAND :switch (LOWORD (wParam))case ID_BUTTON://将从编辑框获得的数值应用到窗口透明度里面去{GetDlgItemText(hwnd, ID_EDIT, str, sizeof(str)/sizeof(TCHAR));i = _wtoi(str);SetLayeredWindowAttributes(hwnd, RGB(255,255,255), i, LWA_ALPHA);}return 0; return 0;case WM_DESTROY:PostQuitMessage (0) ;return 0 ;}return DefWindowProc (hwnd, message, wParam, lParam) ;}


原创粉丝点击