Windows界面编程第十三篇 位图显示特效合集
2013-12-30 18:07
483 查看
本文配套程序下载地址为:http://download.csdn.net/detail/morewindows/5177047
转载请标明出处,原文地址:/article/1392144.html
欢迎关注微博:http://weibo.com/MoreWindows
Windows界面编程之位图显示特效系列目录:
1. 《Windows界面编程第九篇位图显示特效交错效果》
/article/1392148.html
2. 《Windows界面编程第十篇位图显示特效百叶窗效果》
/article/1392147.html
3. 《Windows界面编程第十一篇位图显示特效随机积木效果》
/article/1392146.html
4. 《Windows界面编程第十二篇位图显示特效飞入效果与伸展效果》
/article/1392145.html
5. 《Windows界面编程第十三篇位图显示特效合集》
/article/1392144.html
前面的四篇已经介绍了位图的交错效果、百叶窗效果、随机积木效果、飞入效果与伸展效果。下面用一个程序将展示这些效果。这里给出主要代码(下载地址见:http://download.csdn.net/detail/morewindows/5177047)。代码中的DragAcceptFiles可以参考《Windows界面编程第七篇文件拖拽(文件拖放)》(/article/1392160.html),主要是为了能将位图文件拖入到窗口中。
下面是程序所展示的一种显示效果(图片不能打开,请访问/article/1392144.html)。
![](http://img.my.csdn.net/uploads/201303/21/1363843472_6856.png)
更多显示效果可以参考前面的交错效果、百叶窗效果、随机积木效果、飞入效果与伸展效果博客中的示例。
本文配套程序下载地址为:http://download.csdn.net/detail/morewindows/5177047
转载请标明出处,原文地址:/article/1392144.html
欢迎关注微博:http://weibo.com/MoreWindows
转载请标明出处,原文地址:/article/1392144.html
欢迎关注微博:http://weibo.com/MoreWindows
Windows界面编程之位图显示特效系列目录:
1. 《Windows界面编程第九篇位图显示特效交错效果》
/article/1392148.html
2. 《Windows界面编程第十篇位图显示特效百叶窗效果》
/article/1392147.html
3. 《Windows界面编程第十一篇位图显示特效随机积木效果》
/article/1392146.html
4. 《Windows界面编程第十二篇位图显示特效飞入效果与伸展效果》
/article/1392145.html
5. 《Windows界面编程第十三篇位图显示特效合集》
/article/1392144.html
前面的四篇已经介绍了位图的交错效果、百叶窗效果、随机积木效果、飞入效果与伸展效果。下面用一个程序将展示这些效果。这里给出主要代码(下载地址见:http://download.csdn.net/detail/morewindows/5177047)。代码中的DragAcceptFiles可以参考《Windows界面编程第七篇文件拖拽(文件拖放)》(/article/1392160.html),主要是为了能将位图文件拖入到窗口中。
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { static int s_nShow; static HDC s_hdcMem; static int s_nWidth, s_nHeight; switch (message) { case WM_CREATE: { DragAcceptFiles(hwnd, TRUE); // 加载位图 HBITMAP hBitmap; hBitmap = (HBITMAP)LoadImage(NULL, "107.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION); if (hBitmap == NULL) { MessageBox(hwnd, "LoadImage failed", "Error", MB_ICONERROR); exit(0); } // 位图HDC HDC hdc = GetDC(hwnd); s_hdcMem = CreateCompatibleDC(hdc); SelectObject(s_hdcMem, hBitmap); ReleaseDC(hwnd, hdc); // 计算位图宽高 BITMAP bm; GetObject(hBitmap, sizeof(bm), &bm); s_nWidth = bm.bmWidth; s_nHeight = bm.bmHeight; s_nShow = 0; } return 0; case WM_KEYDOWN: switch (wParam) { case VK_ESCAPE: //按下Esc键时退出 SendMessage(hwnd, WM_DESTROY, 0, 0); return 0; } break; case WM_PAINT: { HDC hdc; PAINTSTRUCT ps; hdc = BeginPaint(hwnd, &ps); switch (s_nShow) { case 0: BitBlt(hdc, 0, 0, s_nWidth, s_nHeight, s_hdcMem, 0, 0, SRCCOPY); break; // 水平交错 case 1: AnimateDraw_StaggeredHorizontal(hdc, s_hdcMem, s_nWidth, s_nHeight); break; // 垂直交错 case 2: AnimateDraw_StaggeredVertical(hdc, s_hdcMem, s_nWidth, s_nHeight); break; // 水平百叶窗 case 3: AnimateDraw_JalousieHorizontal(hdc, s_hdcMem, s_nWidth, s_nHeight); break; // 垂直百叶窗 case 4: AnimateDraw_JalousieVertical(hdc, s_hdcMem, s_nWidth, s_nHeight); break; // 随机积木 case 5: AnimateDraw_RandomBlocks(hdc, s_hdcMem, s_nWidth, s_nHeight); break; // 飞入 从上往下 case 6: AnimateDraw_FlyingTopToBottom(hdc, s_hdcMem, s_nWidth, s_nHeight, 2, FALSE); break; // 飞入 从下往上 case 7: AnimateDraw_FlyingBottomToTop(hdc, s_hdcMem, s_nWidth, s_nHeight, 2, FALSE); break; // 飞入 从左往右 case 8: AnimateDraw_FlyingLeftToRight(hdc, s_hdcMem, s_nWidth, s_nHeight, 2, FALSE); break; // 飞入 从右往左 case 9: AnimateDraw_FlyingRightToLeft(hdc, s_hdcMem, s_nWidth, s_nHeight, 2, FALSE); break; // 伸展 从上往下 case 10: AnimateDraw_FlyingTopToBottom(hdc, s_hdcMem, s_nWidth, s_nHeight); break; // 伸展 从下往上 case 11: AnimateDraw_FlyingBottomToTop(hdc, s_hdcMem, s_nWidth, s_nHeight); break; // 伸展 从左往右 case 12: AnimateDraw_FlyingLeftToRight(hdc, s_hdcMem, s_nWidth, s_nHeight); break; // 伸展 从右往左 case 13: AnimateDraw_FlyingRightToLeft(hdc, s_hdcMem, s_nWidth, s_nHeight); break; } if (s_nShow != 0) { s_nShow = 0; InvalidateRect(hwnd, NULL, FALSE); } EndPaint(hwnd, &ps); } return 0; case WM_COMMAND: if (LOWORD(wParam) >= 40001 && LOWORD(wParam) <= 40013) { s_nShow = LOWORD(wParam) - 40000; InvalidateRect(hwnd, NULL, TRUE); return 0; } break; // 文件拖拽第三步 DragQueryFile and DragQueryFile case WM_DROPFILES: { HDROP hDrop = (HDROP)wParam; UINT nFileNum = DragQueryFile(hDrop, 0xFFFFFFFF, NULL, 0); // 拖拽文件个数 char strFileName[MAX_PATH]; DragQueryFile(hDrop, 0, strFileName, MAX_PATH);//获得拖曳的文件名 DragFinish(hDrop); //释放hDrop DeleteDC(s_hdcMem); // 加载位图 HBITMAP hBitmap; hBitmap = (HBITMAP)LoadImage(NULL, strFileName, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION); // 位图HDC HDC hdc = GetDC(hwnd); s_hdcMem = CreateCompatibleDC(hdc); SelectObject(s_hdcMem, hBitmap); ReleaseDC(hwnd, hdc); // 计算位图宽高 BITMAP bm; GetObject(hBitmap, sizeof(bm), &bm); s_nWidth = bm.bmWidth; s_nHeight = bm.bmHeight; InvalidateRect(hwnd, NULL, TRUE); } return 0; case WM_DESTROY: DeleteDC(s_hdcMem); PostQuitMessage(0); return 0; } return DefWindowProc(hwnd, message, wParam, lParam); }
下面是程序所展示的一种显示效果(图片不能打开,请访问/article/1392144.html)。
![](http://img.my.csdn.net/uploads/201303/21/1363843472_6856.png)
更多显示效果可以参考前面的交错效果、百叶窗效果、随机积木效果、飞入效果与伸展效果博客中的示例。
本文配套程序下载地址为:http://download.csdn.net/detail/morewindows/5177047
转载请标明出处,原文地址:/article/1392144.html
欢迎关注微博:http://weibo.com/MoreWindows
相关文章推荐
- Windows界面编程第十三篇 位图显示特效合集
- Windows界面编程第十三篇 位图显示特效合集
- Windows界面编程第十三篇 位图显示特效合集
- Windows界面编程第九篇 位图显示特效 交错效果
- Windows界面编程第十二篇 位图显示特效 飞入效果与伸展效果
- Windows界面编程第三季位图特效显示——交错、百叶窗、随机积木、飞入伸展
- Windows界面编程第十一篇 位图显示特效 随机积木效果
- Windows界面编程第十篇 位图显示特效 百叶窗效果
- Windows界面编程第十一篇 位图显示特效 随机积木效果
- Windows界面编程第十二篇 位图显示特效 飞入效果与伸展效果
- Windows界面编程第十篇 位图显示特效 百叶窗效果
- Windows界面编程第九篇 位图显示特效 交错效果
- Windows界面编程第八篇 listbox彩色显示隔行变色
- Windows界面编程第一篇 位图背景与位图画刷
- Windows界面编程-背景图片、透明特效使用
- Windows界面编程第六篇 动画启动效果(动画效果显示及隐藏窗口)
- Windows界面编程第六篇 动画启动效果(动画效果显示及隐藏窗口)
- Windows界面编程第一篇 位图背景与位图画刷
- Windows界面编程第一篇 位图背景与位图画刷
- Windows界面编程第一篇 位图背景与位图画刷