问题标签 [cview]
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.
go - 使用 CView 创建 TUI:网格和使部件不可选择
我正在使用 tslocum ( https://code.rocketnine.space/tslocum/cview ) 的 CView 库创建一个 TUI 应用程序,并想知道是否有人知道如何处理这个问题。
我为动态布局创建了一个网格;顶部有一个“横幅”文本视图,顶部有一个标题。显示屏底部一分为二;左侧是带有一些按钮的表单,右侧是带有一些解释性文本的文本视图。
如果选择/聚焦左列,则使用鼠标(以及选项卡和 shift-tab)导航按钮有效。如果单击文本视图,它们将获得焦点,并且不清楚如何再次选择表单以使用键盘导航按钮。我不想完全禁用鼠标。
所以除非有另一种方法来处理它,有没有办法让表单成为唯一的可选项目,或者禁用文本视图获得焦点?或者将一个动作附加到网格中的文本视图,这样如果它们被选中,它会将选择移回表单?我一直在尝试在演示和扩展坞中找到解决方案,但我还没有完全找到可行的方法。
这是我用来创建网格的内容:
c++ - 这是在 MFC SDI 非文档/视图程序中切换视图的正确方法吗?
平台/工具链/工具包:Windows 10、Visual Studio 2019、MFC。
我想要做的是能够在事件处理程序(如双击处理程序或菜单或按钮处理程序)中将我的程序中的界面在单个 CChildView(派生自 CWnd)到包含两个窗格的 CSplitterWnd 之间来回更改(一个 CChildView 和一个基于 CListview 的类)。
这是对文件查看器的重写,我省略了所有特定于应用程序的内容。这个想法是,在一种模式下,用户只查看文件,而在另一种模式下,用户正在查看左侧的文件系统目录列表窗格和右侧的窗格,其中包含在文件列表中选择的任何文件。所以很常见的成语。
我有下面的代码。
两种 UI 模式(如果您愿意的话)是:
我所做的是创建一个隐藏窗口,它成为未显示视图的父级,而我的 CMainFrame 是显示的任何视图的父级。为了隐藏 m_wndSplitter,我将其父级设置为隐藏窗口,然后隐藏它及其窗格的视图,最后将简单的 m_simpleView 父级设置为 CMainFrame 并显示它。切换以显示拆分器,步骤相反。
一对事件处理程序连接到视图菜单中的条目。一个隐藏简单的 m_simpleView 并显示 m_wndSplitter;另一个处理程序隐藏 m_wndSplitter 并显示简单的 m_simpleView。
我正在寻找有关我的事件处理程序的实现、我对 SetParent() 和 ShowWindow() 的使用的反馈。以我的经验,MFC 可以在释放和咬人之前的最后一秒跳出深奥的微妙之处。而这种切换 UI 视图的解决方案似乎太容易了……
所以,问题:
- 这个方案合理吗?
- MFC 框架在事件处理程序执行后不知道默认或活动视图是什么时,是否存在一些微妙之处?
- 我是不是很简单(太聪明了)?
摘自股票发行的新项目向导为具有拆分窗口的 MFC、SDI、非文档/视图项目生成的代码:
主框架.h:
主框架.cpp:
CChildView.h(.cpp 是项目向导的所有样板):
CChildListView.h