是否可以显示没有按钮的TaskDialog?我希望能够只显示一个进度条(带有一条消息),然后在我的处理完成时(从TaskDialog事件)关闭计时器窗口。现在,我可以显示一个禁用的按钮,然后调用ButtonClick来关闭窗口,但是不显示按钮并且有一个CloseDialog方法将是理想的。
谢谢。
发布于 2011-11-11 17:03:46
如果您没有指定任何按钮,TaskDialog()和TaskDialogIndirect()都会强制使用默认按钮,但您可以控制使用哪种按钮,因此我会在对话框中放置一个中止按钮,以取消您正在显示其状态的任何操作。或者,如果用户不想在不停止正在进行的操作的情况下再看到进度,则可以使用隐藏按钮。
您必须使用TaskDialogIndirect()才能激活进度条功能。您还可以使用它的回调功能来获取对话框的HWND,以便在需要时可编程地关闭它。
否则,请不要使用TaskDialog接口。只需用你自己的UI创建你自己的窗口,然后你就可以用它做任何你想做的事情。
发布于 2012-01-20 21:41:35
从CTaskDialog派生您自己的类
class CTaskDlg : public CTaskDialog
{
in CTaskDlg.h declare:
public:
void CloseTaskDlg(void);
protected:
HWND m_TaskDlgHwnd;
virtual HRESULT OnInit();
};在CTaskDialog.cpp中:
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();https://stackoverflow.com/questions/8091078
复制相似问题