Dialog box is not enabled
Roland Pasternack -- rpasternack@MSERVER2.Legato.COM
Monday, April 15, 1996
Visual C++ 4.1, NT 3.51
I am doing a vanilla dialog box that is derived from CDialog. For this
problem, the dialog box *only* has OK and Cancel buttons. The ctor does
*nothing*. OnInitDialog does this:
BOOL CClientDlg::OnInitDialog()
{
CDialog::OnInitDialog();
CenterWindow();
return (TRUE);
}
The very first time, and *only* the very first time the dialog box is
displayed, it is not enabled. Neither the tab keys, or even clicking on any
of the buttons works (when clicking on the buttons, they don't even move). If
I click on any other application and then click back, the dialog then works.
I came up with a workaround of adding:
GetDesktopWindow()->SetFocus();
SetFocus();
to the OnInitDialog() code. This works, but is a real kludge.
The parent of this dialog box is a CView derived object, which itself fills
the client area of an MDI child window. I suspect the problem relates to the
parent trail, because I have never seen a problem like this in simpler
layouts.
Has anyone seen a problem like this, or have an idea of what may be wrong?
Thanks,
Roland
Uma Shankar -- Uma_Shankar@countrywide.com
Monday, June 17, 1996
I faced the problem similar to you. The workaround i used in the view class
is:
HWND hWnd = GetCapture();
if (::IsWindow(hWnd))
ReleaseCapture();
dialog.DoModal() // DoModal of CDialog Deriver class
if (::Iswindow(hWnd))
ResetCapture(hwnd);
>
Visual C++ 4.1, NT 3.51
I am doing a vanilla dialog box that is derived from CDialog. For this
problem, the dialog box *only* has OK and Cancel buttons. The ctor does
*nothing*. OnInitDialog does this:
BOOL CClientDlg::OnInitDialog()
{
CDialog::OnInitDialog();
CenterWindow();
return (TRUE);
}
The very first time, and *only* the very first time the dialog box is
displayed, it is not enabled. Neither the tab keys, or even clicking on any
of the buttons works (when clicking on the buttons, they don't even move). If
I click on any other application and then click back, the dialog then works.
I came up with a workaround of adding:
GetDesktopWindow()->SetFocus();
SetFocus();
to the OnInitDialog() code. This works, but is a real kludge.
The parent of this dialog box is a CView derived object, which itself fills
the client area of an MDI child window. I suspect the problem relates to the
parent trail, because I have never seen a problem like this in simpler
layouts.
Has anyone seen a problem like this, or have an idea of what may be wrong?
Thanks,
Roland
>
| Вернуться в корень Архива
|