资源简介
vs2010开发的悬浮窗实现方法,里面有四种悬浮窗口示例,并附有效果图,做的美工好些的位图可以实现类似360、迅雷那样的悬浮窗。
博客链接:http://blog.csdn.net/tulingwangbo/article/details/79277715
代码片段和文件信息
// MyWnd.cpp : 实现文件
//
#include “stdafx.h“
#include “Control.h“
#include “CursorPng.h“
#include “MFCXXX.h“
// CCursorPng
/////////////////////////////////////////////////////////////////////////////
#define TIMER_MOVEWND 11
#define TIMERID_TEST 22
IMPLEMENT_DYNAMIC(CCursorPng CWnd)
//HBITMAP CCursorPng::m_hBkBmp = NULL;
void SYRSetBitmapToDC(
/* [in ] */ HBITMAP hBmp
/* [in ] */ HDC hDC
/* [in ] */ DWORD dwRop
/* [in ] */ const CRect& rcDst)
{
HDC dcMem = CreateCompatibleDC(hDC);
BITMAP bm;
Getobject(hBmp sizeof(bm) &bm);
HBITMAP hOldBit = (HBITMAP)Selectobject(dcMem hBmp);
if(rcDst.Width()==bm.bmWidth && rcDst.Height()==bm.bmHeight)
{
BitBlt(hDC rcDst.left rcDst.top rcDst.Width() rcDst.Height() dcMem 0 0 dwRop); //左上角
}
else
{
StretchBlt(hDC rcDst.left rcDst.top rcDst.Width() rcDst.Height() dcMem 0 0 bm.bmWidth bm.bmHeight dwRop);
}
Selectobject(dcMem hOldBit);
DeleteDC(dcMem);
}
CCursorPng::CCursorPng(CWnd *pTarWnd)
{
if (pTarWnd)
{
m_pParentWnd = pTarWnd;
}else{
m_pParentWnd = CWnd::GetDesktopWindow();
}
m_hBkBmp = NULL;
m_pFont = NULL;
m_strText =_T(““);
m_clText = 0;
m_clBk = RGB(255 0 0);
m_Alpha = 88;
m_hBkBmp = NULL;//背景位图
m_bIsRunning = FALSE;
m_pImgDef = m_pImgFront = m_pImgBk = NULL;
m_nPercent = m_lSpeed = 0;
}
CCursorPng::~CCursorPng()
{
}
BEGIN_MESSAGE_MAP(CCursorPng CWnd)
ON_WM_PAINT()
ON_WM_NCPAINT()
ON_WM_SIZE()
ON_WM_NCCALCSIZE()
ON_WM_LBUTTONUP()
ON_WM_ERASEBKGND()
ON_WM_LBUTTONDOWN()
ON_WM_SETCURSOR()
ON_WM_CONTEXTMENU()
ON_WM_CREATE()
ON_WM_TIMER()
ON_COMMAND(ID_FLOAT_START &CCursorPng::OnFloatStart)
ON_COMMAND(ID_FLOAT_STOP &CCursorPng::OnFloatStop)
END_MESSAGE_MAP()
// CCursorPng 消息处理程序
void CCursorPng::OnPaint()
{
if (m_bIsRunning)
{
DrawProgress();
}
else
{
DrawDefault();
}
}
void CCursorPng::DrawProgress()
{
CPaintDC dc(this); // device context for painting
CRect rectClient;
GetClientRect(&rectClient);
CDC memdc;
CDC memBitmapDC;
memdc.CreateCompatibleDC(&dc);
memBitmapDC.CreateCompatibleDC(&dc);
CBitmap bitmap;
bitmap.CreateCompatibleBitmap(&dcrectClient.Width()rectClient.Height());
memdc.Selectobject(bitmap.m_hobject);
CRect rcInner = rectClient;
//rcInner.DeflateRect(1 1);
//draw bg
if (m_hBkBmp)
{
SYRSetBitmapToDC(m_hBkBmp memdc.m_hDC SRCCOPY rcInner );
}else{
COLORREF clrBg=RGB(99110121);
COLORREF clrTopLeft=RGB(616771);
COLORREF clrRightBottom=RGB(415785);
memdc.FillSolidRect(&rcInnerm_clBk);
}
//画边框,可由OnNcPaint完成;
//memdc.Draw3dRect(rectClientclrTopLeftclrRightBottom);
// CBrush brush;//(RGB(255 0 0));
// brush.CreateSolidBrush(RGB(255 0 0)/*(207 240 254)*/);
// memdc.frameRgn(&m_rgnWnd &brush 1 1);
// brush.Deleteobject();
if ( m_pImgBk && m_pImgFront)
{
//绘制背景图
m_pImgBk->D
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 8117760 2018-02-07 09:32 FloatWnd\Debug\MFCXXX.exe
文件 16109 2018-02-05 13:38 FloatWnd\Debug\Skins\circleFront.png
文件 3014 2018-02-03 16:30 FloatWnd\Debug\Skins\circleGray--.png
文件 19571 2018-02-05 13:37 FloatWnd\Debug\Skins\circleGray.png
文件 3942 2018-02-03 16:30 FloatWnd\Debug\Skins\circleRed--.png
文件 18661 2018-02-05 13:37 FloatWnd\Debug\Skins\circleRed.png
文件 57301 2018-02-03 10:29 FloatWnd\Debug\Skins\grape.png
文件 55328 2018-02-03 10:26 FloatWnd\Debug\Skins\strawberry.png
文件 885 2018-02-02 21:44 FloatWnd\FloatWnd.sln
..A..H. 41472 2018-02-07 09:46 FloatWnd\FloatWnd.suo
文件 20650 2018-02-07 09:26 FloatWnd\MFCXXX\CursorPng.cpp
文件 1880 2018-02-04 14:55 FloatWnd\MFCXXX\CursorPng.h
文件 13394 2018-02-02 11:30 FloatWnd\MFCXXX\DlgFloat-2.cpp
文件 2810 2018-02-01 14:36 FloatWnd\MFCXXX\DlgFloat-2.h
文件 12050 2018-02-03 17:56 FloatWnd\MFCXXX\DlgFloat.cpp
文件 2775 2018-01-27 23:51 FloatWnd\MFCXXX\DlgFloat.h
文件 3033 2016-06-07 14:17 FloatWnd\MFCXXX\MemBitDC.cpp
文件 1399 2018-02-06 17:48 FloatWnd\MFCXXX\MemBitDC.h
文件 162228 2018-02-07 09:27 FloatWnd\MFCXXX\MFCXXX.APS
文件 2535 2018-02-06 18:11 FloatWnd\MFCXXX\MFCXXX.cpp
文件 471 2018-02-06 18:09 FloatWnd\MFCXXX\MFCXXX.h
文件 14142 2018-02-07 09:27 FloatWnd\MFCXXX\MFCXXX.rc
文件 6938 2018-02-07 09:27 FloatWnd\MFCXXX\MFCXXX.vcxproj
文件 3842 2018-02-07 09:27 FloatWnd\MFCXXX\MFCXXX.vcxproj.filters
文件 380 2018-02-03 18:20 FloatWnd\MFCXXX\MFCXXX.vcxproj.user
文件 5341 2018-02-07 09:15 FloatWnd\MFCXXX\MFCXXXDlg.cpp
文件 935 2018-02-06 18:01 FloatWnd\MFCXXX\MFCXXXDlg.h
文件 4017 2016-04-19 16:53 FloatWnd\MFCXXX\ReadMe.txt
文件 6966 2018-01-27 15:06 FloatWnd\MFCXXX\res\backgrou.bmp
文件 1270 2009-08-31 02:32 FloatWnd\MFCXXX\res\bitmap1.bmp
............此处省略36个文件信息
相关资源
- Visual.Assist.X助手及其注册码 VC++
- MFC网络聊天工具
- VC++实现的软件自动更新模块Updater源码
- 计算器MFC+VC++
- vc++2010学习版Microsoft Visual C++ 2010 Exp
- VC++实现科学计算器
- vc++mfc经典数字图像处理程序
- 抓包源码,有兴趣的拿走
- vc++调用usb摄像头,进行拍照,保存为
- VC++6.0编译通过的读写CSV文件的代码及
- 基于VC++的UDP文件传输系统
- MFC停车场车辆信息管理系统附数据库
- VC++实现灰度图像的6种边缘检测算子
- VC++MFC抓包程序源码
- VC++图像处理源码库
- B样条曲线生成算法,用VC++加OpenGL写的
- 通用杀毒软件VC++源代码
- VC++实现Contourlet图像处理
- 轴承表面质量缺陷识别与统计系统
- VC++ MFC科学计算器,含代码和整个工程
- VC++实现小波变换
- VC++实现简单的用户登录系统ADO。包括
- VC++实现简单的用户登录系统,包括修
- diffie-hellman密钥交换协议vc++实现
- 军棋源代码
- 基于opencv的傅里叶描述子VC++代码
- VC++深入详解光盘代码!
- 基于单片机的温湿度采集系统/VC++上位
- 基于有线局域网语音聊天系统VC++实现
- 基于SNMP的IP流量统计(VC++实现)源代
评论
共有 条评论