我已经使用常规 Windows Vista/7 TaskDialog 工作了一段时间,我想添加一些额外的功能(如自定义按钮和页脚),所以我需要使用 TaskDialogIndirect .
按照 TaskDialogIndirect 的 MSDN 文档,我得到了这个签名:
[DllImport("comctl32.dll",CharSet = CharSet.Unicode,EntryPoint="TaskDialogIndirect")]
static extern int TaskDialogIndirect (TASKDIALOGCONFIG pTaskConfig, out int pnButton, out int pnRadioButton, out bool pfVerificationFlagChecked);
TASKDIALOGCONFIG类如下所示:
public class TASKDIALOGCONFIG
{
public UInt16 cbSize;
public IntPtr hwndParent;
public IntPtr hInstance;
public String dwFlags;
public String dwCommonButtons;
public IntPtr hMainIcon;
public String pszMainIcon;
public String pszMainInstruction;
public String pszContent;
public UInt16 cButtons;
public TASKDIALOG_BUTTON pButtons;
public int nDefaultButton;
public UInt16 cRadioButtons;
public TASKDIALOG_BUTTON pRadioButtons;
public int nDefaultRadioButton;
public String pszVerificationText;
public String pszExpandedInformation;
public String pszExpandedControlText;
public String pszCollapsedControlText;
public IntPtr hFooterIcon;
public IntPtr pszFooterText;
public String pszFooter;
// pfCallback;
// lpCallbackData;
public UInt16 cxWidth;
}
TASKDIALOG_BUTTON 实现:
public class TASKDIALOG_BUTTON
{
public int nButtonID;
public String pszButtonText;
}
我不完全确定我在这里是否走在正确的轨道上。是否有人直接通过 WinAPI(没有 VistaBridge 或 Windows API 代码包)从托管代码使用 TaskDialogIndirect?我对可能的实现以及回调声明很好奇(我不完全确定如何实现 TaskDialogCallbackProc)。
PS:我正在寻找直接的 WinAPI 实现,而不是通过包装器实现。
最佳答案
查看 VistaBridge 库。它会给你一个愉快的包装,围绕所有这些东西,包括 TaskDialogIndirect..
关于c# - 在 C# 中使用 TaskDialogIndirect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2723454/