#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);
Строка состояния: как заместить подсказки своим текстом?
Спасибо!
Цитата:
Originally posted by Doomych
В строке состояния, в левой ее части, как известно, выводится либо подсказка, либо - строка по умолчанию. Как заместить строку по умолчанию своим текстом? То есть, когда курсор наведен, скажем, на иконку, то выводится подсказка, а в остальное время - моя информация.
Спасибо!
В строке состояния, в левой ее части, как известно, выводится либо подсказка, либо - строка по умолчанию. Как заместить строку по умолчанию своим текстом? То есть, когда курсор наведен, скажем, на иконку, то выводится подсказка, а в остальное время - моя информация.
Спасибо!
Используйте класс CStatusBar - примерно следующим образом:
Код:
Подробнее обо всем этом см. в MSDN
Нет, это-то все понятно. Но этим способом можно вставить свою панель перед или после имеющейся панели с подсказками. Мне же нужно получить доступ к самой панели с подсказками.
Цитата:
Originally posted by Doomych
Нет, это-то все понятно. Но этим способом можно вставить свою панель перед или после имеющейся панели с подсказками. Мне же нужно получить доступ к самой панели с подсказками.
Нет, это-то все понятно. Но этим способом можно вставить свою панель перед или после имеющейся панели с подсказками. Мне же нужно получить доступ к самой панели с подсказками.
Тогда, видимо, нужно перехватывать сообщения от мыши и вставлять обращение к панели в свой обработчик.