Using Status Windows

The following example creates a status window that has a sizing grip and divides the window into four equal parts based on the width of the parent window's client area.

// DoCreateStatusWindow - creates a status window and divides it into

// the specified number of parts.

// Returns the handle to the status window.

// hwndParent - parent window for the status window

// nStatusID - child window identifier

// hinst - handle to the application instance

// nParts - number of parts into which to divide the status window

HWND DoCreateStatusWindow(HWND hwndParent, int nStatusID,

HINSTANCE hinst, int nParts)

{

HWND hwndStatus;

RECT rcClient;

HLOCAL hloc;

LPINT lpParts;

int i, nWidth;

// Ensure that the common control DLL is loaded.

InitCommonControls();

// Create the status window.

hwndStatus = CreateWindowEx(

0, // no extended styles

STATUSCLASSNAME, // name of status window class

(LPCTSTR) NULL, // no text when first created

SBARS_SIZEGRIP | // includes a sizing grip

WS_CHILD, // creates a child window

0, 0, 0, 0, // ignores size and position

hwndParent, // handle to parent window

(HMENU) nStatusID, // child window identifier

hinst, // handle to application instance

NULL); // no window creation data

// Get the coordinates of the parent window's client area.

GetClientRect(hwndParent, &rcClient);

// Allocate an array for holding the right edge coordinates.

hloc = LocalAlloc(LHND, sizeof(int) * nParts);

lpParts = LocalLock(hloc);

// Calculate the right edge coordinate for each part, and

// copy the coordinates to the array.

nWidth = rcClient.right / nParts;

for (i = 0; i < nParts; i++) {

lpParts[i] = nWidth;

nWidth += nWidth;

}

// Tell the status window to create the window parts.

SendMessage(hwndStatus, SB_SETPARTS, (WPARAM) nParts,

(LPARAM) lpParts);

// Free the array, and return.

LocalUnlock(hloc);

LocalFree(hloc);

return hwndStatus;

}

Software for developers
Delphi Components
.Net Components
Software for Android Developers
More information resources
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
Databases for Amazon shops developers
Amazon Categories Database
Browse Nodes Database