草庐IT

Windows API CreateDialog : Modeless Dialog just not show up

即使在大量谷歌搜索之后,我真的无法弄清楚如何制作无模式对话框。我想要做的是通过按下主窗口上的按钮来触发对话框。(所以让我把所有的东西都放在这里。我之前没有把所有的东西都放上去,以免读起来太乱了。)我的代码如下:#include"main.h"#include"resource.h"#includeINT_PTRCALLBACKAboutDlgProc(HWNDhwnd,UINTMessage,WPARAMwParam,LPARAMlParam){switch(Message){caseWM_INITDIALOG:returnTRUE;break;caseWM_COMMAND:switc

c++ - 如何调用 shell "file copy dialog"来报告 Win32 中的复制进度?

如何通过调用Windows的“复制文件”对话框来复制文件?SHFileOperation似乎是一个选项,但它在我们的流程中。顺便问一下,SHFileOperation有GUI界面吗?是不是和Windows复制对话框一模一样? 最佳答案 是的,这就是SHFileOperationfunction专为。它接受SHFILEOPSTRUCTstructure作为其唯一参数,您可以使用它来指定所需的选项。但是,它已在WindowsVista和更高版本中被替换为IFileOperationinterface.

c# - 当 DialogResult 为 No 时防止 Form 关闭

我在Windows窗体申请表的关闭事件中使用以下代码:privatevoidMain_FormClosing(objectsender,FormClosingEventArgse){DialogResultdr=MessageBox.Show("Areyousureyouwanttoquit?","LeavingApp",MessageBoxButtons.YesNo,MessageBoxIcon.Question);if(dr==DialogResult.No){return;}elseApplication.Exit();}但问题是,只要用户单击"is",应用程序就会结束,但当用户

c++ - 如何将事件处理程序添加到桌面窗口?

我正在尝试制作一个程序,用鼠标下的颜色值更新另一个窗口文本输入。问题是我不知道该检查WM_MOUSEMOVE放在哪里,因为我还没有自己创建桌面窗口。我尝试创建自己的显示值的对话框,但WM_MOUSEMOVE仅在该对话框内有效,在其外部无效。 最佳答案 我不是这方面的专家,但根据我的阅读,您需要监听WM_INPUT消息。为了开始接收该消息,您的应用程序需要注册以监听鼠标。阅读:http://msdn.microsoft.com/en-us/library/windows/desktop/ms645543(v=vs.85).aspx#_

c# - 如何显示标准 Windows 数据源 (ODBC) 对话框

有没有什么简单的方法可以从winforms应用程序显示标准的Windows数据源对话框?我想向用户展示它并获取系统dsn或创建一个新的并返回数据源名称。我没有在.net中找到对现有包装器的任何引用,所以我想我只能为此使用winAPI。任何现有的解决方案或代码片段将不胜感激。 最佳答案 似乎无法从此对话框中获取所选数据源名称。这是可用于调用此对话框的winapi函数(link):BOOLSQLManageDataSources(HWNDhwnd);这是一个片段:[DllImport("ODBCCP32.dll",CharSet=Cha

windows - MFC - 在显示对话框后立即执行代码(相当于 Form.Shown 的 .NET)

我正在对C++MFC项目进行一些小改动。我是.NET开发人员,所以Windows编程对我来说是新的。我需要在CDialog第一次完全显示(绘制)后立即启动一些方法,但只有一次。我该怎么做?在.NET中,我会处理Form.Shown事件。我需要处理一些消息吗?哪个?我是否需要覆盖某些CDialog方法?或者没有简单的方法?我正在考虑处理WM_ACTIVATE,然后使用一个标志来确保我只调用另一个方法一次。 最佳答案 在这里找到答案:Waitinguntilthedialogboxisdisplayedbeforedoingsometh

c# - WPF 模态进度窗口

如果这个问题被回答了很多次,我深表歉意,但我似乎找不到适合我的答案。我想创建一个模态窗口,在我的应用程序执行长时间运行的任务时显示各种进度消息。这些任务在单独的线程上运行,我能够在流程的不同阶段更新进度窗口上的文本。跨线程通信一切正常。问题是我无法让窗口仅位于其他应用程序窗口(不是计算机上的每个应用程序)之上,保持在顶部,防止与父窗口交互,并仍然允许工作继续。这是我到目前为止尝试过的:首先,我的初始窗口是一个自定义类,它扩展了Window类并具有更新消息框的方法。我在早期创建了启动类的一个新实例,并根据需要显示/隐藏它。在最简单的情况下,我实例化窗口并对其调用.Show()://fro

c# - 在 C# 中手动复制文件时显示复制文件对话框/表单?

我正在通过C#手动复制一些文件夹和文件,我想向用户展示实际发生的事情。目前,该程序看起来好像被卡住了,但实际上它正在复制文件。我认为已经有一个显示过程的内置对话框或表单,类似于在Windows资源管理器中复制/移动文件。是否有类似的东西可用,还是我必须从头开始创建所有内容?另外,这是否是向用户表明某事正在积极进行的最佳方法?感谢您的帮助! 最佳答案 Microsoft.VisualBasic.FileIO命名空间中内置了一个。不要被这个名字吓到,它是一个被低估的C#命名空间。静态类FileSystem具有具有该功能的CopyFile

c# - 如何在 Windows 10 通用应用程序中显示模态窗口?

当我在Windows10中使用Mailuniversal应用程序时,当我添加一个帐户(设置->帐户->添加帐户)时,似乎会弹出一个模式窗口来选择一个帐户。我尝试使用MessageDialog,但我无法将任何自定义内容放入其中。编辑:这是屏幕截图有人知道如何实现它或者有一些api可以做到吗?注意:打开此窗口后,您甚至无法最小化/最大化/关闭主窗口。所以,它绝对是一个模态窗口。 最佳答案 我自己还没有使用过它,但我相信您正在寻找ContentDialogapi。vardialog=newContentDialog(){Title="Lo

c# - 使用 hWnd 设置 Window.Owner

在我的WPF/C#应用程序中,我使用如下代码创建了一个对话窗口:Windowdialog=newMyDialog()asWindow;dialog.Owner=Window.GetWindow(this);dialog.ShowDialog();如何将对话框所有者设置为另一个应用程序窗口的hWnd?我需要的功能只是在对话框可见时阻止“所有者窗口”。 最佳答案 使用WindowInteropHelper:Windowdialog=newMyDialog();WindowInteropHelperwih=newWindowInterop