[c++,Win32API, Visual] dzielenie paska statusu na czesci

0

witam.

probuje uporac sie z kontrolka o nazwie status-bar.

int StatusParts = 5;
long StatusPartsWidth1[] = {80,160,240,320, -1};

hwndStatus = CreateStatusWindow( WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | CCS_BOTTOM , " status: nie zalogowany", hwnd, 990 );

SendMessage(hwndStatus, SB_SETPARTS, StatusParts, StatusPartsWidth1[0] ) ;

powinienem otrzymac kontrolke podzielona na 5 czesci.
przy uruchomieniu projektu wywala sie od razu i dostaje komunikat:

Wyst?pi? problem z aplikacj? pusty.exe i zostanie ona zamkni?ta. Przepraszamy za k?opoty.

kiedy nie wysylam komunikatu SendMessage mam po prostu niepodzielony pasek statusu. zawsze podobala mi sie ta kontrolka w Wordzie i niedawno doczytalem sie gdzies, ze wystarczy wyslac do niej komunikat, zeby ja podzielic a potem dodac teksty nie za pomoca SetWindowText tylko rowniez SendMessage z komunikatem SB_SETTEXT.

z tego co wiem to lParam z SendMessage chyba jest typu long a w opisie komunikatu dzielacego kontrolki pisze, ze lParam powienien byc (LPINT) czyli dlugi wsk. do int.
Kiedy tap probuje skonstruowac ta funkcje to przy kompilacji dostaje, ze kompilator nie potrafi przekonwertowac wskaznika do int na long. podaje zatem pierwsza wartosc z tabeli i jakos dziala ale jak pisalem program konczy sie zanim zacznie.
Normalnie zrobilbym to tak:
SendMessage(hwndStatus, SB_SETPARTS, StatusParts, &StatusPartsWidth1) ;
ale dostaje komunikat: cannot convert parameter 4 from 'long (*)[5]' to 'long'

Kto poradzi jak to powinienem zrobic?
Pozdrawiam
Mariusz

0

a nie tak :>

int StatusParts = 5;
int StatusPartsWidth1[] = {80,160,240,320, -1};

SendMessage(hwndStatus, SB_SETPARTS, StatusParts, (LPARAM)StatusPartsWidth1 ) ;
0

dzieki. zapomnailem, ze przeciez moge zutowac. czasem sie rabne w najprostszej rzeczy.

dzieki anyway Panie
Marcinie::cu

1 użytkowników online, w tym zalogowanych: 0, gości: 1