资源简介
MFC环境下的桌面宠物,金鱼。。。。。。。。。。。。。。。。。
使用方法:
//0,添加left.png,right.png资源文件
//1, 头文件定义变量
GoldFish pet;
//2, 在CPP文件创建
// Create a goldfish
if (!pet.Create(NULL, NULL, WS_CHILD | WS_VISIBLE, CRect(0,0,0,0), /* CWnd:: */ GetDesktopWindow(), 0x556))
{
TRACE0("can not create desktop pet, goldfish.");
}
pet.UpdateWindow();
代码片段和文件信息
// MGoldFishWnd.cpp : 实现文件
//
#include “stdafx.h“
#include “lrPrint.h“
#include “GoldFish.h“
// GoldFish
IMPLEMENT_DYNAMIC(GoldFish CWnd)
GoldFish::GoldFish()
{
}
GoldFish::~GoldFish()
{
}
BEGIN_MESSAGE_MAP(GoldFish CWnd)
ON_WM_CREATE()
ON_WM_TIMER()
ON_WM_DESTROY()
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_WM_MOUSEMOVE()
ON_WM_RBUTTONDBLCLK()
ON_WM_SIZE()
END_MESSAGE_MAP()
// GoldFish 消息处理程序
int GoldFish::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CWnd::OnCreate(lpCreateStruct) == -1)
return -1;
SetWindowText(L“MGoldFish“);
m_nIDEvent = TIME_ID;
SetTimer(m_nIDEvent 50 NULL);
hFuncInst = LoadLibrary(L“User32.DLL“);
BOOL bRet=FALSE;
if(hFuncInst)
UpdatelayeredWindow = (MYFUNC)GetProcAddress(hFuncInst “UpdatelayeredWindow“);
else
{
//AfxMessageBox(“User32.dll ERROR!“);
exit(0);
}
ImageFromIDResource(IDB_PNG_LEFT L“PNG“m_pImageLeft);
ImageFromIDResource(IDB_PNG_RIGHT L“PNG“m_pImageRight);
m_BakWidth = m_pImageLeft->GetWidth()/20;
m_BakHeight = m_pImageLeft->GetHeight();
frame = 0;
mouseDown = false;
haveHandle = false;
MaxCount = 50;
stepX = 2;
stepY = 0;
count = 0;
speedMode = false;
left = 0;
top = 0;
toRight = true;
frameCount = 20;
frame = 0;
frameWidth = 100;
frameHeight = 100;
oldPoint.x = 0;
oldPoint.y = 0;
m_Blend.BlendOp=0;
m_Blend.BlendFlags=0;
m_Blend.AlphaFormat=1;
m_Blend.SourceConstantAlpha=255;
sizeWindow.cx = m_BakWidth
sizeWindow.cy = m_BakHeight;
ptSrc.x = 0;
ptSrc.y = 0;
//Modifystyle(WS_CAPTION0SWP_frameCHANGED); //去除标题栏
ModifystyleEx (WS_EX_APPWINDOW WS_EX_TOOLWINDOW ); //去除任务栏窗口对应按钮
::SetWindowPos(m_hWnd HWND_TOPMOST300300 m_pImageLeft->GetWidth()/20 m_pImageLeft->GetHeight()SWP_NOSIZE|SWP_NOMOVE);
DWORD dwExstyle=::GetWindowLong(m_hWndGWL_EXstyle);
if((dwExstyle&0x80000)!=0x80000)
::SetWindowLong(m_hWndGWL_EXstyledwExstyle^0x80000);
return 0;
}
void GoldFish::OnTimer(UINT_PTR nIDEvent)
{
if ( m_nIDEvent != nIDEvent )
CWnd::OnTimer(nIDEvent);
else
{
if (!mouseDown)
{
count++;
if (count > MaxCount)
{
MaxCount = rand()*(70-0)/RAND_MAX+70 + 30;
//if (speedMode) timerSpeed.Interval = 50;
count = 0;
float r = (float)rand()/(float)RAND_MAX;
stepX = r * 3 + 0.5f;
stepY = ( r - 0.5f) * 0.5f;
}
left = (int)(left + (toRight ? 1 : -1) * stepX);
top = (int)(top + stepY);
FixLeftTop();
::SetWindowPos(m_hWnd HWND_TOPMOST left top m_pImageLeft->GetWidth()/20 m_pImageLeft->GetHeight()SWP_SHOWWINDOW);
TRACE2(“left=%d top=%d\n“ left top);
//this.Left = (int)left;
//this.Top = (int)top;
}
frame++;
if (frame >= frameCount) frame = 0;
UpdateFishDisplay();
}
}
void GoldFish::OnDestroy()
{
KillTimer(m_nIDEvent);
CleanBitmap();
delete m_pImageLeft;
delete m_pImageRight; 属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7616 2014-01-08 13:50 goldfish\GoldFish.cpp
文件 1711 2014-01-08 13:38 goldfish\GoldFish.h
文件 205721 2014-01-08 12:41 goldfish\res\Left.png
文件 6542 2012-03-05 19:57 goldfish\res\mgoldfish.ico
文件 204894 2014-01-08 12:41 goldfish\res\Right.png
文件 6542 2012-03-05 19:57 goldfish\res\small.ico
目录 0 2014-01-08 13:58 goldfish\res
目录 0 2014-01-08 13:58 goldfish
----------- --------- ---------- ----- ----
433026 8
- 上一篇:MATLAB模糊控制器*.fisC/C++接口文件
- 下一篇:C++实验继承与派生
相关资源
- 国际象棋的qt源代码
- C++中头文件与源文件的作用详解
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- 利用C++哈希表的方法实现电话号码查
- 移木块游戏,可以自编自玩,vc6.0编写
- C++纯文字DOS超小RPG游戏
- VC++MFC小游戏实例教程(实例)+MFC类库
- 连铸温度场计算程序(C++)
- 6自由度机器人运动学正反解C++程序
- Em算法(使用C++编写)
- libstdc++-4.4.7-4.el6.i686.rpm
- VC++实现CMD命令执行与获得返回信息
- 白话C++(全)
- C++标准库第1、2
- 大数类c++大数类
- C++语言编写串口调试助手
- c++素数筛选法
- C++ mqtt 用法
- 商品库存管理系统 C++ MFC
- c++ 多功能计算器
- C++17 In Detail
- 嵌入式QtC++编程课件
- 颜色识别形状识别STM103嵌入式代码
- c++ 邮件多附件群发
- c++ 透明代理(hookproxy)
- mfc 调用redis
- FTP客户端源码(c++)
- c++ 画图(14Qt-XPS)
- c++多边形交并差运算
川公网安备 51152502000135号
评论
共有 条评论