資源簡介
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個文件信息
評論
共有 條評論