资源简介
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++实验继承与派生
相关资源
- C++实验继承与派生
- MATLAB模糊控制器*.fisC/C++接口文件
- 矩阵求逆C++源代码
- C++获取程序版本信息
- 迷宫求解含源代码
- 端口扫描VC++高级编程源代码
- 高效 C++ 屏幕找图 屏幕搜索 透明找
- 基于LSB的图片数据隐藏c++类
- 汽车修理厂管理系统(C++开发)
- 算术编码源程序c++程序
- c++求图的最短路径算法
- 用C++实现电影院订票系统
- c++学生成绩管理系统课程设计
- 单像空间后方交会c++程序代码
- [原创]使用MFC实现文档打印
- DES加密解密算法C++程序设计
- 用c++编写的一个学生信息管理系统,
- 基于C++的三帧差法
- C++ httpclient类
- 数据结构大作业航空客运订票系统
- C++课程设计报告及源程序学生学籍管
- 用c++实现围棋双人玩
- 使用微软蓝牙API的
- 水果专家系统
- 和矩阵相关的头文件matrix.h
- c++运行程序缺少mex.h
- C++面向对象程序设计教程(第3版)—
- MFC_unicode相关链接库
- 文件查重工具c++实现,
- 椭圆曲线加密算法实现
评论
共有 条评论