zoukankan      html  css  js  c++  java
  • 005 MFC 选卡控件TabCtrl 动画控件Animate

    #TabCtrlDemo 选项卡控件

      拖拽控件

      

      设置 ID IDC_TAB  设置变量名 m_tab

      初始化控件 两个2 页面

    1 BOOL CTabCtrlDemoDlg::OnInitDialog()
    2 {
    3     .........
    4 
    5     m_tab.InsertItem(0, L"Page 1");
    6     m_tab.InsertItem(1, L"Page 2");
    7     ........
    8 }

     

      在资源列表里面插入两个 新的DLG 然后设置设置 属性 和 

      给DLG 增添类 然后再头文件 TabCtrlDemoDlg.h里面加入 代码设置全局变量

    1     CDlgPage1 m_page1;
    2     CDlgPage2 m_page2;

      设置初始化代码 TabCtrlDemoDlg.cpp

      BOOL CTabCtrlDemoDlg::OnInitDialog()

        m_tab.InsertItem(0, L"Page 1");
        m_tab.InsertItem(1, L"Page 2");
    
        m_page1.Create(MAKEINTRESOURCE(IDD_DIALOG_PAGE1), &m_tab);
        m_page2.Create(MAKEINTRESOURCE(IDD_DIALOG_PAGE2), &m_tab);
        
    
        CRect rc;
        m_tab.GetClientRect(rc);
        rc.top += 25;
        
        m_page1.MoveWindow(rc);
        m_page2.MoveWindow(rc);
    
        m_page1.ShowWindow(SW_SHOW);

      设置TAB控件消息

     1 void CTabCtrlDemoDlg::OnSelchangeTab(NMHDR *pNMHDR, LRESULT *pResult)
     2 {
     3     // TODO: 在此添加控件通知处理程序代码
     4     switch(m_tab.GetCurSel())
     5     {
     6     case 0:
     7         m_page1.ShowWindow(SW_SHOW);
     8         m_page2.ShowWindow(SW_HIDE);
     9         break;
    10     case 1:
    11         m_page2.ShowWindow(SW_SHOW);
    12         m_page1.ShowWindow(SW_HIDE);
    13         break;
    14     }
    15     *pResult = 0;
    16 }

    #AnimateDemo

      拖拽控件 设置控件ID 分别位

        IDC_EDIT_PATH

        IDC_BTN_GET_PATH

        IDC_BTN_PLAY

        给Animate控件增添 变量 m_animate

        

      双击...按钮 编写响应消息

     1 void CAnimateDemoDlg::OnBnClickedBtnGetPath()
     2 {
     3     // TODO: 在此添加控件通知处理程序代码
     4     CFileDialog file_dialog(FALSE, nullptr, nullptr, OFN_FILEMUSTEXIST, L"*.avi|*.avi|*.wmv", this);
     5     //false 打开 TURE 保存
     6     if (file_dialog.DoModal() == IDOK)
     7     {
     8         SetDlgItemTextW(IDC_EDIT_PATH, file_dialog.GetPathName());
     9     }
    10 }
    11 
    12 
    13 void CAnimateDemoDlg::OnBnClickedBtnPlay()
    14 {
    15     // TODO: 在此添加控件通知处理程序代码
    16     CString strPath;
    17     GetDlgItemTextW(IDC_EDIT_PATH, strPath);
    18 
    19     if (m_animate.Open(strPath))
    20     {
    21         m_animate.Play(0, -1, -1);
    22     }
    23     else
    24     {
    25         MessageBoxW(L"打开失败!");
    26     }
    27 }

      

  • 相关阅读:
    RTMP命令亲自测试记录
    如何在 i5 上实现 20 倍的 Python 运行速度?
    百倍加速!Python量化策略的算法性能提升指南
    谷歌推出 Python 性能加速方案
    用Cython加速Python到“起飞”
    Python GPU加速
    金融数学太复杂?看完这10部电影会不会轻松点!
    金融数学攻略+书单
    耳朵如何保养
    DataOps Reading Notes
  • 原文地址:https://www.cnblogs.com/sdk123/p/6837062.html
Copyright © 2011-2022 走看看