UpdateLayeredWindow 绘制异型窗口
//设置头文件
#include "Gdiplus.h"
using namespace Gdiplus;
#pragma comment(lib,"Gdiplus.lib")
//在...app.h中
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
//初始化
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
//系统界面的消息循环
CGdiPlusTestDlg dlg;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
//关闭gdiplus的环境
GdiplusShutdown(gdiplusToken);
BOOL CGdiPlusTestDlg::UpdateWindow()
{
HDC hdc=::GetDC(m_hWnd);
HDC hdcMem=::CreateCompatibleDC(hdc);
HBITMAP hBmp=::CreateCompatibleBitmap(hdc,200,200);
::SelectObject(hdcMem,hBmp);
Graphics g(hdcMem);
Image img(L"C://ClockBackchain1.png");
g.DrawImage(&img,0,0,200,200);
CRect rc;
GetWindowRect(&rc);
POINT ptWindow={rc.left,rc.top};
SIZE szWindow={200,200};
POINT ptSrc={0,0};
BLENDFUNCTION blend;
blend.SourceConstantAlpha=255;
blend.BlendFlags = 0;
blend.BlendOp=0;
blend.AlphaFormat=1;
DWORD dwExStyle=GetWindowLong(m_hWnd,GWL_EXSTYLE);
if((dwExStyle&0x80000)!=0x80000)
SetWindowLong(m_hWnd,GWL_EXSTYLE,dwExStyle^0x80000);
BOOL nRet =::UpdateLayeredWindow(m_hWnd,hdc,&ptWindow,&szWindow,hdcMem,
&ptSrc,0,&blend,2);
::DeleteDC(hdcMem);
::ReleaseDC(m_hWnd,hdc);
return TRUE;
}
void CGdiPlusTestDlg::OnTimer(UINT nIDEvent)
{
UpdateWindow();
CDialog::OnTimer(nIDEvent);
}
UpdateLayeredWindow 绘制异型窗口相关推荐
- Windows核心编程_异型窗口(续)
上一篇文章介绍的是使用SetLayeredWindowAttributes API来实现异型窗口,但是很明显效果很差劲,在剔除颜色的过程中凹凸边缘区域的像素点会剔除的非常不明显,在查找信息之后,得出的 ...
- GDI+用PNG图片做半透明异型窗口
{*******************************************************} { ...
- WPF绘制自定义窗口
原文:WPF绘制自定义窗口 WPF是制作界面的一大利器,下面就用WPF模拟一下360的软件管理界面,360软件管理界面如下: 界面不难,主要有如下几个要素: 窗体的圆角 自定义标题栏及按钮 自定义状态 ...
- Windows核心编程_异型窗口
异型窗口是Windows200在窗口中引入的WS_EX_LAYERED风格,并搭配:SetLayeredWindowAttributes API实现的,这里所说的异型窗口不是指椭圆型的窗口或三角型之类 ...
- qt自定义窗口,其绘制的窗口边框线显示不全
引言 自定义窗口,该窗口包含标题栏,默认整个窗口的边框线为蓝色,当点击该窗口的时候,窗口的边框线便为红色.程序在运行的时候,窗口的边框线只显示了左右两边的线,没有显示上下边的线. 示例 效果: 解决方 ...
- 用户登录程序--绘制--遍历窗口
1.文本框,静态文本,按钮 2.获取文本框信息: 1.不绑定变量,直接用成员函数或者API GetDlgItemText ::GetWindowText 2.绑定变量,使用UpdateData,给变量 ...
- D3D初学入门一(配置开发环境及绘制D3D窗口)
最近一直接触的都是C#的东东,好久没写C++代码了,怕手生忘记了,打算写写C++的代码.写什么好呢?想来想去,以前的工作学过接触了些OpenGL,那我就学习一下D3D吧.原以为D3D的中文入门资料会很 ...
- Qt第四十一章:异型窗口
目录 一.素材 二.利用PPT转成背景透明图片编辑 三.剪裁一下去右下角的CSDN文字LOGO编辑 四.将图片放到启动py文件同级目录leaf.png 五.代码 一.素材 二.利用PPT转成背景透 ...
- DirectX3D 11 总结 —— 1 绘制 win32 窗口
directX 3D 是什么 DirectX 3D是一种应用程序的接口(API),它可让以windows为平台的游戏或多媒体程序获得更高的执行效率,加强3d图形和声音的效果,并提供设计人员一个共同的硬 ...
最新文章
- sql语句的简单记录
- 简单的PHP和MYSQL做投票系统_php mysql简单投票系统
- 关于Linux和Windows双系统共存时间问题
- linux设备支持ntfs类型U盘笔记
- Nginx的官方简介
- OpenShift 之 Quarkus(2)使用S2I部署Quarkus应用
- sudo报错案例-RHEL6
- Effective JavaScript Item 37 认识this的隐式指向
- WCF基础学习笔记--创建WCF服务
- IP地址的分类及子网划分
- Hessian学习(springboot环境)
- mysql 优化 整体思路
- 用python写网络爬虫-英文翻译
- 中国网游未来发展方向预测
- 《人类染色体与染色体病》学习笔记
- 【Web】lighttpd基础
- u深度制作linux启动盘制作工具,u深度u盘启动盘制作工具 v3.1.15.316
- 人生之路 — 成长轨迹
- java中常用的加密工具
- 计算机网考统考机考试操作题,计算机统考操作题常考题型
热门文章
- Oracle ORA-00904:invalid identifier 标识符无效
- (Oracle学习笔记) Oracle概述
- 微信二维码支付快速入门
- 简单工厂(SimpleFactory)模式简介
- oracle pivoting insert 用法简介
- 基于 ASK + EB 构建容器事件驱动服务
- 1.13 南京站 | 2022 开年 Serverless 沉浸式技术实践营开始报名
- 华为有了鸿蒙就可以翻身吗,鸿蒙2.0要来了,华为手机能靠此翻身吗?
- Linux环境安装JDK
- php编程用空格,shell 编程中空格的使用方法