首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有按钮的TaskDialog

没有按钮的TaskDialog
EN

Stack Overflow用户
提问于 2011-11-11 15:49:52
回答 2查看 1.3K关注 0票数 1

是否可以显示没有按钮的TaskDialog?我希望能够只显示一个进度条(带有一条消息),然后在我的处理完成时(从TaskDialog事件)关闭计时器窗口。现在,我可以显示一个禁用的按钮,然后调用ButtonClick来关闭窗口,但是不显示按钮并且有一个CloseDialog方法将是理想的。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-11 17:03:46

如果您没有指定任何按钮,TaskDialog()TaskDialogIndirect()都会强制使用默认按钮,但您可以控制使用哪种按钮,因此我会在对话框中放置一个中止按钮,以取消您正在显示其状态的任何操作。或者,如果用户不想在不停止正在进行的操作的情况下再看到进度,则可以使用隐藏按钮。

您必须使用TaskDialogIndirect()才能激活进度条功能。您还可以使用它的回调功能来获取对话框的HWND,以便在需要时可编程地关闭它。

否则,请不要使用TaskDialog接口。只需用你自己的UI创建你自己的窗口,然后你就可以用它做任何你想做的事情。

票数 2
EN

Stack Overflow用户

发布于 2012-01-20 21:41:35

从CTaskDialog派生您自己的类

代码语言:javascript
复制
class CTaskDlg : public CTaskDialog
{
in CTaskDlg.h declare:
    public:
        void CloseTaskDlg(void);
protected:
    HWND m_TaskDlgHwnd;
    virtual HRESULT OnInit();
};

在CTaskDialog.cpp中:

代码语言:javascript
复制
void CTaskDlg::CloseTaskDlg(void)
{
    ::SendMessage(m_TaskDlgHwnd, TDM_CLICK_BUTTON, static_cast<WPARAM>(TDCBF_OK_BUTTON), 0);
}

HRESULT CTaskDlg::OnInit()
{
    m_TaskDlgHwnd = ::GetActiveWindow();
    return S_OK;
}

CTaskDlg dlg;
dlg.CloseTaskDlg();
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8091078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档