网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
用VC++制作播放AVI视频流的动画按钮
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
的应用程序,取其项目名为 TestAviButton, 然后按下 Finish 按钮来完成工程的创建;

  2、使用Class Wizard菜单命令以CButton 为基类创建CAviButton 类,生成类的头文件 AviButton.h 和实现文件 AviButton.cpp,同时在类中重载 Create()、DrawItem()函数和 WM_MOUSEMOVE的消息映射;

  3、打开工程中ID值为IDD_TESTAVIBUTTON_DIALOG 的对话框进行编辑,该对话框的提示文本为"将鼠标移至按钮上:"删除"取消"按钮,将"确定"按钮的属性 Styles 改为 OwnerDraw ,并去掉其提示文本 "确定";另外执行 Insert | Resource… 命令,在弹出的对话框中按下 Custom… 按钮,然后输入"AVI",向程序中添加"AVI"格式的资源,然后选择AVI类型的文件向项目中添加"AVI"格式的资源IDR_AVI;

    4、添加代码,编译运行程序,此时每当我们的鼠标经过按钮时,一个漂亮的AVI按钮就产生了。

    三、实现代码

/////////////////////////////// AviButton.h : header file
#if !defined(AFX_AVIBUTTON_H__5E20D4EF_864E_11D7_886E_F16C81CD642B__INCLUDED_)
#define AFX_AVIBUTTON_H__5E20D4EF_864E_11D7_886E_F16C81CD642B__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CAviButton : public CButton
{
 // Construction
 public:
  CAviButton();
 public:
  UINT m_nAviID;
  CAnimateCtrl AnimateCtrl;
  BOOL bPlaying;
  void LoadAvi(UINT nAviID);
  void DrawButton(CDC* pDC, UINT nState, CRect rect);
  // Overrides
  // ClassWizard generated virtual function overrides
  //{{AFX_VIRTUAL(CAviButton)
   public:
    virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
    virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD
dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID,
CCreateContext* pContext = NULL);
  //}}AFX_VIRTUAL
  // Implementation
 public:
  virtual ~CAviButton();
  // Generated message map functions
 protected:
  //{{AFX_MSG(CAviButton)
   afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  //}}AFX_MSG
 DECLARE_MESSAGE_MAP()
};
#endif

////////////////////////////CAviButton.CPP文件;
#include "stdafx.h"
#include "TestAviButton.h"
#include "AviButton.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE = __FILE__;
#endif

CAviButton::CAviButton()
{
 m_nAviID = 0;
 bPlaying = FALSE;
}

CAviButton::~CAviButton()
{}
void CAviButton::LoadAvi(UINT nAviID)
{
 m_nAviID =nAviID;
}

BEGIN_MESSAGE_MAP(CAviButton, CButton)
 //{{AFX_MSG_MAP(CAviButton)
  ON_WM_MOUSEMOVE()
 //}}AFX_MSG_MAP
END_MESSAGE_MAP()

///////////////////// CAviButton message handlers
void CAviButton::DrawButton(CDC *pDC, UINT nState, CRect rect)
{
 COLORREF upCol,downCol,edgeCol;
 edgeCol=RGB(0,0,0); //设置按钮边缘的初始化颜色;
 if ((nState & ODS_SELECTED) == ODS_SELECTED)
 {
  //设置按钮被按下时按钮的颜色
  upCol=RGB(0,0,0);
  edgeCol=RGB(128,128,128);
  downCol=RGB(0,0,0);
 }
 else
 {
  //设置按钮正常时按钮的颜色
  upCol=RGB(255,255,255);
  downCol=RGB(128,128,128);
 }
 CPen* pOldPen = NULL;
 BOOL pen1Created;
 CPen pen1;
 BOOL pen

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号