setWindowLong und getWindowLong



  • Hi,

    ich habe eine kleines Problem mit diesen beiden Funktionen.
    Diese scheinen so, wie ich diese benutze nicht zu funktionieren.

    Ich habe eine Edit-Feld, in das nur Zahlen eingetragen werden können.
    Allerdings wird nichts automatisch beim initialisieren eingetragen und auch das auslesen klappt nicht.
    Kompilieren geht ohne Probleme.

    hier einmal der Code, vllt. erkennt einer den Fehler.

    ..........
      (void) ::SetWindowText(GetDlgItem(IDC_LOGFILENAME),m_GlobalPolicy.GetLogFileName());
    	(void) ::SetWindowLong(GetDlgItem(IDC_MAX_FILE_SIZE),GWL_USERDATA,m_GlobalPolicy.GetLogFileSize());
    
    .......
    
    BOOL    CMKSGlobalPolicyPage::OnApply()
    {
        // Copy policy back from UI to policy object
        char    szNewFileName[MAX_PATH+1];
        ::GetWindowText(GetDlgItem(IDC_LOGFILENAME),szNewFileName,MAX_PATH+1);
    	long	szNewLogFileSize;
    	szNewLogFileSize = ::GetWindowLong (GetDlgItem(IDC_MAX_FILE_SIZE),GWL_USERDATA);
    
        if (SUCCEEDED(m_GlobalPolicy.SetLogFileName(szNewFileName)) && SUCCEEDED(m_GlobalPolicy.SetLogFileSize(szNewLogFileSize)))
        {
            // Save the updated policy
            m_GlobalPolicy.Save();
        }
    
        return __super::OnApply();    
    }
    


  • Die Funktionen GetWindowLong und SetWindowLong haben nichts mit dem Inhalt eines Fensters zu tun, sie sind nicht das Gegenstück zu Get/SetWindowText, sondern holen nur zusätzliche Info über das Fenster selbst ein.

    Hol dir den Inhalt mit GetWindowText und wandle es mit atof() um!


Anmelden zum Antworten