位图的应用(七夕情人节贺卡)
来源:互联网 发布:ui设计师老被叫美工 编辑:程序博客网 时间:2024/04/30 12:32
最近我总是在想如何在程序中添加gif动画使其看起来像QQ邮箱中的贺卡一样即会动又会播放音乐,功夫不负有心人,我终于在网上找到了一些相关的博客,就是上一篇转载的博客位图的应用,看了一下也跟着博客做出了数字时钟,做完后我就想将代码移到DialogBasedApplication上居然成功了,我就利用这篇博客中不停的加载位图的方法,居然成功了,做成了像QQ邮箱中那样的贺卡
在制作前还是老规矩需要准备几张位图和图标文件以及一个WAV格式的音乐文件
位图还要有点特色,最好是一个动画的动作图,我是在网上找了一个简单的gif动画,用暴风影音中自带的截图工具将每个动作截图,然后将图片转换成位图
图片
程序代码:
#include "stdafx.h"#include <windows.h>#include <windowsx.h>#include <mmsystem.h>#include "resource.h"#include "MainDlg.h"HBITMAP hBitmap;//位图句柄int x,y;//位图的位置int cxBitmap, cyBitmap;//位图的宽度和位图的高度BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam){ switch(uMsg) { HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog); HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand);HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose); } return FALSE;}//回调函数void CALLBACK TimerProc(HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime){BITMAP bitmap;//位图结构//得到数字时钟的实例句柄HINSTANCE hInstance = (HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE);for(int i=1;i<=6;i++){if(1 == i){ //加载位图hBitmap = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP1));}else if(2 == i){hBitmap = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP2));} else if(3 == i){hBitmap = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP3));} else if(4 == i){hBitmap = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP4));} else if(5 == i){hBitmap = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP5));} else if(6 == i){hBitmap = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP6));}//得到位图的信息 GetObject(hBitmap, sizeof(BITMAP), &bitmap);cxBitmap = bitmap.bmWidth;//位图的宽度cyBitmap = bitmap.bmHeight;;//位图的高度HDC hdc;//设备环境句柄hdc = GetDC(hwnd);//得到设备环境句柄HDC hdcMem;//设备环境句柄//创建一个与DC兼容的设备环境hdcMem = CreateCompatibleDC(hdc);//选择位图SelectObject(hdcMem,hBitmap);//处理位图BitBlt(hdc, 0, 0, cxBitmap, cyBitmap, hdcMem, 0, 0, SRCCOPY); /* hdc:表示设备环境句柄 0:表示时间显示区在矩形框中的位置的横坐标 0:表示时间显示区在矩形框中的位置的纵坐标cxBitmap:位图的宽度cyBitmap:每个数字的高度hdcMem:设备环境句柄0:位图中的X坐标 0:位图中的Y坐标*/Sleep(1000);//停顿1秒钟DeleteDC(hdcMem);//释放环境句柄ReleaseDC(hwnd, hdc);//释放环境句柄}}BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam){/*在窗口的标题栏上显示图标*/SendMessage(hwnd, WM_SETICON, ICON_SMALL, (LPARAM)LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ICON1)));//设定定时器SetTimer(hwnd, 1,1,TimerProc);//得到程序的实例句柄HINSTANCE hinstance=(HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE); //播放音乐PlaySound(MAKEINTRESOURCE(IDR_WAVE1),hinstance,SND_RESOURCE|SND_ASYNC | SND_LOOP); return TRUE;}void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify){ switch(id) { case IDC_OK:{} break; default:break; }}void Main_OnClose(HWND hwnd){exit(0);}
执行结果
点击下载贺卡
1 0
- 位图的应用(七夕情人节贺卡)
- Cocos2d-X实现七夕情人节贺卡
- 七夕情人节的祝福
- 七夕情人节的由来
- 迟到的七夕情人节祝福
- 七夕情人节
- 七夕情人节
- 七夕情人节
- 纪念七夕情人节的完美婚姻算法
- Html5,CSS3实现一个七夕贺卡(仿)
- 贺卡应用
- 七夕,中国情人节
- GF送的贺卡:)
- 送人玫瑰,手有余香----七夕情人节的电子玫瑰
- "七夕"中国的情人节,我们领证了!
- 夫子庙美食和七夕情人节
- 七夕情人节,祝天下有情人终成眷属
- 2009 中国七夕情人节 --期待
- MongoDB数据库的备份与恢复详解(1)
- onvif Device端开发
- sqlserver和oracle以及mysql的分页
- TCP与UDP的区别
- ASp.net中Froms验证方式
- 位图的应用(七夕情人节贺卡)
- 可以让你少奋斗十年的工作经验
- 算法之旅 直奔map
- Forms身份验证基本原理
- keepalived+lvs+realserver+conf
- SSH无法连接到RHEL服务器
- 常用正则表达式 验证收集
- ORA-00600: internal error code, arguments: [3705], [1], [2], [2], [0], [], [], []
- 【第三方SDK】使用ShareSDK实现新浪微博的一键分享功能