【发布时间】:2013-03-12 10:27:02
【问题描述】:
我想让程序在句柄可用时工作。我正在考虑在初始化时设置计时器......并将所有程序源插入其中,但如果我在while循环中处理程序时丢失了句柄,它不会让我立即关闭对话框。
BOOL WaitProcessDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
SetTimer(IDC_PROGRESS1, 0, NULL);
return TRUE;
}
void WaitProcessDlg::OnTimer(UINT nIDEvent)
{
if(::FindWindow(NULL, str)){
tempHWND = ::FindWindow(NULL, str);
while(tempHWND){
----------------------->>>>>>>>>>>> A LOT OF CODING <<<<<<<<<<<<<<<<----------------------
}
EndDialog( 0 );
KillTimer(IDC_PROGRESS1);
}
CDialog::OnTimer(nIDEvent);
}
所以我的问题是当外部应用程序的句柄可能丢失时关闭对话框的最佳方法是什么,也许是插入线程或有任何其他方法可以做到这一点?
【问题讨论】:
-
你的问题不是很清楚——你能展示一些代码和你看到的问题的一些例子吗?
-
我编辑了我的问题。
-
什么程序的句柄?它是一些外部应用程序吗?
-
是的,外部应用的句柄。
-
有什么想法吗?