zoukankan      html  css  js  c++  java
  • win32 透明置顶

    结论

    	//SetWindowLong(mainWnd, GWL_EXSTYLE, GetWindowLong(mainWnd, GWL_EXSTYLE) | WS_EX_LAYERED);
    	// 指定在组合分层窗口时要使用的透明度颜色键。窗口以这种颜色绘制的所有像素都将是透明的。
    	SetLayeredWindowAttributes(mainWnd, 0xffffff, -1, LWA_COLORKEY);
    	// LWA_COLORKEY 0x00000001 使用crKey作为透明度颜色。
    	// LWA_ALPHA 0x00000002 使用bAlpha确定分层窗口的不透明度。
    	// Alpha 值用于描述分层窗口的不透明度。当bAlpha为 0 时,窗口是完全透明的。当bAlpha为 255 时,窗口是不透明的。
    	//SetLayeredWindowAttributes(mainWnd, RGB(0, 0, 0), 150, LWA_ALPHA);
    

    透明背景

    case WM_PAINT: {
    		printf("HH\n");
    		PAINTSTRUCT ps;
    		HDC hdc = BeginPaint(hwnd, &ps);
    
    		HBRUSH brush = CreateSolidBrush(0x10000ff); // 1表示透明
    		//FillRect(hdc, &ps.rcPaint, (HBRUSH)(COLOR_WINDOW + 1));
    		FillRect(hdc, &ps.rcPaint, brush);
    
    		EndPaint(hwnd, &ps);
    		return 0;
    	}
    

    置顶

    HWND mainWnd = CreateWindowEx(
    		//0 && WS_EX_TOOLWINDOW | WS_EX_TOPMOST,               // Optional window styles. WS_EX_TOOLWINDOW 隐藏任务栏标签。WS_EX_TOPMOST 置于顶层。已有窗口使用SetWindowPos()修改。
    		// WS_EX_TOOLWINDOW可能拖动到系统状态栏,因此置顶
    		// WS_EX_TRANSPARENT 忽略消息
    		WS_EX_TOPMOST | WS_EX_TRANSPARENT,
    		CLASS_NAME,    
    
    );
    
    	SetWindowLong(mainWnd, GWL_EXSTYLE, GetWindowLong(mainWnd, GWL_EXSTYLE) | WS_EX_LAYERED);
    	SetLayeredWindowAttributes(mainWnd, RGB(255, 0, 0), 0, LWA_COLORKEY); // CreateSolidBrush(0x1...启用透明
            SetLayeredWindowAttributes(mainWnd, RGB(0, 0, 0), 80, LWA_ALPHA); // 直接设置整个窗口的alpha值
    
  • 相关阅读:
    深入理解Java中的final关键字
    【事故处理】开车撞了人,一定要这样处理,否则后悔终生!
    spark、storm与Hadoop
    深入理解Java中的final关键字
    java并发之原子性、可见性、有序性
    java中重写equals和hashCode方法
    RESTClient插件POST方法传递参数
    Java内部类的作用
    java常用设计模式
    思辨: 讨论交流和独立思考谁更重要。
  • 原文地址:https://www.cnblogs.com/develon/p/15620570.html
Copyright © 2011-2022 走看看