Управление строкой состояния windows

Как скрыть или показать строку состояния в Проводнике Windows

В данной статье показаны действия, с помощью которых можно скрыть или показать строку состояния в Проводнике Windows.

Строка состояния отображается в нижней части проводника и показывает общее количество элементов содержащихся в текущей открытой папке, а также количество выбранных элементов.

При необходимости можно скрыть или показать строку состояния в Проводнике Windows.

Настройка строки состояния является глобальным параметром, который применяется ко всем папкам, а не только к текущей папке.

Как скрыть или показать строку состояния используя Параметры Проводника

Чтобы скрыть или показать строку состояния в Проводнике Windows, откройте классическую панель управления, в выпадающем списке Просмотр выберите Мелкие значки и затем выберите Параметры Проводника .

В окне «Параметры Проводника», перейдите на вкладку Вид, а затем снимите или установите флажок опции Показывать строку состояния и нажмите кнопку OK.

Как скрыть или показать строку состояния используя файл реестра

Данный способ также позволяет скрыть или показать строку состояния в Проводнике Windows, с помощью внесения изменений в системный реестр Windows посредством файла реестра.

Прежде чем вносить какие-либо изменения в реестр, настоятельно рекомендуется создать точку восстановления системы

Все изменения производимые в реестре отображены ниже в листингах файлов реестра.

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

Windows Registry Editor Version 5.00.

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

Windows Registry Editor Version 5.00.

Используя рассмотренные выше действия, можно скрыть или показать строку состояния в Проводнике Windows.

КАК использовать строку состояния?

Итак, что же такое строка состояния? Это небольшое окно, занимающее нижнюю часть главного окна приложения. В большинстве программ под управлением Windows имеется строка состояния. В программе Microsoft Internet Explorer в строке состояния отображаются текущие данные открытия Web-страничек. Когда страничка полностью загружена, в строке состояния пишется: «Готово». Когда вы наводите мышь на гиперссылку, текст в строке меняется на текст этой ссылки. Некоторые Web-программисты пишут на языках Java и Java Script небольшие шалости — например бегущая строка, в которое бегут процентики и надпись: «Форматирование винчестера: 50% завершено». И число процентов быстро возрастает.
Кроме того, часто в программах, предназначенных для длительного использования — например в текстовых редакторах, часто в строке состояние показана текущая дата, время и день недели.
В строке состояния также можно отображать маленькие иконки, подсказки и многое другое.
Для удобства использования строки состояния вы можете разделить её на секции. Например при работе с файлами вы можете в одной секции указывать размер файла, а в другое — оставшееся свободное место на диске.
Стиль секций также может меняться. Текст может быть как вдавленным, так и выпуклым.
При перемещении главного окна, строка состояния должна перемещаться вместе с ним и изменять размеры вместе с ним, растягиваясь или сужаясь.

Что можно делать со строкой состояния?

1. Создание строки
HWND CreateStatusWindow(LONG style, LPCSTR lpszText,
HWND hwndParent, UINT wID);

style — стиль окна
lpszText — указатель на текст в окне
hwndParent — родительское окно
wID — идентификатор строки состояния

2. Разделение строки на секции. Для разделение строки состояния на секции, нужно создать массив с размерами разделителей:
int pParts[3];

pParts[0]=cx-200;
pParts[1]=cx-100;
pParts[2]=cx;

Потом мы посылаем сообщение SB_SETPARTS с указанием количества разделителей и массива их длин.

SendMessage(hStatus, SB_SETPARTS, 3, (LPARAM)pParts);

3. Для вывода текста в строку состояния
нужно послать сообщение SB_SETTEXT с указанием ячейки (третий аргумент) и текста.
SendMessage(hStatus, SB_SETTEXT, 1, (LONG)Buf);

Итак, в путь!
1. Создайте новый проект типа Win32 Application. Назовите проект Status и нажмите Ок. В следующем окне выберите «A typical Hello World Application». Нажмите Finish. Ок.
2. В нашей программе в строке состояния, поделенной на секции будут отображаться текущая дата и время. Для этого разделим строку состояния на три части. Текущие дату и время мы будем получать каждую секунду с помощью системного таймера и функции GetLocalTime().
3. Добавьте в список заголовочных файлов файл commctrl.h — библиотеку общих элементов управления.
4. Выберите в меню Project->Add to Project->Files. Укажите в окне «Открыть» файл comctl32.lib, находящийся в папке: . \Microsoft Visual Studio\VC98\Lib\. В списке файлов должен появиться новый файл — статическая библиотка общих элементов управления
5. В начале исходного кода программы добавьте макроопределение идентификатора строки состояния:

Читайте также:  Лицензия windows server 2019 datacenter

#define ID_STATUS 200

6. В функции окна объявим следующие переменные:

static HWND hStatus; //идентификатор окна строки состояния
static int pParts[3]; //массив частей строки состояния
static short cx; //вспомогательная переменная для вычисления координат

SYSTEMTIME st; //структура системной даты и времени
int day, month, year, sec, min, hour; //вспомогательные переменные
char Buf[256]; //строковый буфер

7. Для создания строки состояния в обработчике сообщения WM_CREATE запишем:

hStatus=CreateStatusWindow(WS_CHILD|WS_VISIBLE, » «, hWnd, ID_STATUS);

Эта строка создаёт новое дочернее окно — строку состояния, родительским окном которого является окно hWnd, а идентификатор ID_STATUS, объявленный выше.
Далее мы посылаем окну сообщение SB_SETTEXT, чтобы записать в первую секцию слово «Готово».

SendMessage(hStatus, SB_SETTEXT, 0, (LONG)»Готово»);

Здесь же надо инициализировать таймер.

SetTimer(hWnd, 1, 1000, NULL);

Здесь мы создали таймер, родительским окном которого является hWnd, идентификатор 1, период 1000 мс или 1 сек. Так как часы изменяют своё время с периодичностью в 1 сек, следует задать именно этот период. Но если вы не хотите, чтобы часы мигали каждую секунду, отвлекая и раздражая, можете изменить период на 3-5 сек.

case WM_CREATE:
hStatus=CreateStatusWindow(WS_CHILD|WS_VISIBLE, «Готово», hWnd, ID_STATUS);
SendMessage(hStatus, SB_SETTEXT, 0, (LONG)»Готово»);
SetTimer(hWnd, 1, 1000, NULL);

8. Но такая строка состояния будет существовать отдельной жизнью от главного окна. Кроме того, мы не разделали её на части. Вставим в обработчик сообщения WM_SIZE — изменение размеров главного окна функцию MoveWindow, которая будет старательно перемещать строку состояния вслед за главным окном.

MoveWindow(hStatus, 0,0,0,0, TRUE);

Дальше мы узнаем ширину главного окна:

Занесём в массив pParts координаты секций, на которые поделим строку состояния.

Для разделения строки состояния на 3 перегородки, пошлём окну сообщение SB_SETPARTS. Массив pParts — параметры перегородок.
SendMessage(hStatus, SB_SETPARTS, 3, (LPARAM)pParts);

//Измененеи размеров окна
case WM_SIZE:
MoveWindow(hStatus, 0,0,0,0, TRUE);
cx=LOWORD(lParam);
pParts[0]=cx-130;
pParts[1]=cx-60;
pParts[2]=cx;
SendMessage(hStatus, SB_SETPARTS, 3, (LPARAM)pParts);

9. Уже почти всё готово. Только наша строка не знает, который сейчас час. Напишем обработчик сообщения
WM_TIMER.
У нас уже создан экземпляр структуры SYSTEMTIME.

Функция GetLocalTime заполняет эту структуру текущими и датой и временем на момент своего вызова.

Запишем в наши переменные значения этих полей:

day=st.wDay;
month=st.wMonth;
year=st.wYear;
hour=st.wHour;
min=st.wMinute;
sec=st.wSecond;

Запишем в буфер эти значения и запишем в секцию текст буфера:

sprintf(Buf, «%02d:%02d:%02d», day, month, year);
SendMessage(hStatus, SB_SETTEXT, 1, (LONG)Buf);

Вот, как выглядит этот обработчик целиком:

case WM_TIMER:
GetLocalTime(&st);
day=st.wDay;
month=st.wMonth;
year=st.wYear;
hour=st.wHour;
min=st.wMinute;
sec=st.wSecond;

sprintf(Buf, «%02d:%02d:%02d», day, month, year);
SendMessage(hStatus, SB_SETTEXT, 1, (LONG)Buf);

sprintf(Buf, «%02d:%02d:%02d», hour, min, sec);
SendMessage(hStatus, SB_SETTEXT, 2, (LONG)Buf);

10. Удалите обработчик сообщения WM_PAINT, который нам не потребуется.
11. Вот, как выглядит функция окна целиком:

//Функция окна
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
<

static short cx; //вспомогательная переменная
static int pParts[3]; //массив частей строки состояния
static HWND hStatus; //идентификатор окна
SYSTEMTIME st; //экземпляр структуры
int day, month, year, sec, min, hour; //переменные даты и времени
char Buf[256]; //строковый буфер

//Изменение размеров окна
case WM_SIZE:
MoveWindow(hStatus, 0,0,0,0, TRUE);
cx=LOWORD(lParam);
pParts[0]=cx-130;
pParts[1]=cx-60;
pParts[2]=cx;
SendMessage(hStatus, SB_SETPARTS, 3, (LPARAM)pParts);
break;

case WM_CREATE:
hStatus=CreateStatusWindow(WS_CHILD|WS_VISIBLE, «Готово», hWnd, ID_STATUS);
SendMessage(hStatus, SB_SETTEXT, 0, (LONG)»Готово»);
SetTimer(hWnd, 1, 1000, NULL);
break;

case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);

//Обработка элементов меню
switch (wmId)
<
case IDM_ABOUT:
DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);
break;
case IDM_EXIT:
DestroyWindow(hWnd);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
>
break;

//Сообщение таймера
case WM_TIMER:
GetLocalTime(&st);
day=st.wDay;
month=st.wMonth;
year=st.wYear;
hour=st.wHour;
min=st.wMinute;
sec=st.wSecond;

sprintf(Buf, «%02d:%02d:%02d», day, month, year);
SendMessage(hStatus, SB_SETTEXT, 1, (LONG)Buf);

sprintf(Buf, «%02d:%02d:%02d», hour, min, sec);
SendMessage(hStatus, SB_SETTEXT, 2, (LONG)Buf);

break;

case WM_DESTROY:
PostQuitMessage(0);
KillTimer(hWnd,1);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
>
return 0;
>

Элемент управления StatusBar (Windows Forms) StatusBar Control (Windows Forms)

Элемент управления ToolStripStatusLabel заменяет элемент управления StatusBar и расширяет его функциональные возможности; однако при необходимости элемент управления StatusBar можно сохранить для обратной совместимости и использования в будущем. The ToolStripStatusLabel control replaces and adds functionality to the StatusBar control; however, the StatusBar control is retained for both backward compatibility and future use, if you choose.

Элемент управления Windows Forms StatusBar используется в формах в качестве области, обычно отображаемой в нижней части окна, в которой выводятся различные сведения о состоянии приложения. The Windows Forms StatusBar control is used on forms as an area, usually displayed at the bottom of a window, in which an application can display various kinds of status information. StatusBar элементы управления могут иметь панели состояния, на которых отображаются значки, указывающие на состояние, или ряд значков в анимации, указывающих, что процесс работает. Например, Microsoft Word, указывающий, что документ сохраняется. StatusBar controls can have status-bar panels on them that display icons to indicate state, or a series of icons in an animation that indicate a process is working; for example, Microsoft Word indicating that the document is being saved.

Читайте также:  Pdf to text windows

в этом разделе In This Section

Общие сведения об элементе управления StatusBar StatusBar Control Overview
Основные понятия StatusBar элемента управления, позволяющие пользователям видеть релевантную информацию для элемента управления, имеющего фокус. Introduces the general concepts of the StatusBar control, which enables users to see relevant information for the control that has focus.

Практическое руководство. Добавление панелей в элемент управления StatusBar How to: Add Panels to a StatusBar Control
Объясняет, как добавить программируемые панели в StatusBar элемент управления. Explains how to add programmable panels to the StatusBar control.

Практическое руководство. Определение размера панелей строки состояния How to: Set the Size of Status-Bar Panels
Содержит подробные сведения о свойствах, управляющих шириной и изменением размеров панелей строк состояния во время выполнения. Gives details on the properties that control the width and resize behavior of status-bar panels at run time.

Пошаговое руководство. Обновление строки состояния во время выполнения Walkthrough: Updating Status Bar Information at Run Time
Описание программного управления данными на панелях строки состояния. Explains how to programmatically control the data within status-bar panels.

Справочник Reference

StatusBar
Справочная информация о классе и его членах. Provides reference information on the class and its members.

ToolStripStatusLabel
Заменяет и расширяет функциональные возможности StatusBar элемента управления. Replaces and adds functionality to the StatusBar control.

Элементы управления для использования в формах Windows Forms Controls to Use on Windows Forms
Полный список элементов управления Windows Forms со ссылками на информацию об их применении. Provides a complete list of Windows Forms controls, with links to information on their use.

Строки состояния (основы проектирования)

Это руководство по проектированию было создано для Windows 7 и не Обновлено для более новых версий Windows. Многие рекомендации по-прежнему применяются в принципе, но презентация и примеры не соответствуют нашим текущим руководствам по проектированию.

Строка состояния — это область в нижней части основного окна, в которой отображаются сведения о состоянии текущего окна (например, что просматривается и как), фоновые задачи (например, печать, сканирование и форматирование), а также другие контекстные сведения (такие как выбор и состояние клавиатуры).

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

Типичная строка состояния.

Рекомендации, связанные с областью уведомлений , представлены в отдельной статье.

Это правильный пользовательский интерфейс?

Чтобы определиться, ответьте на вопросы:

Имеет ли состояние значение, соответствующее, когда пользователи активно используют другие программы? Если это так, используйте значки области уведомлений.

Должен ли элемент состояния отображать уведомления? В этом случае необходимо использовать значок области уведомлений.

Является ли окно основным окном? В противном случае не используйте строку состояния. В диалоговых окнах, мастерах, панелях управления и страницах свойств не должны присутствовать строки состояния.

Является ли информация в основном состоянии? В противном случае не используйте строку состояния. Строки состояния не должны использоваться в качестве вторичной строки меню или панели инструментов.

Содержит ли информация сведения о том, как использовать выбранный элемент управления? Если это так, отобразите сведения рядом с соответствующим элементом управления, используя дополнительное пояснение или метку инструкции.

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

Является ли состояние критическим? Требуется ли немедленное действие? Если это так, отобразите информацию в форме, которая требует внимания и не может быть просто пропущена, например, в диалоговом окне или в самом основном окне.

Красная адресная строка в Windows Internet Explorer.

Читайте также:  Как написать модуль ядра linux

Предназначена ли программа в основном для новичков пользователей? Неопытные пользователи, как правило, не знают строки состояния, поэтому следует пересчитать использование строк состояния в этом случае.

Принципы проектирования

Строки состояния — это отличный способ предоставления сведений о состоянии, не прерывая работу пользователей или нарушая их последовательность. Однако строки состояния легко заметить. Итак, на самом деле многие пользователи вообще не заметят строки состояния.

Решение этой проблемы не требует вмешательства пользователя с помощью яркую значков, анимации или мигания, но для разработки этого ограничения. Выполнить это можно следующим образом:

  • Убедитесь, что сведения о состоянии полезны и актуальны. В противном случае не выводят строку состояния.
  • Не используйте строки состояния для важных сведений. Пользователям не должно быть сведений о том, что находится в строке состояния. Если пользователи должны увидеть его, не помещайте его в строку состояния.

Если вы выполняете только одно действие.

Убедитесь, что сведения в строке состояния полезны и важны, но не являются критически важными.

Варианты использования

Строки состояния имеют несколько шаблонов использования:

Текущее состояние окна
Отображение источника отображаемых данных вместе с любыми режимами представления

В этом примере в строке состояния отображается путь к документу.
Ход выполнения
Отображение хода выполнения фоновых задач с помощью индикатора хода выполнения или анимации.

В этом примере строка состояния содержит индикатор выполнения для отображения загрузки веб-страницы в окне Internet Explorer.
контекстные сведения.
Показывать контекстные сведения о том, что в данный момент выполняет пользователь.

В этом примере Microsoft Paint показывает размер выделения в пикселях.

Рекомендации

Общие сведения

  • Рассмотрите возможность указания строки состояния представления, если только некоторым пользователям потребуется информация в строке состояния. По умолчанию скрыть строку состояния, если она не нужна большинству пользователей.
  • Не используйте строку состояния для объяснения элементов строки меню. Этот шаблон справки недоступен для обнаружения.

Уровень представления

  • Отключить модальное состояние, которое не применяется. Модальное состояние включает в себя клавиатуру и состояние документа.
  • Удалите немодальное состояние, которое не применяется.
  • Представление сведений о состоянии в следующем порядке: текущее состояние окна; двигается и контекстные сведения.

Значки

Выберите легко узнаваемые макеты значков состояния. Предпочитать значки с уникальными контурами вокруг квадратных или прямоугольных значков в форме.

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

Правильно:

Неправильно:

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

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

Объединения Состояние
Предупреждение
Ошибка
Отключено или отключено
Заблокировано/вне сети

Слишком частое изменение состояния. Значки строки состояния не должны выглядеть как шум, нестабильная или требующая внимания. Глаз учитывает изменения в поле зрения «периферийное», поэтому изменения состояния должны быть незаметными.

Для значков, которые содержат важные сведения о состоянии, предпочтительно использовать метки на месте.

Значки строки состояния без метки должны содержать подсказки.

Дополнительные сведения см. в разделе значки.

Взаимодействие

  • Сделайте область строки состояния интерактивной, чтобы разрешить пользователям прямой доступ к связанным командам и параметрам.
    • Используйте элемент управления, который выглядит и ведет себя как кнопка меню или разворачивающаяся кнопка. Эти области строки состояния должны иметь стрелку раскрывающегося списка, чтобы показать, что они могут быть выбраны.
    • Выведите меню на щелчок левой кнопкой мыши, а не на мышь.
    • Не поддерживают щелчки правой кнопкой мыши или двойным щелчком. Пользователи не предполагают такое взаимодействие в строке состояния, поэтому они, скорее всего, не будут пытаться.
  • Отображение всплывающих подсказок при наведении указателя мыши.

Текст

  • Как правило, используйте краткие метки. Вырежьте любой текст, который может быть исключен.
  • Предпочитать фрагменты предложений без закрывающих знаков препинания. Используйте полные предложения (с завершающими знаками препинания) только в том случае, если фрагменты предложений значительно короче.
  • Для необязательных меток хода выполнения укажите действие, выполняемое с меткой, которая начинается с глагола (деепричастие Form) и заканчивается многоточием. Например: «копирование. «. Эта метка может измениться динамически, если операция имеет несколько шагов или обрабатывает несколько объектов.
  • Не используйте цвет, полужирный шрифт или курсив, чтобы подчеркнуть текст строки состояния.
  • Рекомендации по выражениям ToolTip см. в разделе подсказки и инфотипс.

Документация

См. строки состояния в виде строк состояния, а не строки состояния или другие вариации. Пример: «номер текущей страницы отображается в строке состояния».

Оцените статью