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 }

      

  • 相关阅读:
    几种 JavaScript 动画库推荐
    微软工程师为你推荐了十本程序员必读书目
    前端新老手必备的34种JavaScript简写优化技术
    Airbnb 爱彼迎 visx 项目介绍
    开源中间件技术支持(5000+元/天)
    C# Byte数组与Int16数组之间的转换(转)
    【636】K.sum 与 np.sum 的区别
    【635】语义分割 label 通道与模型输出通道的
    【634】ndarray 提取行列进行任意变换 & 相关 ndarray 操作
    面试官:设计一个安全的登录都要考虑哪些?我一脸懵逼。。
  • 原文地址:https://www.cnblogs.com/sdk123/p/6837062.html
Copyright © 2011-2022 走看看