问题标签 [ctabctrl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
7844 浏览

c++ - MFC 中 CTabCtrl 与 CPropertySheet 哪个更受欢迎?

我不知道如何使用这两个。所以一个有利有弊的示例代码是完美的。哪个是首选?为什么?

0 投票
1 回答
1034 浏览

c++ - MFC:如何识别对话框是否是使用 CPropertySheet 或 CTabCtrl 创建的

关于这个问题:哪个是首选 CTabCtrl vs CPropertySheet

我有一个使用 MFC 的 DDK,我是新手。来自 DDK 的基本示例实现了一个简单的对话框,其中包含 3 个选项卡,在框的右侧有“确定”和“取消”按钮。

根据上面链接的问题,似乎只有 CTabCtrl 可以有那种界面??(如果我错了,请纠正我)但是,看看所涉及的类,似乎根本没有使用 CTabCtrl?需要对此进行一些解释...

替代文字

从类资源管理器:
CObject-->

  • CCmdTarget
    • CWnd
      • 对话框
        • CxxxDlg
      • 属性页
        • CIntHelpPropertyPage
        • CxxxConfigPage
    • CWinThread
      • CWinApp
        • CWinDebugApp
          • CDriverApp
            • CxxxApp
              • CDrvCfg
    • CxxxDrvCfg
  • CSrvObj
    • CChannel对象
  • 驱动程序对象
    • CxxxObj
0 投票
3 回答
9850 浏览

user-interface - 如何在基于 MFC 对话框的应用程序中使用 CTabCtrl?

我需要做一些我认为很简单的事情——创建一个有 2 个选项卡的选项卡控件,这意味着我的应用程序有 2 种操作模式。当用户点击 Tab1 时,他会看到一些按钮和文本框,当他点击 Tab2 时,会出现一些其他输入法。我注意到在 MFC 中有一个 CTabCtrl 类用于添加选项卡。但是,一旦我使用 UI 设计器添加了选项卡 ctrl,我就无法指定使用属性窗口将有多少个选项卡。在网上搜索,我找到了一些示例,但所有示例都要求您从 CtabCtrl派生,创建 2 个或更多孩子对话框等并编写您自己的自定义类。我的问题是,既然我想做一些如此基本的事情,为什么我不能使用熟悉的添加事件处理程序/添加成员变量向导来完成它,然后处理我的应用程序类中的所有其他内容?当然,默认的 CTabCtrl 类可以做一些有用的事情而不需要从它派生?

0 投票
3 回答
2390 浏览

mfc - win32 CTabctrl:在活动选项卡中绘制“子”窗口

我有一个包含 CTabCtrl 的可调整大小的对话框,该选项卡控件有 4 个选项卡,单击这些选项卡时会显示四个不同的 CTreeCtrls 之一。

我从 CTabCtrl 派生了一个类,它跟踪它的“子”控件,如下所示:

我尝试像这样绘制子控件:

但是,子控件虽然出现,但并不总是正确绘制,它们会将它们的内容混合在一起,并且仅在我单击它们时才显示正确的内容(实际的树控件)。

这是在 zorder 中绘制和移动窗口的最佳方式吗,我错过了什么?

非常感谢

bg

0 投票
1 回答
1364 浏览

c++ - 如何调整 CTabCtrl 的大小以适合其内容

我的程序中有一个CTabCtrl和 3 个“子”* CFormView *,当用户更改活动选项卡时我会显示/隐藏它们。

我不想使用固定大小,而是想调整封闭 CTabCtrl 的大小以匹配最大 CFormView 的大小。

0 投票
1 回答
819 浏览

c++ - 使 MFC CTabCtrl 不使用绘图选项卡的完整控件宽度

我们有一个涉及更改应用程序的请求,即使我们的一个选项卡控件只能访问控件的部分宽度以绘制选项卡,以便我们可以粘贴一些额外的状态文本在侧面的剩余区域。

图片可能会有所帮助:

复杂的 UI 请求

如您所见,选项卡控件一直延伸到对话框的右侧,但我们希望为“总库存成本”保留一个区域,并且我们希望确保其他选项卡(常见的)不会侵占到那个区域。

除了完全重写应用程序之外,我对几乎任何实现这一点的方法都持开放态度。如果有更好的选项卡控件,我们可以切换选项卡控件,或者在合理范围内更改选项卡设置的实现。

我原以为可以分别设置客户区和选项卡绘制矩形区域,但似乎并非如此。如果我错了,请纠正我。

任何帮助表示赞赏!

0 投票
1 回答
641 浏览

mfc - CTabCtrl SetItemRect?

我想改变标签的大小。

我们在选项卡中添加了一个右十字,但它与选项卡的文本有很大的冲突。

在此处输入图像描述

到目前为止,我已经意识到以下几点:

  • GetItemRect(int i, RECT* rc)给我矩形。我真正想要的是一个 SetItemRect。
  • SetItem不能使用,因为该项目不包含其大小。它是根据我给它的内容计算的。
  • 我可以在字符串末尾添加一个空格字符,但这违反了事物的自然顺序。我不会用 CStrings 调整像素。
  • SetSize应该设置选项卡的大小(所有选项卡?)。但是我找不到不触发重绘的放置它的位置,如果我将它与 WM_PAINT 案例一起放置,则会引发无限循环。

这是我自定义绘制选项卡内容的地方,但我无法在此处调整它们的大小:

我在哪里设置选项卡的大小,以及如何设置?

0 投票
1 回答
334 浏览

mfc - Tab Control 在 Enter 键上绘制

所以我有一个问题,我认为之前已经探索过,但我似乎找不到任何东西。我制作了一个完全自定义绘制的自定义选项卡控件类,并在用户单击不同选项卡时显示/隐藏 CDialog 对象。为此,我重载了paint方法(我没有使用用户绘制功能)。除了一个问题外,一切似乎都运行良好,我遇到的问题是,当用户在当前显示的对话框中选择一个控件(即 CEdit)并按下回车键时,tabCtrl 将收到一个 WMPAINT导致 tabCtrl 的主体被绘制在当前对话框上的消息。为了解决这个问题,我修改了 tabCtrl 的擦除背景方法以显示当前对话框,该对话框修复了对话框被绘制但每次按下或按住 enter 键时控件中都会闪烁,因为绘制/显示对话组合发生。我想知道是否有人以前处理过这个问题并有修复或任何想法。我一直无法想出任何有效的方法。抱歉缺少代码,我没有得到所有者的许可来分享它。

0 投票
1 回答
622 浏览

c++ - 如何通知 CTabCtrl 中的所有控件它们应该重绘什么(应该改变它们的大小)?

我得到了一个 MYListCtrl 的实例,它是CListCtrl内部CTabCtrl实例的派生类。我已经实现onSize了 MYCListCtrl 的方法,并将其映射到WM_SIZE消息。

我想在调整包含 CTabCtrl 的窗口大小时更改 MYListCtrl 的大小,调整大小应基于 CTabCtrl 的尺寸。如何通知 MYListCtrl 需要调整大小?

0 投票
1 回答
154 浏览

mfc - MFC,如何更改 TabCtrl 的标题

我知道 InsertItem 是用来在 tabctrl 中添加新标签的,但是我需要在创建后更改标签的标题,我使用关键字 tabctrl 和标题来搜索旧文章,但是没有关系问题来解决它,我要更改标题标签页...