An application can include a static control in a non-dialog window by calling WinCreateWindow with the window class WC_STATIC. The flStyle parameter to WinCreateWindow defines the appearance of the control.
The following code fragment creates a static text control whose size and position are based on the size of the client window and the metrics for the current font:
#define ID_TITLE 5
#define INCL_GPILCIDS
HWND hwnd,hwndStatic,hwndClient;
HPS hps;
RECTL rcl;
FONTMETRICS fm;
ULONG ulTitleLen;
CHAR szTitle[] = "Static Text Controls";
/* Obtain the size of the client window */
WinQueryWindowRect(hwnd, &rcl);
/* Obtain a presentation space handle and */
/* the metrics for the current font */
hps = WinBeginPaint (hwnd, (HPS) NULL, (PRECTL) NULL);
GpiQueryFontMetrics(hps, sizeof(FONTMETRICS), &fm);
/* Obtain the size of the static control text string */
ulTitleLen = (ULONG) strlen(szTitle);
/* Create the static control. Base the size and */
/* position on the size of the client window and */
/* the metrics of the current font. */
hwndStatic = WinCreateWindow(
hwndClient, /* Parent window */
WC_STATIC, /* Window class */
szTitle, /* Window text */
WS_VISIBLE | /* Make it visible */
SS_TEXT | /* Static-text control */
DT_VCENTER | /* Center text vert. */
DT_CENTER, /* Center text horiz. */
((rcl.xRight / 2) -
(ulTitleLen / 2) * fm.lEmInc), /* x position */
rcl.yTop - fm.lEmHeight * 2, /* y position */
fm.lEmInc * ulTitleLen, /* Width */
fm.lEmHeight * 2, /* Height */
hwndClient, /* Owner window */
HWND_TOP, /* Top of z-order */
ID_TITLE, /* Window identifier */
NULL, /* Control data */
NULL); /* Presentation parameters*/
WinEndPaint(hps);
If your application creates a static control with the SS_ICON or SS_BITMAP style, make sure that the resource identifier specified in the pszName parameter corresponds to an icon or a bit map resource in the resource-definition file. If there is no resource, the application cannot create the static control.