tab封装2
Posted 天还是那么蓝
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tab封装2相关的知识,希望对你有一定的参考价值。
// MyTabCtrl.cpp : 实现文件 // #include "stdafx.h" #include "FileCleaner.h" #include "MyTabCtrl.h" // CMyTabCtrl IMPLEMENT_DYNAMIC(CMyTabCtrl, CTabCtrl) CMyTabCtrl::CMyTabCtrl() { } CMyTabCtrl::~CMyTabCtrl() { } //参数列表 //第1个位子窗口个数 //后面依次为:窗口名、基类指针、ID void CMyTabCtrl::Insert(int nCount...) {//获取客户区尺寸 CRect RC = {}; GetClientRect(&RC); RC.DeflateRect(1, 30, 1, 1); va_list vl; va_start(vl, nCount); for (int i = 0; i < nCount; i++) {//插入窗口名,创建新窗口 InsertItem(i, va_arg(vl, WCHAR*)); m_pDlg[i] = va_arg(vl, CDialogEx*); int ID = va_arg(vl, int); m_pDlg[i]->Create(MAKEINTRESOURCE(ID), this); m_pDlg[i]->MoveWindow(RC); } m_pDlg[0]->ShowWindow(SW_SHOW); va_end(vl); } BEGIN_MESSAGE_MAP(CMyTabCtrl, CTabCtrl) ON_NOTIFY_REFLECT(TCN_SELCHANGE, &CMyTabCtrl::OnTcnSelchange) END_MESSAGE_MAP() // CMyTabCtrl 消息处理程序 void CMyTabCtrl::OnTcnSelchange(NMHDR *pNMHDR, LRESULT *pResult) { // TODO: 在此添加控件通知处理程序代码 int n = GetCurSel(); for (int i = 0; i < 2;i++) { if (i == n) { m_pDlg[i]->ShowWindow(SW_SHOW); continue; } m_pDlg[i]->ShowWindow(SW_HIDE); } *pResult = 0; }
#pragma once // CMyTabCtrl class CMyTabCtrl : public CTabCtrl { DECLARE_DYNAMIC(CMyTabCtrl) public: CMyTabCtrl(); virtual ~CMyTabCtrl(); void Insert(int nCount...); CDialogEx *m_pDlg[2]; protected: DECLARE_MESSAGE_MAP() public: afx_msg void OnTcnSelchange(NMHDR *pNMHDR, LRESULT *pResult); };
以上是关于tab封装2的主要内容,如果未能解决你的问题,请参考以下文章
Android选项卡片段不调用OnCreateView从tab2切换到tab1
VSCode自定义代码片段14——Vue的axios网络请求封装
VSCode自定义代码片段14——Vue的axios网络请求封装