Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2015, 11:16   #1
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 867
По умолчанию Обрезанный текст на StatusBar

Здравствуйте.
Проблема с обрезанным текстом на статусбаре.
MSDN пишет:
Цитата:
lParam

Pointer to an integer array. The number of elements is specified in wParam. Each element specifies the position, in client coordinates, of the right edge of the corresponding part. If an element is -1, the right edge of the corresponding part extends to the border of the window.
Если я правильно понял, то если последний элемент массива равен -1, то последняя панель статусбара будет растянута до правой границы окна. Но это не работает! Текст последней панели ограничивается несколькими десятками символов, хотя до правой границы окна еще далеко.
Код:
var
  arr : array [0..3] of Integer;

WM_CREATE:
begin
  sbar1 := createwindowex(WS_EX_LEFT or WS_EX_LTRREADING or WS_EX_RIGHTSCROLLBAR,
  Statusclassname,'bla-bla',
  SBARS_SIZEGRIP or SBT_TOOLTIPS or SBARS_TOOLTIPS or WS_CHILD or
  WS_OVERLAPPED or WS_VISIBLE,
  x,y,w,h, wnd, 0,hinstance,nil);
        arr[0] := 110;
        arr[1] := 300;
        arr[2] := 380;
        arr[3] := -1;
        sendmessage(sbar1,sb_setparts,4,lparam(@arr));
  sendmessage(sbar1,sb_simple,wparam(false),0);
end;
Потом такой функцией меняю текст панелей:
Код:
function sbsettext(sbar: hwnd; PanelID: integer; newtext: string): integer;
begin
  result := sendmessage(sbar,sb_settext,panelid,lparam(pchar(newtext)));
end;
Пробовал делать так:
Код:
WM_RESIZE:
begin
        arr[0] := 110;
        arr[1] := 300;
        arr[2] := 380;
        arr[3] := -1;
        sendmessage(sbar1,sb_setparts,4,lparam(@arr));
end;
но это тоже не помогает. Как быть?
BLACK_RAIN вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
StatusBar Andr123 Microsoft Office Excel 4 24.07.2009 17:42
StatusBar Dimarik Общие вопросы C/C++ 6 12.07.2009 00:12
Statusbar и текст blackstersl Общие вопросы Delphi 2 11.03.2009 17:10
statusbar blackstersl Общие вопросы Delphi 1 22.09.2008 21:42
StatusBar Nasya Microsoft Office Excel 3 16.07.2007 10:26