问题标签 [modeless-dialog]

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 投票
0 回答
100 浏览

flutter - 如何在 Flutter 中创建一个无模式的文本编辑对话框,如剪切/复制/粘贴?

Flutter TextField 有一个非常漂亮的无模式对话框,它显示在字段上方,即使在视图滚动时也保持可见:

在此处输入图像描述

当用户在 TextField 中点击时(而不是在他们选择字符时,即出现复制粘贴对话框时),我需要创建一些非常相似的东西。我使用 Stack 创建了一个,但很快就遇到了麻烦,因为对话框位于 TextField 的选择框之外,因此 GestureDetector 没有检测到点击(我在此处发布了问题)。在几个地方发布的解决方法是编写自定义 OverlayContainer,但我只是注意到它不会随 TextField 一起滚动。

是否有一个我忽略的小部件使无模式对话框更容易?

0 投票
0 回答
129 浏览

c# - 如何正确等待来自无模式窗口的输入

我有一个有两个无模式窗口的应用程序。第一个窗口有一个按钮,用于从另一个窗口获取输入。我的问题是什么是(有吗?)调用第二个窗口进行输入并阻止调用者的正确方法,直到用户在文本框中提供输入。这是我在这里试图解释的视觉效果:

在此处输入图像描述

  1. 应用程序启动。主窗口打开
  2. 用户单击主窗口中的第一个按钮 -> 第二个“无模式”窗口打开。用户切换回主窗口
  3. 用户点击主窗口中的第二个按钮 -> 第二个“无模式”窗口被激活并聚焦
  4. 第二个窗口现在等待输入到文本框中。这就是问题所在:如何阻止来自主窗口的调用,等待文本框中的输入,只有当用户在文本框中输入输入时才返回调用者,而不冻结窗口

我现在有这个 sudo 代码作为解决方案,但是循环发生在主应用程序代码中,并且它使用了太多的 cpu 只是循环。不确定在 C# 和 WPF 中是否有更好/正确的方法来执行此操作:

0 投票
1 回答
177 浏览

c++ - 如何在无模式对话框中使用 Enter 键?

我一直在为大学做一个 WinAPI 项目,我们被要求在一个对话框中实现完整的程序。起初,我使用了一个模态对话框,一切正常,除了对话框的任务栏中没有图标,因为我直接在 WM_CREATE 上创建了它,并且没有使主窗口可见,因为它不是用过的。

现在我完全放弃了主窗口句柄,只用于CreateDialog创建一个无模式对话框,但从那以后我不能使用该Enter键作为默认按钮的替代品。

这是我的全部主要功能:

我只是做错了一些基本的事情,还是没有按照我想要的方式工作?

澄清一下:如果我Enter在对话框中按下键,我只会得到典型的 Windows 通知声音。

0 投票
1 回答
37 浏览

mfc - 在对话框之间自动移动焦点

我有一个模态对话框,在按下按钮时显示一个无模式的“伴随对话框”。为了使 UI 更加直观和流畅,我希望焦点跟随鼠标并在对话框之间移动,而无需额外点击。

是否有一个简单的消息处理程序可以在这里提供帮助?我想我可以通过在每个对话框中使用TrackMouseEventand来做到这一点OnMouseHover——但对于这种“简单”的效果来说,这似乎很重要?

0 投票
1 回答
527 浏览

javascript - “ScriptError:需要授权才能执行该操作。” 从库运行 google.script.run 时

问候,

我发现了几个关于此错误的问题: "ScriptError: Authorisation is required to perform that action."但我找不到与我的问题有关的问题。

我想要做的是使用 google.script.run 从 .html 文件调用函数 .gs 文件,其中两个文件都在库中。参考这个答案这个答案这个错误报告,我在使用库的脚本中创建了“包装函数”,但仍然未能完成执行。

这是我所做的:

.html 在库中:

.gs 在库中

.gs 在使用库的脚本中:

控制台记录HERE但随后它记录ERROR: ScriptError: Authorisation is required to perform that action.而不是预期的输出,test123.

注意:HTML 用于表格中的自定义无模式对话框,不适用于 Web 应用程序。

我真的希望有人能在这方面帮助我。先感谢您。

0 投票
0 回答
23 浏览

vba - 向模块添加过程会取消用户表单加载/显示,必须运行两次显示用户表单才能显示

我有一个用户表单,frmSort它显示在运行我的主代码之前选择了哪一列。
为了frmSort动态更新选择的列,以防从功能区打开时选择了错误的列frmSort,我必须Worksheet_SelectionChange在活动工作表模块中有一个代码。

由于Worksheet_SelectionChange删除了撤消堆栈(至少我的),并且我有其他代码依赖于Application.Undo,因此我已经在显示时将其插入Worksheet_SelectionChange正确的工作表模块frmSort中,并在Userform_Terminate.

令我惊讶的是代码:在同一次运行期间
LineNum = .CreateEventProc("SelectionChange", "Worksheet") 以某种方式破坏了我的负载。frmSort.show vbModeless

首先它在添加代码后显示VBE-editor,即使没有打开VBE,这也不好。其次,它不显示用户表单。我的测试告诉我用户表单已加载,但未显示。在“程序添加”之后的同一运行中运行 ```frmSort.show vbModeless`` 不起作用。

我能够添加Worksheet_SelectionChange并显示用户窗体modal,但不是无模式的。由于我希望能够更改主代码运行的列,并在用户窗体中显示更改,我相信无模式用户窗体是要走的路。

运行两次时它起作用的原因是我SelectionChangeOnOff的子程序在插入之前检查程序是否存在。让我不得不按两次功能区按钮并关闭 VBE 才能继续......

关于如何进行的任何想法?

我想先将它作为模态打开,然后以无模式隐藏并重新打开,但是代码:

不卸载用户表单。不是说加载为模态然后重新加载为非模态是要走的路,而是把它扔在那里。

0 投票
1 回答
113 浏览

c++ - 使用对话框作为主窗口。未收到 WM_INITDIALOG 消息

我创建了一个无模式对话框作为主窗口,但没有向窗口过程发送 WM_INITDIALOG 消息。

这就是我所做的。

  1. 使用 Visual Studio 的资源编辑器创建了一个对话框模板,并将其类名设置为自定义类。
  2. 使用 WNDCLASSEX 注册类,窗口程序,以及一些图标和画笔等。
  3. 使用 CreateDialog(),最后两个参数设置为 NULL,(父窗口和窗口过程)。
  4. 使用 IsDialogMessage()、TranslateMessage() 和 DispatchMessage() 创建了消息循环;
  5. 如果未处理任何消息,则默认在窗口过程中返回 DefDlgProc()。

我想不出还有什么重要的事情。除了没有收到 WM_INITDIALOG 消息外,一切正常。我已经这样做了,所以应用程序最小化到任务栏,如果需要我可以有一个菜单。

所以我的第一个问题是,我做了什么蠢事吗?

其次,我应该期望使用这个系统接收 WM_INITDIALOG 消息吗?如果没有,什么是初始化带有字符串的组合框的好方法。(我已经查看了 WM_ACTIVATE、WM_ACTIVATEAPP 等内容,但似乎没有什么合适的。并且组合框尚未在 WM_CREATE 创建。)提前致谢。

0 投票
0 回答
17 浏览

dialog - 使ckeditor图像插件对话框非模态

我们在我们的产品中使用 CKEditor,并且我们在其中启用了图像插件。我们需要使图像对话框无模式(非模式),以便用户可以与父窗口进行交互。CKEditor 对话框定义没有任何选项可以使我看到的情况发生。有人可以帮忙吗?

0 投票
1 回答
35 浏览

visual-c++ - 当无模式弹出窗口具有焦点时,加速键不起作用

我的 mainCDialog有时会显示一个像这样的子无模式对话框:

在此处输入图像描述

仅当用户将其配置为自动显示时才会显示。


OnInitDialog它通过调用此函数的主对话框显示:

我注意到我的一些主窗口加速器热键并不总是有效。然后我意识到这是因为弹出窗口具有焦点。如果我单击主对话框上的任意位置以使其获得焦点,那么我的加速器热键将起作用。


即使无模式窗口可能有焦点,我们是否仍然可以轻松地允许主编辑器处理它的热键?一个标准的方法来满足这个?


主窗口像这样处理加速器:

并且弹出的无模式窗口也使用PreTranslateMessage(如果它是相关的):