Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Строка состояния: как заместить подсказки своим текстом?

321
16 февраля 2004 года
Doomych
124 / / 20.01.2000
В строке состояния, в левой ее части, как известно, выводится либо подсказка, либо - строка по умолчанию. Как заместить строку по умолчанию своим текстом? То есть, когда курсор наведен, скажем, на иконку, то выводится подсказка, а в остальное время - моя информация.

Спасибо!
461
17 февраля 2004 года
gerard
102 / / 20.12.1999
Цитата:
Originally posted by Doomych
В строке состояния, в левой ее части, как известно, выводится либо подсказка, либо - строка по умолчанию. Как заместить строку по умолчанию своим текстом? То есть, когда курсор наведен, скажем, на иконку, то выводится подсказка, а в остальное время - моя информация.

Спасибо!



Используйте класс CStatusBar - примерно следующим образом:

Код:
#include "afxext.h"               // Здесь описывается CStatusBar
...
class CMainWnd : public CWnd      // Главное окно программы
{
CStatusBar MyStatusBar;           // класс панели состояния
...
public:
...
 int OnCreate(LPCREATESTRUCT lpCreateStruct); // эта функция вызывается при создании окна
...
BEGIN_MESSAGE_MAP (CMainWnd, CWnd)
...
 ON_WM_CREATE()                 // событие создания окна
...
END_MESSAGE_MAP ()
...
static UINT IDs[]= {ID_STRING };  // идентификатор строки в ресурсах
// строку используем как шаблон, поэтому ее нужно заполнить каким-нибудь символом, например, "_"
// можно взять несколько строк, тогда в строке состояния будет несколько панелей
...
int CMainWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
 if (CWnd::OnCreate(lpCreateStruct) == -1) return -1;
...
MyStatusBar.Create(this);          // создать строку состояния
MyStatusBar.SetIndicators(IDs,1); // установить панель в строку состояния (второй параметр - число панелей)
...
return 0;
}
MyStatusBar.SetPaneText(0, "..."); // Выводим сообщение в первую панель
MyStatusBar.SetPaneText(1, "..."); // во вторую (если есть)
MyStatusBar.SetPaneText(2, "..."); // в третью и т.д.
// Изменить свойства панели можно так:
MyStatusBar.SetPaneInfo(0, id, style, width);
// второй параметр - новый идентификатор ресурса
// третий параметр - стиль
// четвертый - ширина в пикселях
// Можно поменять только стиль:
MyStatusBar.SetPaneStyle(0, style);


Подробнее обо всем этом см. в MSDN
321
17 февраля 2004 года
Doomych
124 / / 20.01.2000
Нет, это-то все понятно. Но этим способом можно вставить свою панель перед или после имеющейся панели с подсказками. Мне же нужно получить доступ к самой панели с подсказками.
461
18 февраля 2004 года
gerard
102 / / 20.12.1999
Цитата:
Originally posted by Doomych
Нет, это-то все понятно. Но этим способом можно вставить свою панель перед или после имеющейся панели с подсказками. Мне же нужно получить доступ к самой панели с подсказками.



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

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог