GetWindowRect liefert falsche Werte im Releasemodus
-
Guten Tag
Ich habe das Problem das aus irgend einem Grund bei meinem dialogfeldbasierenden Programm GetWindowRect im Releasemodus einen falschen Wert (Fensterunterseite = 0xFFFF) zurückgibt.
Weis zufällig woran das liegen könnte?Ich verwende VisualStudio 2005 unter Windows7 64bit
// Der fragliche Codeabschnit BOOL CProgrammklasseDlg::OnInitDialog() { CDialog::OnInitDialog(); // Hinzufügen des Menübefehls "Info..." zum Systemmenü. // IDM_ABOUTBOX muss sich im Bereich der Systembefehle befinden. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { CString strAboutMenu; strAboutMenu.LoadString(IDS_ABOUTBOX); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } // Symbol für dieses Dialogfeld festlegen. Wird automatisch erledigt // wenn das Hauptfenster der Anwendung kein Dialogfeld ist SetIcon(m_hIcon, TRUE); // Großes Symbol verwenden SetIcon(m_hIcon, FALSE); // Kleines Symbol verwenden // Ermitteln der Fenstergröße um sie als Minimum in OnGetMinMaxInfo zu verwenden GetWindowRect(&m_cRectWndMin); // Ausgabe der Fensterdaten zu testzwecken // Im Releasemodus enthält cRectWndMin.bottom immer den Wert 0xFFFF CString strTest; strTest.Format(_T("L: %d\nO: %d\nR: %d\nU: %d\n\n\nBreit: %d\nHoch: %d"), m_cRectWndMin.left, m_cRectWndMin.top, m_cRectWndMin.right, m_cRectWndMin.bottom, m_cRectWndMin.Width(), m_cRectWndMin.Height()); MessageBox(strTest); // Dem Startknopf den Eingabefokus geben GetDlgItem(IDC_BUTTON_START)->SetFocus(); // Den Funktionen mitteilen das das Programmfenster initialisiert wurde m_bInit = true; return FALSE; // Geben Sie TRUE zurück, außer ein Steuerelement soll den Fokus erhalten }
-
Hast Du evtl. Deinen OnMinMax Handler schon laufen lassen und der hat die Werte schon manipuliert und das evtl. falsch?
-
Vielen Dank
Das wars.
Ich hatte aus irgend einem Grund im Anflug von geistiger Umnachtung in OnGetMinMaxInfo die Abfrage von m_bInit ausgeblendet.