ProgressBar в ListView
необходимо в компонент listview в строку вставить progressbar, как сие сделать?
Не откажусь от теории но и примерчик хотелось бы видеть)
Если кому интересно от код функции вот такой:
{
HWND PB;
int pb_Left = 100;
int pb_Top = 100;
int pb_Width = 100;
int pb_Height = 30;
PB = CreateWindowEx(0, PROGRESS_CLASS, NULL, WS_VISIBLE | WS_CHILD, pb_Left, pb_Top, pb_Width, pb_Height, hl_InfoLoad, NULL, hInst, NULL);
LONG ColWidth = SendMessage(hl_InfoLoad,LVM_GETCOLUMNWIDTH,0,0)+SendMessage(hl_InfoLoad,LVM_GETCOLUMNWIDTH,1,0)+SendMessage(hl_InfoLoad,LVM_GETCOLUMNWIDTH,2,0);
pb_Left = -GetScrollPos(g_hWnd, SB_HORZ) + ColWidth;
pb_Width = SendMessage(hl_InfoLoad,LVM_GETCOLUMNWIDTH,3,0);
RECT rc;
rc.left = LVIR_BOUNDS;
SendMessage(hl_InfoLoad,LVM_GETITEMRECT, indexString,(LPARAM)&rc);
pb_Top = rc.top;
pb_Height = rc.bottom - rc.top;
resizeProgressBar(PB, pb_Left, pb_Top, pb_Width, pb_Height);
return PB;
}
inline void resizeProgressBar(HWND hProgress, int iLeft, int iTop, int iWidth, int iHeight)
{
MoveWindow(hProgress, iLeft, iTop, iWidth, iHeight, TRUE);
}
Будут предложения по модернизации готов внимательно выслушать.
Как на прогрессбаре написать количество процентов?
Также можно попытаться просто установить заголовок окну(сам не пробовал,вам предоставляется шанс всё узнать;))
Да, не спорю, но у меня не получается сделать прозрачным фон статика
в createwindow при задании текста он не показывается, в момент когда я его (прогрессбар) делаю визибле, и с помощью SetWindowText задаю текст, то все равно не показывается...
У кого еще какие предположения?
И еще вопрос... как выделить всю строку в ListView, если предлагается использовать Full... чего то там - стиль ЛистВью, то тогда пример его использования (у меня создается Item, а потом сабайтемы и они, саб айтемы, заполняются текстом, при выделении первой ящейки остальные не выделяются - какие нить вразумительные предложения могут быть?)
Стиль WS_EX_TRANSPARENT устанавливаете?
SC = CreateWindowEx(WS_EX_TRANSPARENT,"static","12%",WS_CHILD|WS_VISIBLE,pb_Left, pb_Top, pb_Width, pb_Height, hl_InfoLoad, NULL, hInst, NULL); - не помогло... может я что не так делаю
как вариант, появилась мысль нарисовать в WM_PAINT прогрессбара текст по средствам TextOut, но это же вариант через одно место... неужели в винде не предусмотрен способ написать текст на прогрессбаре?
Нарисовали на форме прогрессбар, если програмно через MoveWindow изменить размеры прогрессбара, то появляется эффект вдавленности, кто знает как от этого избавиться? (от вдавленности я имею ввиду).
http://www.codeproject.com/KB/progress/TheBestProgressBarEver.aspx
если нельзя вставлть ссьілки на другие ресурсі на єтом форуме, прошу простить меня администрацию и не пинать :)