はじめまして。今月からVC++6.0をはじめたばかりの者です。
データ検索時にプログレスダイアログを表示させたいのですが・・・
表示?というか一瞬でるだけで、すぐ元のウィンドウに戻ってしまいます。
(検索時間は10秒くらいはかかってるのですが)
検索終了まで表示させておくのにはどうすればいいでしょう?
ご存知の方がおられましたら、ぜひ教えてください。よろしくおねがいします。
どのあたりを載せておけばいいかも分かってないので、一部だけにしときます。
CProgressDlg::CProgressDlg(UINT nCaptionID)
{
m_nCaptionID = CG_IDS_PROGRESS_CAPTION;
if (nCaptionID != 0)
m_nCaptionID = nCaptionID;
m_bCancel=FALSE;
m_nLower=0;
m_nUpper=100;
m_nStep=10;
//{{AFX_DATA_INIT(CProgressDlg)
m_Par = _T(");
//}}AFX_DATA_INIT
m_bParentDisabled = FALSE;
}
CProgressDlg::~CProgressDlg()
{
if(m_hWnd!=NULL)
DestroyWindow();
}
BOOL CProgressDlg::DestroyWindow()
{
ReEnableParent();
return CDialog::DestroyWindow();
}
void CProgressDlg::ReEnableParent()
{
if(m_bParentDisabled && (m_pParentWnd!=NULL))
m_pParentWnd->EnableWindow(TRUE);
m_bParentDisabled=FALSE;
}
BOOL CProgressDlg::Create(CWnd *pParent)
{
// ダイアログの実際の親ウィンドウを取得します。
m_pParentWnd = CWnd::GetSafeOwner(pParent);
// m_bParentDisabled は、このダイアログが破棄された時に、親ウィンドウを
// 再び有効にするために使用します。従って、この時点で親ウィンドウがすでに
// 有効な場合のみ、この変数に TRUE を設定します。
if((m_pParentWnd!=NULL) && m_pParentWnd->IsWindowEnabled())
{
m_pParentWnd->EnableWindow(FALSE);
m_bParentDisabled = TRUE;
}
if(!CDialog::Create(CProgressDlg::IDD,pParent))
{
ReEnableParent();
return FALSE;
}
return TRUE;
}
プログレスバーを表示させているところ、
プログレスバーの表示を進めているところ、
の2箇所のソースも貼ってください。
たいちうさん、わざわざレスしてもらってもうしわけないんですが、
解決してしまいました。ご迷惑おかけしました。。