标签: dialog

如何在Windows对话框中处理WM_ERASEBKGND时避免闪烁

我有一个调整大小的对话框.它还有一个自定义背景,我为响应WM_ERASEBKGND调用而绘制(当前是对FillSolidRect的简单调用).

调整对话框大小后,会出现巨大的闪烁现象.为了尝试减少闪烁,我枚举所有子窗口并将它们添加到剪切区域.这似乎有点帮助 - 现在闪烁在所有儿童控件中都很明显,因为它们重新粉饰.

如何在调整大小时使对话框无闪烁?我怀疑双缓冲必须发挥作用,但我不知道如何使用带有子控件的对话框(没有让所有子控件所有者绘制或类似的东西).

我应该注意到我使用的是C++(不是.NET)和MFC,尽管欢迎基于Win32的纯解决方案:)

注意:有一件事我尝试了但哪些不起作用(不确定原因)是:

CDC memDC;
memDC.CreateCompatibleDC(pDC);
memDC.FillSolidRect(rect, backgroundColor);

pDC->BitBlt(0, 0, rect.Width(), rect.Height(), &memDC, 0, 0, SRCCOPY);
Run Code Online (Sandbox Code Playgroud)

windows resize dialog gdi flicker

9
推荐指数
4
解决办法
2万
查看次数

PopUp对话框Android来自后台线程

我需要一个弹出对话框,当我从不同的线程收到一条消息时,但是对话框应该不依赖于Activity,即它应该在屏幕焦点所在的位置显示对话框.

可以吗?因为每个Activity都会处理对话框,所以我想到了使用服务,但是又添加了一个线程,我想避免这种情况.

还有其他选择吗?

java service android dialog

9
推荐指数
1
解决办法
3万
查看次数

如何在单独的线程中创建带有进度条的MFC对话框?

我的应用程序可能需要一段时间才能连接到数据库.这个连接使用单个库函数调用,即我不能在其中放入进度更新并进行回调或类似的操作.

我的想法是在连接到数据库之前在单独的线程中创建一个带有进度条的对话框.此对话框将不断更改进度状态,CProgressCtrl::StepIt()以便用户看到正在发生的事情.
在设置完对话框并执行其操作之后,我想从主线程调用数据库连接函数.连接功能完成后,我想停止进度条线程.

让我画一幅画:

CMyApp::       ProgressThread
InitInstance()      .
    |               .
    |               .
    +-Create Dialog-+
    |               |
    |             Animate
 Connect          Progress
    to             Bar
    DB              |
    |               |
    +-Destroy Dlg---+
    |               .
    |               .
Run Code Online (Sandbox Code Playgroud)

那可能吗?如果有,怎么样?

也许整个事情也可以使用计时器.可能会简单得多,但我也无法做到这一点.

  1. 我知道CProgressCtrl::SetMarquee()哪些可能正是我需要的但我无法使用它因为应用程序没有Unicode支持.
  2. 我可以将数据库连接调用移动到一个单独的线程中,但这样看起来像代码的大量更改和连接错误的额外处理.

更新2
我得到它的方式AlexEzh和Javier De Pedro建议:将DB stuf放入自己的线程.
最初我担心如何处理错误,但它实际上与之前的情况非常相似.

  1. 在主线程中,我创建了一个带有连接参数的结构,结果标志和thread-running-flag.后者最初设定为true.
  2. 我创建一个线程并将该结构作为参数传递.
  3. 我创建了一个在主线程中显示进度条的对话框.
  4. 同样在主线程中,有一个循环在设置thread-running-flag时运行.它调用CMyDialog::Animate()哪些调用CProgressCtrl::StepIt()然后调用Sleep().
  5. 线程执行db-connection代码并false在完成时将running-flag设置为.
  6. 当主线程退出循环时,它可以完全像以前一样处理错误.

缺点:将鼠标移到窗口上不起作用.它是看不见的.因此,不能使用取消按钮或其他交互式对话元素.但是,我可以忍受这一点.

既然您喜欢这个图表,现​​在的样子如下:

CMyApp::        WorkerThread
InitInstance()      .
    |               .
    |               .
Create Dialog       .
    |               .
    +-Start Thread--+ …
Run Code Online (Sandbox Code Playgroud)

c++ mfc multithreading dialog progress-bar

9
推荐指数
2
解决办法
2万
查看次数

将样式应用于所有对话框(微调框对话框,警报对话框等)

如何在不创建各种对话框窗口的自定义实现的情况下将样式应用于所有对话框?

我想覆盖Theme.Dialog

我的最终目标是为应用程序中的每个弹出窗口更改标题栏的颜色.

android themes dialog coding-style

9
推荐指数
1
解决办法
1662
查看次数

WPF Open FIle Dialog主题

Microsoft.Win32.OpenFileDialog在我的WPF应用程序中使用选择文件:

var dlg = new Microsoft.Win32.OpenFileDialog
{
    Title = "Select configuration",
    DefaultExt = ".xml",
    Filter = "XML-file (.xml)|*.xml",
    CheckFileExists = true
};

if (dlg.ShowDialog() == true)
{
//...
}
Run Code Online (Sandbox Code Playgroud)

根据MSDN截图,Windows 7对话框必须具有现代风格,但我得到了旧的:

在此输入图像描述

这个问题一样添加清单不起作用.如何显示MSDN中的对话框?

编辑:

首先,我对"原生"解决方案感兴趣,而不是使用第三方组件.

wpf themes dialog openfiledialog

9
推荐指数
1
解决办法
3989
查看次数

活动作为android中的对话框

我想使用一个activity as dialog,我把活动的主题作为对话,我成功了.但我有这个问题是当我点击活动之外它自动关闭和以前的活动开始..

我尝试了一个透明的父布局,它看起来不像一个对话框..

我想使用此活动在我的应用程序中创建新帐户,因为它只有3个字段,所以在平板电脑中它看起来大空间未使用...所以我想使用活动作为对话框.....

那么提前...... !!! 例子将不胜感激.. !!!!!

android dialog android-activity

9
推荐指数
2
解决办法
7950
查看次数

Android:App Compat主题 - 大对话时

我想使用AppCompat库,但是没有Dialog主题,并且没有我可以扩展或使用的DialogWhenLarge主题.

有没有办法可以扩展基本主题并使其成为DialogWhenLarge,可能使用文件夹和自定义样式项.

谢谢

android dialog android-appcompat

9
推荐指数
1
解决办法
1万
查看次数

全屏DialogFragment与StatusBar重叠

我使用官方指南创建了一个全屏对话框

问题是,我的工具栏与状态栏重叠,我无法弄清楚如何解决这个问题.

DialogFragment

public class CreateAccountDialogFragment extends BaseDialogFragment {

    @Inject
    CreateAccountViewModel viewModel;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        //InjectDependencies....
        View rootView = createDataBinding(inflater, container);
        createToolbar(rootView);

        return rootView;
    }

    private View createDataBinding(LayoutInflater inflater, ViewGroup container) {
        CreateAccountDialogFragmentBinding binding =
                DataBindingUtil.inflate(inflater, R.layout.create_account_dialog_fragment, container, false);
        binding.setViewModel(viewModel);
        return binding.getRoot();
    }

    private void createToolbar(View rootView) {
        Toolbar toolbar = (Toolbar) rootView.findViewById(R.id.toolbar);

        // Set an OnMenuItemClickListener to handle menu item clicks
        toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) { …
Run Code Online (Sandbox Code Playgroud)

java android dialog android-fragments dialogfragment

9
推荐指数
2
解决办法
4849
查看次数

仅在WPF中的ShowDialog()之后设置DialogResult

我有一个窗口,我有时打开使用Show(),有时使用ShowDialog().在第二种情况下,返回的对话结果对我来说很重要.但是,如果我设置DialogResult后调用Show()我得到一个InvalidOperationException.有没有办法找出用于打开窗口和设置或不DialogResult相应的方法?或者还有另一种方式吗?

当然我知道我可以捕获并忽略异常,但我不喜欢这个解决方案.

wpf dialog

8
推荐指数
1
解决办法
5350
查看次数

jQuery UI对话框 - 如何使其不可关闭?

我正在尝试使用jQuery对话框作为ajax的加载屏幕.到目前为止,我的工作非常好,但我希望加载屏幕不能关闭.然而,似乎UI对话框没有"可关闭"作为选项?

你怎么让它不可关闭?我尝试将closeText设置为空白但是没有做任何事情.小'​​X'仍显示在右上角.

难道你不认为closable应该是对话框小部件的选项吗?

谢谢

jquery dialog jquery-ui modal-dialog

8
推荐指数
2
解决办法
4034
查看次数