Диалоговое окно Windows C ++ resizer класс

Приоритет оператора - это просто порядок, в котором применяются операции. Например, рассмотрим следующее математическое утверждение:

10 + 6 / 2

Ну, (10 + 6) / 2 = 16 / 2 = 8, но 10 + (6 / 2) = 10 + 3 = 13, так что ясно, в каком порядке вы выполняете операции. Математически, какой из этих ответов является правильным ? Если вам задали этот вопрос на экзамене, какой ответ вы должны записать? Приоритет оператора говорит вам об этом.

Вопрос просит вас сделать нечто подобное для булевых операторов.

Попробуйте следующую программу:

public class HelloWorld {

     public static void main(String []args){
        System.out.println(true || true && false);

        System.out.println(true && true || false);
     }
}

Оказывается, что оба они true.

Чтобы узнать больше об этом, вы можете поэкспериментировать с круглыми скобками, чтобы увидеть, как это меняет истинное значение утверждений. Например,

System.out.println((true || true) && false);

- это false. Сравните это с тем, что

System.out.println(true || true && false);

есть true. Что это говорит вам о порядке, в котором Java выполняет операции? Ну, то, как я написал скобку, изменило результат, так что ясно, что это неправильно. Из этого можно сделать вывод, что Java должна использовать круглые скобки «по-другому»:

System.out.println(true || (true && false));

Если вы проверите диаграмму в ответе @ Sand, &&, на самом деле, имеет более высокий приоритет, чем [ 1111], поэтому эта операция применяется первой. Это именно то, что мы видим здесь.

6
задан DougN 27 September 2008 в 22:53
поделиться

7 ответов

Можно использовать wxWidgets. Это полностью заменяет MFC, является многоплатформенным, и дает Вам основанный на расположении диалоговый механизм.

1
ответ дан 17 December 2019 в 04:54
поделиться

Я использую ResizableLib (также делает PropertySheets и Страницы) от codeproject, IIRC. Вы устанавливаете точки привязки, которые определяют, как диалоговое окно и средства управления изменяют размер или перемещаются, когда диалоговое окно перемещается.

Можно установить до 2 привязок на управление, (оставленный, право), таким образом, можно переместить их, как диалоговое окно перемещается, или измените размер их, когда оно перемещается. Его очень легкое, чтобы понять, если трудный стать совершенно правильным :)

2
ответ дан 17 December 2019 в 04:54
поделиться

Я попробовал многих и наконец обосновался на http://www.codeproject.com/KB/dialog/layoutmgr.aspx. Это не делает 'интеллектуального' layouting, который Вы предлагаете все же. Я никогда не видел, что в любой библиотеке, на любой платформе - не вижу, как она работала бы, не имея большого количества из под волшебством капота, это должно будет быть переопределенной половиной времени так или иначе.

2
ответ дан 17 December 2019 в 04:54
поделиться

Библиотека Ultimate Toolbox MFC (здесь на CodeProject) включает менеджера по расположению. Я не использовал его сам, но похоже, что это делает то, что Вы хотите.

0
ответ дан 17 December 2019 в 04:54
поделиться

Можно посмотреть на Профессионала GUI, мы используем их библиотеку классов для изменения размеров наших диалоговых средств управления. Я думаю, что это - часть их бесплатной версии.

0
ответ дан 17 December 2019 в 04:54
поделиться

Это - бесплатное решение также от CodeProject
http://www.codeproject.com/KB/dialog/dlgresizearticle.aspx
Это - просто ряд простых макросов, которыми управляет положение, поскольку диалоговое окно изменяет размер.

Редактирование - после комментариев операции в секунду. Я не знаю ни о какой общей поддержке классификатора как QT/WX для MFC, это, кажется, не присутствует в новых платформах как Winforms также.
Это находится в QT/WX, потому что необходимо для многоплатформенного, где виджеты могут быть другим размером, который объясняет отсутствие MS его. Но также жизненно важно для многоязычных портов, например, где немец для отмены является 30 символами долго.

0
ответ дан 17 December 2019 в 04:54
поделиться

Мы используем класс CResize от CodeGuru для изменения размеров всех средств управления автоматически. Вы говорите, как Вы хотите, чтобы каждое управление было изменено, и оно делает задание для Вас.

Изменить размер парадигма должна указать, сколько переместит каждая сторона управления, когда диалоговое окно будет изменено.

SetResize(IDC_EDIT1, 0,   0,   0.5, 1);
SetResize(IDC_EDIT2, 0.5, 0,   1,   1);

Очень удобный, когда у Вас есть большое количество диалоговых средств управления.

Исходный код

0
ответ дан 17 December 2019 в 04:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: