社区
界面
帖子详情
高分求方案(关于Tab和Tree控件)
Franky_dev
2005-08-10 05:03:38
我要在view中动态生成Tab控件,然后在Tab控件中生成Tree控件
如何做比较好
能不能简单举点例子
谢谢
...全文
182
4
打赏
收藏
高分求方案(关于Tab和Tree控件)
我要在view中动态生成Tab控件,然后在Tab控件中生成Tree控件 如何做比较好 能不能简单举点例子 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
steed_jet
2005-08-10
打赏
举报
回复
可以在View得OnCreate(LPCREATESTRUCT lpCreateStruct) 或者一个初始化函数大概是OnInitial...
函数里创建:
//variable declear
CRect Rect;
//function body
this->GetClientRect( &Rect );
DWORD dwStyle = TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT|
WS_CHILD|TVS_SHOWSELALWAYS|WS_VISIBLE;
m_wndTree.Create(dwStyle,Rect,this,IDC_TREE_CTRL);//IDC_TREE_CTRL在资源管理其
//中创建,m_wndTree在头文件中声明
此外
映射View得WM_SIZE消息,重载了OnSize(UINT nType, int cx, int cy)函数,里面用m_wndTree.SetWindowPos(/*参数表略*/)。可以创建成功然后显示了。
大体思想和 lixiaosan(小三)一样的。
flyelf
2005-08-10
打赏
举报
回复
调用CTabCtrl和CTreeCtrl的Create来创建
Franky_dev
2005-08-10
打赏
举报
回复
我需要的是在View中动态创建并响应,不再基于对话框的
lixiaosan
2005-08-10
打赏
举报
回复
一个CFormView
1、首先创建一个MFC对话框框架,在对话框资源上从工具箱中添加上一个Tab Control 控件,根据需要修改一下属性,然后右击控件,为这个控件添加一个变量,将此控件跟一个CTabCtrl类变量绑定在一起,这里设为m_tabctrl
2、创建两个新的对话框资源,其属性作如下修改:
Border:none //边界为空,这样它就没了标题栏
Style :Child // 这样这个模板就可以当作另一个窗口的子窗口了。
其它如果没有必要,就不用改了。
在上面加一些控件什么的,具体操作跟普通对话框没有区别。
完成后从这两个对话框模板生成两个新的对话框类。
3、在主对话框中为新添加进来的两个类增加两个变量:
如:CDialog1 m_mm1;
CDialog2 m_mm2;
4、在主对话框的OnInitDialog()函数中添加如下类似的代码:
TCITEM item;
item.mask = TCIF_TEXT;
item.pszText = "第一页";
m_tabctrl.InsertItem (0,&item);
item.pszText ="第二页";
m_tabctrl.InsertItem (1,&item);
m_mm1.Create (IDD_DIALOG1,&m_tabctrl);
m_mm2.Create (IDD_DIALOG2,&m_tabctrl);
m_mm1.SetWindowPos (NULL,10,30,400,100,SWP_SHOWWINDOW);
m_mm2.SetWindowPos (NULL,10,30,400,100,SWP_HIDEWINDOW );
解释如下:
两个InsertItem函数的调用是为了给标签控件增加两个标签页面,文本是标题。
SetWindowPos()函数设置这两个对话框在Z顺序中的位置,显示或隐藏状态.。
5、在主对话中为标签控件添加一个标签选择改变(TCN_SELCHANGE)的控件通知消息,以便在用户选择标签时通知主对话框。在主对话框的编辑界面右击标签控件,选择添加一个事件可以完成这个操作。
在事件处理中添加如下代码,如下例:
void CtabdialogDlg::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult)
{
CRect r;
m_tabctrl.GetClientRect (&r);
switch(m_tabctrl.GetCurSel())
{
case 0:
m_mm1.SetWindowPos (NULL,10,30,r.right -20,r.bottom -40,SWP_SHOWWINDOW);
m_mm2.SetWindowPos (NULL,10,30,r.right -20,r.bottom -40,SWP_HIDEWINDOW );
break;
case 1:
m_mm1.SetWindowPos (NULL,10,30,r.right -20,r.bottom -40,SWP_HIDEWINDOW);
m_mm2.SetWindowPos (NULL,10,30,r.right -20,r.bottom -40,SWP_SHOWWINDOW );
break;
}
*pResult = 0;
}
要想知道用户选择那个标签页,要通过m_tabctrl.GetCurSel() 函数。为了不使显示的子对话框覆盖标签控件的显示,所以要获得标签控件的尺寸然后设置各页面的尺寸。
.NET报表图表性能优化:告别GDI+内存泄漏与前端集成陷阱
数据可视化是企业级.NET应用的核心能力,其本质是将结构化数据通过图形化方式高效、稳定、可交互地呈现。底层依赖渲染引擎的线程安全、内存管理与DPI适配能力,技术价值在于规避服务端图表
控件
(如Chart
控件
、SSRS)引发的OutOfMemoryException和GenericError等生产级故障。典型应用场景包括税务SaaS经营分析、金融BI看板、政务数据大屏等需高并发导出PDF与响应式图表的系统。本文聚焦.NET生态中长期存在的图表生成结构性断层,结合Chart
控件
与Blazor WebAssembl
Windows PSR:轻量级操作行为结构化记录工具
操作行为记录是IT支持、软件测试与流程审计的基础能力,其核心在于将用户交互转化为可解析、可验证、可复现的结构化数据。不同于依赖视频帧率与编解码的录屏工具,PSR以事件驱动方式捕获点击、切换、输入等原子操作,并同步生成带坐标标注的PNG截图与XML日志,实现操作语义化建模。这种设计带来极低资源占用、零网络依赖、强跨版本兼容性及天然审计友好性,特别适用于老旧设备、离线环境、高安全要
求
场景。在中小企业IT支持、MES系统培训、金融后台留痕等实践中,PSR已成为替代第三方录屏的稳定选择——它不渲染画面,却精准定义‘
LabWindows/CVI学习路径:从C语言基础到测控系统实战开发
在测试测量与自动化控制领域,上位机软件开发是连接硬件设备与数据处理的关键环节。其核心在于通过编程语言实现对硬件的高效驱动、数据采集与实时处理。C语言以其接近硬件的执行效率和直接的内存操作能力,成为该领域底层开发的经典选择。基于ANSI C的LabWindows/CVI集成开发环境,正是这一技术价值的典型体现,它将C语言的强大控制力与图形化界面开发相结合,为构建虚拟仪器和测试系统提供了高效平台。其技术价值在于平衡了开发效率与运行时性能,通过丰富的仪器驱动库和简洁的部署方式,直接满足了对硬件底层支持要
求
高、依赖
M2.7实战指南:自主任务执行体的部署、Agent编排与OpenRoom交互
自主任务执行体(Autonomous Task Executor)是面向生产环境的AI系统新范式,其核心在于闭环执行、反馈驱动与界面感知能力,区别于传统大模型的单次响应逻辑。它依托可观测性层、规划引擎、执行适配器与反馈整合器构成的Execution Loop,实现可调试、可干预、可审计的多轮自治。技术价值体现在CLI工具链自动化、截图理解型DevOps助手、动态策略Agent框架等工程场景。M2.7作为典型代表,深度融合Agent编排机制与OpenRoom交互协议,使AI真正具备操作系统级环境理解与操作能力
基于多模态AI的GUI自动化:从视觉理解到智能执行的完整实践
图形用户界面自动化是提升软件测试、办公效率和机器人流程自动化(RPA)的关键技术。传统自动化脚本依赖于固定的坐标或元素定位器,一旦界面发生变化便容易失效。其核心原理在于模拟人类与计算机的交互过程,即“感知-决策-执行”的闭环。随着多模态大模型和视觉语言模型的发展,自动化技术正从“脚本驱动”向“视觉驱动”演进,通过让AI“看懂”屏幕内容并自主规划操作步骤,显著提升了自动化流程的健壮性和灵活性。这种基于视觉理解的智能体技术,能够处理更复杂的桌面应用、网页及混合界面,在软件测试、数据录入、日常办公等场景中展现出巨
界面
15,976
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章