goos

代码改变世界!
随笔 - 2, 文章 - 0, 评论 - 2, 引用 - 0
数据加载中……

2012年8月16日

WTL在VC各版本下的安装

WTL各版本下载地址:http://sourceforge.net/projects/wtl/files/
WTL7.1+VC6.0
安装过程:
运行WTL71.exe,解压
运行/WTL71/AppWiz60/setup.js
复制WTL71/include目录下的18个头文件到VC++6.0安装目录的 /VC98/Include下。
运行VC++6.0,根据向导可以轻松的创建ATL/WTL AppWizard工程即可。

WTL8.0+VS2005
安装过程:
1、从http://sourceforge.net/projects/wtl下载8.0版本的WTL
2、下载得到的是一个自解压文件,可以解压到任意目录。比如d:\wtl80,下面有几个子目录samples, include, AppWizMobile, AppWizCE, AppWiz,还有一个txt文件和htm文件。其中include是头文件,samples是几个示例,AppWiz*是各种向导文件。
3、在命令行里执行:wscript.exe "D:\WTL80\AppWiz\setup80.js",如果是vs2005 express、vs2003等,分别执行setup80x.js, setup70.js,可以看看里面的文档说明。
   注:这是一个很容易让人困惑的地方,网上的文档全都说解压后执行setup80.js文件,但都没说如何执行。后来在代码里看到有WScript,才想到用WSCript.exe来执行。
4、打开VS2005, 选择VC++项目,就可以看到WTL项目的向导了。
5、在VS2005里,打开菜单“工具”——选项——项目和解决方案——VC++目录,在“显示以下内容的目录”下拉框中,选择“包含文件”,加入刚才解压的wtl下的include,本例中是"d:\wtl80\include"。
6、按照向导创建一个程序,编译,执行,OK。

WTL8.1+VS2008
安装过程:

1.下载了WTL8.1,然后运行AppWiz文件夹下的setup90.js,就可以安装成功了。

2.然后就是配置工程了。打开VS2008,选择Tools->Options->Projects and Solutions->VC++ Directories,在include中将c:/wtl81/include加入。或者将include目录复制到Microsoft Visual Studio 9.0/VC/目录下就可以了。


WTL.tag+VS2010
安装过程:

1.下载WTL包,http://wtl.svn.sourceforge.net/viewvc/wtl/?view=tar
下载下来的文件是tar.gz,你可以用7z打开。
2.解压后依次打开文件夹trunk->Wizards->AppWiz,然后双击setup100.js
3.将解压的include目录复制到Microsoft Visual Studio 10.0/VC/目录

posted @ 2012-08-16 23:00 雁子 阅读(6233) | 评论 (1)编辑 收藏

2012年8月15日

ANIMATE控件播放简单avi应用练习


功能:实现第一代简小AVI的播放
打开通用对话框选择播放文件,点击单选按钮"开始"即开始播放,左侧可以设置循环播放次数。
文件播放完毕后,文件名显示在ListBox上,双击对应的选项改变播放路径。
HOTKEY控件可以设置相应快捷键实现程序在后台时快速显示。

相关代码:

void CMFCCtrlDlg::OnOpenfile() 
{
    // TODO: Add your control notification handler code here
    CHAR szFilter[] = "AVI File(*.avi)|*.avi|ALL File(*.*)|*.*||";
    CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY, szFilter);
    if ( IDOK != dlg.DoModal())
    {
        return;
    }
    //获取选择的文件到编辑框中
    m_PathName = dlg.GetPathName();
    UpdateData(FALSE);

    //添加文件名到列表框中,并返回选项值
    int nItem = m_List_History.AddString(dlg.GetFileName());

    //保存文件路径到选项
    CString * pstrFilePath = new CString;
    *pstrFilePath = dlg.GetPathName( );
    m_List_History.SetItemData( nItem, 
        (DWORD)pstrFilePath );

}

void CMFCCtrlDlg::OnRadioStart() 
{
    // TODO: Add your control notification handler code here
    m_WndAnimate.Open(m_PathName);   //打开文件
    if (m_check_loop.GetCheck())  //如果循环播放复选框被勾选刚判断combobox选项的播放次数
    {
        int sCur = m_ComboBox_LoopNum.GetCurSel();
        switch(sCur)
        {
        case 0:
            m_WndAnimate.Play(0,-1,-1);
            break;
        case 1:
            m_WndAnimate.Play(0,-1,1);
            break;
        case 2:
            m_WndAnimate.Play(0,-1,2);
            break;
        case 3:
            m_WndAnimate.Play(0,-1,3);
            break;
        case 4:
            m_WndAnimate.Play(0,-1,5);
            break;
        case 5:
            m_WndAnimate.Play(0,-1,10);
            break;
        }
        
    }
    else
    {
        m_WndAnimate.Play(0,-1,1);
    }
    
}

void CMFCCtrlDlg::OnRadioStop() 
{
    // TODO: Add your control notification handler code here
    m_WndAnimate.Stop();
    m_WndAnimate.Close();
}

void CMFCCtrlDlg::OnCheck1() 
{
    // TODO: Add your control notification handler code here
    BOOL bCheck = m_check_loop.GetCheck();  
    m_ComboBox_LoopNum.EnableWindow(bCheck);
}

void CMFCCtrlDlg::OnDblclkList1() 
{
    // TODO: Add your control notification handler code here
    int nSel = m_List_History.GetCurSel( );    
    if( LB_ERR == nSel )
    {
        return;
    }
    //获取选择项的路径
    CString * pstrPathName = ( CString * )
        m_List_History.GetItemData( nSel );
    //设置到EDIT中
    m_PathName = *pstrPathName;
    UpdateData( FALSE );
}

void CMFCCtrlDlg::OnButtonHotkey() 
{
    // TODO: Add your control notification handler code here
    
//获取设置的热键
    DWORD nHotKey = m_HotKey.GetHotKey( );    
    //设置成程序的热键
    SendMessage( WM_SETHOTKEY, nHotKey );
}

/Files/goos/MFCCtrl.zip




posted @ 2012-08-15 22:33 雁子 阅读(564) | 评论 (1)编辑 收藏