MFC TabCtrl用法

  1. 基于对话框的MFC程序, 在主对话框中添加TabCtrl控件,CTabCtrl 类型的变量m_tabctrl;
  2.  插入3对话框,并设置属性style=Child,Border=None,创建三个对话框类CDialog1,CDialog2,CDialog3;
  3. 在主对话框中创建三个对话框类的全局对象 m_dg1,m_dg2,m_dg3;
  4. 在主对话框的初始化函数OnInitDialog中初始化;
  5. 在主对话框中添加TabCtrl控件的TCH_SELCHANGE消息;
  • BOOL CTabUIDlg::OnInitDialog()
    {
        CDialogEx::OnInitDialog();

        // 设置此对话框的图标。  当应用程序主窗口不是对话框时,框架将自动
        //  执行此操作
        SetIcon(m_hIcon, TRUE);            // 设置大图标
        SetIcon(m_hIcon, FALSE);        // 设置小图标

        // TODO: 在此添加额外的初始化代码
        
        //设置标签头信息
        m_tabCtrl.InsertItem(0, _T("加载图片"));
        m_tabCtrl.InsertItem(1, _T("直方图统计"));
        m_tabCtrl.InsertItem(2, _T("图像编码"));

        //在view类中,Create 是虚函数由框架调用,是用来“生成一个窗口的子窗口”。
        m_dg1.Create(IDD_DIALOG1, &m_tabCtrl);
        m_dg2.Create(IDD_DIALOG2, &m_tabCtrl);
        m_dg3.Create(IDD_DIALOG3, &m_tabCtrl);

       //正确放置对话框
        CRect si;
        m_tabCtrl.GetClientRect(&si);
        CRect it;
        m_tabCtrl.GetItemRect(0, it);
        si.top += it.top+20;
        si.left += 5;
        si.bottom -=5;
        si.right -=5;
        m_dg1.MoveWindow(&si);
        m_dg2.MoveWindow(&si);
        m_dg3.MoveWindow(&si);

        //设置第一个显示,即选中的标签,对话框
        m_dg1.ShowWindow(SW_SHOW);
        m_tabCtrl.SetCurFocus(0);
        return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
    }

  • void CTabUIDlg::OnSelchangeTab(NMHDR *pNMHDR, LRESULT *pResult)
    {
        // TODO: 在此添加控件通知处理程序代码
        switch (m_tabCtrl.GetCurSel())
        {
        case 0: 
            m_dg1.ShowWindow(SW_SHOW);
            m_dg2.ShowWindow(SW_HIDE);
            m_dg3.ShowWindow(SW_HIDE);
            m_dg1.SetFocus();
            break;
        case 1:
            m_dg2.ShowWindow(SW_SHOW);
            m_dg1.ShowWindow(SW_HIDE);
            m_dg3.ShowWindow(SW_HIDE);
            m_dg2.SetFocus();
            break;
        case 2:
            m_dg3.ShowWindow(SW_SHOW);
            m_dg1.ShowWindow(SW_HIDE);
            m_dg2.ShowWindow(SW_HIDE);
            m_dg3.SetFocus();
            break;
        default:
            break;
        }
        *pResult = 0;
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/484436.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器人行业研究报告:智能化造就新时代,自动化生产成刚需

来源:东莞证券作者:黄秀瑜核心观点智能转型时代,机器人前景可期。智能化时代到来,工业机器人和服务 机器人逐渐普及。疫情后制造业走出低迷,中国工业机器人月产量创新 高。全球老龄化问题日益严重,中国作为…

7-2 是否完全二叉搜索树 (30分)

将一系列给定数字顺序插入一个初始为空的二叉搜索树(定义为左子树键值大,右子树键值小),你需要判断最后的树是否一棵完全二叉树,并且给出其层序遍历的结果。 输入格式: 输入第一行给出一个不超过20的正整数…

bzoj 1596 电话网络

Description Farmer John决定为他的所有奶牛都配备手机&#xff0c;以此鼓励她们互相交流。不过&#xff0c;为此FJ必须在奶牛们居住的N(1 < N < 10,000)块草地中选一些建上无线电通讯塔&#xff0c;来保证任意两块草地间都存在手机信号。所有的N块草地按1..N 顺次编号。…

读取BMP格式数据

#pragma once #include<afx.h> class DigitalImage { private: //指针数据类型&#xff0c;需要动态分配数据大小&#xff0c;并初始化数据 char m_FileName[100]; //文件头 LPBITMAPFILEHEADER m_lpBitmapFileHender; //除位图文件头的所有数据 LPBYTE…

指甲盖大小塞了500亿晶体管!领先台积电,IBM打造世界首款2纳米芯片!能耗仅为7纳米的1/4!...

文章来源&#xff1a;EETOP我们知道在2014年IBM已将其Microelectronics部门出售给GlobalFoundries时&#xff0c;IBM就已经宣告退出芯片代工业务。但这几年来&#xff0c;尽管IBM退出了代工业务&#xff0c;不过好像IBM在半导体先进工艺研发上一直没有放弃&#xff0c;时不时会…

读取bmp格式数据--实践思考

实践代码 头文件 #pragma once #include <afx.h> class DigitalImage { private://指针数据类型&#xff0c;需要动态分配数据大小&#xff0c;并初始化数据//文件头LPBITMAPFILEHEADER m_lpBitmapFileHender;//除位图文件头的所有数据LPBYTE m_lpNotFileHenderData;//…

人工智能浪潮褪去,冲刺IPO成AI企业生存关键?

来源&#xff1a; 大作此前&#xff0c;AI四小龙持续亏损、登科受阻&#xff0c;投影出“AI估值泡沫&#xff0c;风口浪潮已褪”的现实。反观AI四小龙同期的独角兽格灵深瞳&#xff0c;6月22日科创板IPO受理&#xff0c;拟募资10亿元用于AI算法平台升级、创新应用研发等项目。前…

【开源】iTest教学辅助系统源代码

iTest教学辅助系统 2020.10.16第一次更新 重置了下载链接 2020.12.21第二次更新 重置了下载链接 2021.05.07第三次更新 重置了下载链接 1.关于iTest教学辅助系统 i实验辅助教学平台是基于局域网开发&#xff0c;力求为教师和学生用户提供实验课堂辅助教学环境的计算机系统&…

KnockoutJS-与服务端交互

几乎所有Web应用程序都要和服务器端交换数据&#xff0c;交换数据时最方便的就是使用JSON格式。Knockout可以实现很复杂的客户端交互&#xff0c;对于前后端交互使用的技术最为基本且常用的是Ajax&#xff0c;本次利用Ajax和ko的双向绑定完成一些简单的功能&#xff0c;可以快速…

神经网络无法区分异同,而且这个缺陷是本质性的

来源&#xff1a;混沌巡洋舰1969年《芝麻街》的第一集中有一个片段叫做“这些东西中的一个与众不同”。观众们被要求考虑一张展示三个2和一个 w 的海报&#xff0c;然后一边跟着游戏的同名广告歌唱&#xff0c;一边决定哪个符号不属于这个标志。《芝麻街》中的很多集重复了这个…

matlab计算级数和

级数(series)是指将数列的项依次用加号连接起来的函数。典型的级数有正项级数、交错级数、幂级数、傅里叶级数等。 —百度百科 matlab提供了直接计算级数的两个方法&#xff0c;symsum的两种形式&#xff08;做题刚开始以为是重载&#xff0c;直接导致了上一篇帖子的产生 &…

北国风光

转载于:https://www.cnblogs.com/ssyfj/p/10214328.html

“期待已久的UFO报告”公布了

来源&#xff1a;环球网 作者&#xff1a;张晓雅多家美媒表示&#xff0c;调查没有得出确切结论。包括美国有线电视新闻网&#xff08;CNN&#xff09;、美联社、美国哥伦比亚广播公司&#xff08;CBS&#xff09;在内多家美媒最新消息&#xff0c;美国政府当地时间25日发布报告…

Bmp格式与编程读取解析

Bmp格式 DigitalImage图像类设计 图像加载函数,通过bmp图片路径&#xff0c;加载图像数据&#xff0c;通过类构造函数来实现。 DigitalImage::DigitalImage(LPCTSTR lpszPath) {StrCpy(m_FilePath, lpszPath);CFile RdBmp;if (!RdBmp.Open(m_FilePath, CFile::modeRead | CFil…

关于奈氏准则和香农公式

对于带宽固定的信道&#xff0c;提高信息传输速率有两种方式&#xff1a; 提高码元在信道中的传输速率&#xff1b;提高信噪比&#xff1b; 我们以高速公路的例子来理解&#xff1a; 码元相当于车辆&#xff0c;信道相当于公路&#xff0c;所有的汽车都在运输相同的货物&…

五角大楼公布UFO报告,不明飞行物到底是什么?(全文)

来源&#xff1a;大数据实验室五角大楼周五发布的一份有关不明飞行物的重要报告称&#xff0c;国防和情报分析人员缺乏足够的数据来确定军事飞行员观察到的神秘飞行物体的性质&#xff0c;包括它们是先进的地球技术、大气层还是外星天体。这份报告提交国会并向公众公布&#xf…

python 词云小demo

词云小demo jiebawordcloud一 什么是词云&#xff1f; 由词汇组成类似云的彩色图形。“词云”就是对网络文本中出现频率较高的“关键词”予以视觉上的突出&#xff0c;形成“关键词云层”或“关键词渲染”&#xff0c;从而过滤掉大量的文本信息&#xff0c;使浏览网页者只要一眼…