IProgressDialog立即启动

时间:2016-05-22 12:02:39

标签: c# winapi

我按照正常情况使用IProgressDialog界面,一切正常,但进度对话框仅在几秒钟后才会确定操作确实很长。虽然没有记录,但它似乎是预期的行为,在许多情况下并不坏。但是,在这个特定的应用程序中,我需要立即显示它。

我在整个网络上找到了single reference来承认这一点,并建议一个解决方法。但是,也许是因为在这九年中有很多新的Windows版本,它今天似乎不起作用:

IProgressDialog dialog;
dialog.StartProgressDialog(owner, null, flags, IntPtr.Zero);
...
IntPtr DialogHWnd;
((IOleWindow)dialog).GetWindow(out DialogHWnd);
SendMessage(DialogHWnd, WM_TIMER, new IntPtr(1), IntPtr.Zero);

窗口句柄没问题,我查了一下,没有错误,只是行为没有变化。该对话框仅在几秒钟后出现。

是否有人建议再次在C#中重新创建相同的对话框和功能?当然,这并非不可能,但除了对用户非常熟悉之外,股票对话框还有很好的功能,如动画和取消行为。

1 个答案:

答案 0 :(得分:3)

StartProgressDialog 之前或之后立即致电.directive('forceBind', function() { return { require: '^form', priority: -1, link: function (scope, element, attrs, form) { element.bind('submit', function() { angular.forEach(form, function(value, key) { if(typeof value == 'object'){ if (value.hasOwnProperty('$modelValue')) { if (!value.$viewValue) { value.$setViewValue(""); } } } }); }); } }; }); 。这是一个最小的样本:

dialog.Timer(PDTIMER_RESUME, null)

}