none
MainWnd->IsWindowEnabled liefert TRUE aber MainWnd->EnableWindow(FALSE) liefert FALSE RRS feed

  • Frage

  • Hi,

    ich habe einen modeless Dialog, der zeitweise modal werden soll.

    also hatte ich implementiert

    CMyDlg::OnBtnClick()
    {
      BOOL bOldEnabled=AfxGetMainWnd()->EnableWindow(FALSE);
      ...
      AfxGetMainWnd()->EnableWindow(bOldEnabled);
    }

    Nachdem beim Test nichts mehr reagierte habe ich den Code geändert:

    CMyDlg::OnBtnClick()
    {
      BOOL bIsEnabled=AfxGetMainWnd()->IsWindowEnabled();
      BOOL bOldEnabled=AfxGetMainWnd()->EnableWindow(FALSE);
      ...
      AfxGetMainWnd()->EnableWindow(bOldEnabled);
    }

    Das Debuggen hat herausgebracht, dass zwar bIsEnabled TRUE, aber bOldEnabled FALSE ist.

    Wieso???

    Ich habe den Quelltext erstmal erneut abgeändert

    CMyDlg::OnBtnClick()
    {
      BOOL bIsEnabled=AfxGetMainWnd()->IsWindowEnabled();
      if (bIsEnabled) AfxGetMainWnd()->EnableWindow(FALSE);
      ...
      if (bIsEnabled) AfxGetMainWnd()->EnableWindow(TRUE);
    }

    Aber ich hätte gedacht, dass der erste Quelltext eigentlich der richtige ist...

    Tschüß, Holger.

    Freitag, 24. Januar 2014 09:25

Antworten

Alle Antworten