VS2019 实现C++ 窗体透明度设置片段_开心熊爱跳舞的博客-程序员秘密

技术标签: C++  c++  窗体设置  VS2019  

代码片段

//
//  函数: WndProc(HWND, UINT, WPARAM, LPARAM)
//
//  目标: 处理主窗口的消息。
//
//  WM_COMMAND  - 处理应用程序菜单
//  WM_PAINT    - 绘制主窗口
//  WM_DESTROY  - 发送退出消息并返回
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    
    switch (message)
    {
    
    case WM_COMMAND:
        {
    
            int wmId = LOWORD(wParam);
            // 分析菜单选择:
            switch (wmId)
            {
    
            case IDM_ABOUT:
                DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
                break;
            case IDM_EXIT:
                DestroyWindow(hWnd);
                break;
            default:
                return DefWindowProc(hWnd, message, wParam, lParam);
            }
        }
        break;
    case WM_PAINT:
        {
    
            PAINTSTRUCT ps;
            HDC hdc = BeginPaint(hWnd, &ps);
            SetWindowLong(hWnd, GWL_EXSTYLE, GetWindowLong(hWnd, GWL_EXSTYLE) ^ 0x80000);
            HINSTANCE  hInst = LoadLibrary(L"User32.DLL");
            if (hInst != NULL)
            {
    
                typedef BOOL(WINAPI* MYFUNC)(HWND, COLORREF, BYTE, DWORD);

                MYFUNC pFunc = (MYFUNC)GetProcAddress(hInst, "SetLayeredWindowAttributes");
                if (pFunc != NULL)
                {
    
                    pFunc(hWnd, 0, 100, 3);
                    //修改第三个参数的值可以修改透明度的状态(0~255)
                }
                FreeLibrary(hInst);
                hInst = NULL;
            }
            // TODO: 在此处添加使用 hdc 的任何绘图代码...
            EndPaint(hWnd, &ps);
        }
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}

效果展示
透明窗体效果

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_43220444/article/details/109387483

智能推荐

html5 鼠标滚轮跳一个页面,解决CSS3 Calc滚动条出现页面不跳动问题_张毅非的博客-程序员秘密

calc是css3的一个新功能,用来指定元素的长度,calc()最大的好处就是用在流体布局上,可以通过calc()计算得到元素的宽度。接下来脚本之家小编给大家分享CSS3 Calc实现滚动条出现页面不跳动问题,需要的朋友参考下吧什么是calc()?calc()从字面我们可以把他理解为一个函数function。其实calc是英文单词calculate(计算)的缩写,是css3的一个新增的功能,用来指...

AC自动机小结_weixin_30868855的博客-程序员秘密

一. 模板 1 struct Trie 2 { 3 int sz, M[256]; 4 int next[MAXN][50], fail[MAXN], end[MAXN]; 5 int root, L, id // L为结点个数, id为单词个数。id可选择使用 6 7 int newnode() 8...

2021年保育员(中级)考试试卷及保育员(中级)试题及答案_第二名 值日生使用的抹布在擦拭中应清洗掉_weixin_47565892的博客-程序员秘密

题库来源:安全生产模拟考试一点通公众号小程序2021年保育员(中级)考试试卷及保育员(中级)试题及答案,包含保育员(中级)考试试卷答案和解析及保育员(中级)试题及答案练习。由安全生产模拟考试一点通公众号结合国家保育员(中级)考试最新大纲及保育员(中级)考试真题汇总,有助于保育员(中级)复审模拟考试考前练习。1、【判断题】()活动量也称运动量,是指婴幼儿在活动中身体所承受的生理负担量。(√)2、【判断题】()高级情感主要是指快乐、内疚感和美感。(×)3、【判断题】()小组/...

vivo手机系统打印服务器,原来vivo手机自带扫描功能,文件瞬间电子化!几千的扫描仪省下了..._weixin_39828193的博客-程序员秘密

现在有越来越多的小伙伴喜欢使用国产手机,其中就有很多人对vivo手机情有独钟,因为vivo手机中各种强大的功能而圈了粉。那大家在用了一段时间的vivo以后,知道在手机中还带有非常强大的扫描功能吗?今天就让我们一起来看看吧~一、手机操作1.便签扫描很多小伙伴在使用vivo手机的时候,都会在手机里的【便签】中记录下一些重要的事情,但是大家知道吗?如果我们想要用手机将文件扫描成电子文件的话,用vivo便...

stm32驱动rgb屏电路图_基于STM32F767驱动 LTDC LCD(RGB屏)_好奇心十足的小姐姐的博客-程序员秘密

【实例简介】基于STM32F767驱动 LTDC LCD(RGB屏)可以作为参考资料【实例截图】【核心代码】基于STM32F767驱动LTDCLCD(RGB屏)└── 基于STM32F767驱动 LTDC LCD(RGB屏)├── CORE│ ├── cmsis_armcc.h│ ├── core_cm7.h│ ├── core_cmFunc.h│ ├── core_cmInstr...

公交线路查询系统 C++实现 图_next_adj_vex_白辰甲的博客-程序员秘密

一、需求与规格说明   本次实验涉及实际问题,实现公交线路系统的增删改查功能,建立公交线路网,用户可以在威海市范围内实用。   本次实验要求分为:1.实现根据给定的数据公交数据建立图的存储结构。2.实现公交站点的增删改。3.实现公交线路的增删改。4.实现公交路线图的显示,在我的程序中,由于水平有限,在显示时仅输出邻接矩阵,没有以图的方式显示出来。5.实现用户给定两个站点

随便推点

6.DI依赖注入环境_陆源东的博客-程序员秘密

6.DI依赖注入环境依赖注入​ 依赖注入(DI)是一个过程,通过该过程,对象只能通过构造函数参数,工厂方法的参数或在构造或创建对象实例后在对象实例上设置的属性来定义其依赖关系(即,与它们一起工作的其他对象),从工厂方法返回。然后,**容器在创建bean时注入那些依赖项。**从根本上讲,此过程是通过使用类的直接构造或服务定位器模式来控制其依赖项的实例化或位置的Bean本身的逆过程(因此称为控制反转)。​ 使用DI原理,代码更简洁,当为对象提供依赖项时,去耦会更有效。该对象不查找其依赖项,并且不知道依

Django_restframework_小火skr车的博客-程序员秘密

Django_restframework中的view的继承关系GenericViewSet(viewset) -drf GenericAPIView -drf APIView -drf View -djangoMixinsCreateModelMixin(object)ListModelMin...

黑马程序员——OC学习笔记08 Foundation框架常用的几个结构体和类。_gjgoodjob271的博客-程序员秘密

一、常用的结构体NSRange 表示范围成员:都是unsigned long类型的。  location位置,length长度.定义方式:1、NSRange r1 = {2,4};//可读性不强,一般不用2、NSRange r2 = {.location = 2, .length = 4};//太多余麻烦,一般不用3、NSRange r3 =

产品价值分析:商业画布、影响地图、故事地图_leowang5566的博客-程序员秘密

敏捷特别强调交付“价值”给客户,团队必须做对客户有价值的事情。所以,无论是开发还是测试,都需要关注产品的价值。测试具有保证质量的责任,之前谈质量,更多是从质量模型所定义的质量特性(比如功能、性能、安全性等)出发;而在敏捷中,从客户价值出发更有意义,所以这一讲,我们就来讨论产品价值分析。产品价值是基础产品价值是软件研发的基础,用户只有认可产品的价值才会购买并使用它。敏捷团队首先需要了解的是产品可以带给用户什么样的价值,以及谁才是目标用户;其次才是需求分析和功能特性的实现。然而在实际工作中,研发团队

高通平台上的AMSS(Modem端) windows环境搭建_蓝白天际线的博客-程序员秘密

高通平台上的AMSS(Modeom端)Windows环境搭建一、首先简单介绍一下,高通平台7&8系列平台的软硬件架构。如图:硬件上采用的是ARM9+ARM11(最新的采用Cotex-A8或是Cotex-A9)的架构。其中Android是在ARM11上运行,而ARM9部分负责处理通信协议、射频、GPIO等,或者可以称作MODEM端,同样也运行一个OS,称为

解读哈希表_weixin_33681778的博客-程序员秘密

2019独角兽企业重金招聘Python工程师标准>>> ...

推荐文章

热门文章

相关标签