К основному контенту

wxWidgets. Окна на весь экран.


Фреймы в wxWidgets развернуть на весь экран достаточно легко. Стоит только указать в конце функции его описания  Maximize(true);   

MyFrame::MyFrame(const wxString &title) : wxFrame(NULL, wxID_ANY, title, wxDefaultPosition, wxSize(200, 200) )
{
      Maximize(true);
}

Также достаточно полезно пользоваться «стилями» фреймов.  Здесь я приведу их описания, взятые с офф сайта wxWidgets с некоторыми комментариями.

wxDEFAULT_FRAME_STYLE:

Определяется, как wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxRESIZE_BORDER | wxSYSTEM_MENU | wxCAPTION | wxCLOSE_BOX | wxCLIP_CHILDREN.
Стиль, который используется в фреймах по-умолчанию.

wxICONIZE:

Отображает фрейм без заголовка и без границ. В этом случае можно указываь размер и положение на экране. Только для Windows.

wxCAPTION:

Показывает заголовок на фрейме.

wxMINIMIZE:

Идентично wxICONIZE. Только для Windows. Черт его знает зачем два одинаковых стиля.

wxMINIMIZE_BOX:

Показывает кнопку «свернуть».

wxMAXIMIZE:

Показывает кнопку «развернуть».Только для Windows и GTK+.

wxCLOSE_BOX:

Показывает кнопку «закрыть»

wxSTAY_ON_TOP:

Тут все понятно. Поверх всех окон.

wxSYSTEM_MENU:

Добавляет системное меню, содержащее разные команды в заголовке окна (закрыть, свернуть и т.д.).

wxRESIZE_BORDER:

Показывает изменяемые границы окна.

wxFRAME_TOOL_WINDOW:

Не совсем понимаю что это =)

wxFRAME_NO_TASKBAR:

Создается обычный фрейм, но он не появляется  в панеле задач под виндой и GTK+


И небольшой пример:

Что бы создать фрейм, у которого невозможно изменять размер необходимо применить следующий стиль:

wxDEFAULT_FRAME_STYLE & ~(wxRESIZE_BORDER | wxMAXIMIZE_BOX)

MyFrame::MyFrame(const wxString &title) :
      wxFrame(NULL, wxID_ANY, title, wxPoint(40, 40), wxSize(200, 200), wxDEFAULT_FRAME_STYLE & ~(wxRESIZE_BORDER | wxMAXIMIZE_BOX))
{    
      Centre(true);
}

Комментарии

Отправить комментарий

Популярные сообщения из этого блога

Почему нельзя наследовать структуры в C# ?

Введение - зачем используются структуры? Все мы сильно любим структуры (идея, чуждая Java, не считая примитивных типов). Структуры, когда они не упакованы, зачастую, предоставляют прекрасную возможность обрабатывать динамические данные относительно небольшого размера. Размещение и освобождение типов данных в целом проще, чем размещение и освобождение ссылочных типов. Это связано тем, что структуры размещаются в стеке, либо встроены в содержащиеся типы и освобождаются, при очищении стека либо когда встроенные типы перераспределяются, в то время, как ссылочные типы размещаются в куче и очищаются сборщиком мусора (garbage-collected) Хм... Структуры не хотят наследоваться. Объектно-Ориентированное Программирование дает нам возможность делать много полезных вещей. И основной коцепт - это, конечно же, наследование. Многие из нас, когда либо, пытались наследовать структуру только для того, что бы понять, что C# не позволит нам этого сделать. Для примера рассмотрим код: /...

Использование curl в C#

Для того что бы скачать страницу какого-либо сайта в основном используют код следующего вида: string page ; using ( var client = new WebClient ( ) ) { page = client . DownloadString ( "http://www.example.com/" ) ; } Конечно, это простейший код, но в большинстве случаев он работает. Но бывают случаи, когда при "парсинге" возникает ошибка:   500 Internal Server Error .  В основном, она возникает в случае, если сервер не может получить от нас h t tp-заголовок при запросе данных. (Конечно, это может быть и ошибка на сервере, но мы будет обсуждать случай, когда сайт защищен подобным способом) В данном случае нам необходимо отправлять http-заголовок на сервер, таким образом мы маскируемся под браузер. Для этого и служит библиотека curl. Программа cURL может автоматизировать передачу файлов или последовательность таких операций. Например, это хорошее средство для моделирования действий пользователя в веб-обозревателе. ( wikipedia ) Для исп...

Алгоритм Эдуардо Сэверина из фильма "Социальная сеть"

Если вы смотрели фильм про Facebook "Социальная сеть", то вы, должно быть, обратили внимание на алгоритм, который Эдурдо Северин предоставил Марку Цукербергу для его идеи FaceSmach. Вот этот алгоритм: Ea = ________1_________ 1 + 10 (Rb -Ra) /400 Eb = ________1_________ 1 + 10 (Ra -Rb) /400 На самом же деле алгоритм этот уже давно известен и называется он "Рейтинг Эло" . В фильме этот алгоритм представляется чем-то невероятно сложным и удивительным, хотя, на самом деле он используется в течении многих лет в официальных шахматных рейтингах. Напомню, что по фильму этот алгоритм использовался Марком для сравнивания  рейтинга девченок из его Университета.