Для чего используется первый аргумент конструктора wxIntegerValidator? - PullRequest
0 голосов
/ 02 апреля 2020

При просмотре документации вы видите этот код:

{
public:
    MyDialog()
    {
        ...
        // Allow positive integers and display them with thousands
        // separators.
        wxIntegerValidator<unsigned long>
            val(&m_value, wxNUM_VAL_THOUSANDS_SEPARATOR);
        // If the variable were of type "long" and not "unsigned long"
        // we would have needed to call val.SetMin(0) but as it is,
        // this is not needed.
        // Associate it with the text control:
        new wxTextCtrl(this, ..., val);
    }
private:
    unsigned long m_value;
};

Адрес члена m_value передается конструктору, но когда связанный wxTextCtrl отвечает на wxEVT_TEXT значение никогда не изменяется.

Используется ли оно только для внутренней работы, или ассоциированное wxTextCtrl когда-либо обновит это значение? Если он никогда не обновляется, нужна ли мне переменная-член вообще? Я хочу использовать значение, введенное в элемент управления, поэтому просто любопытно, стоит ли мне использовать переменную-член, переданную конструктору, или просто преобразовать возвращаемое значение wxTextCtrl::GetValue() во все, что мне нужно.

...