Jump to content

DdfSetFont

From EDM2
Revision as of 03:16, 14 May 2025 by Martini (talk | contribs) (Created page with "{{DISPLAYTITLE:DdfSetFont}} This function specifies a text font in the DDF buffer. ==Syntax== DdfSetFont(hddf, pszFaceName, ulWidth, ulHeight) ==Parameters== ;hddf (HDDF) - input :Handle to DDF returned by DdfInitialize. ;pszFaceName (PCSZ) - input :Pointer to font name. This parameter can be specified in two ways: :* An ASCIIZ string specifying the font name. :* NULL or "default" to specify the default font. ;ulWidth (ULONG) - input :Font width in point...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This function specifies a text font in the DDF buffer.

Syntax

DdfSetFont(hddf, pszFaceName, ulWidth, ulHeight)

Parameters

hddf (HDDF) - input
Handle to DDF returned by DdfInitialize.
pszFaceName (PCSZ) - input
Pointer to font name. This parameter can be specified in two ways:
  • An ASCIIZ string specifying the font name.
  • NULL or "default" to specify the default font.
ulWidth (ULONG) - input
Font width in points. A point is approximately 1/72 of an inch.
ulHeight (ULONG) - input
Font height in points.
rc (BOOL) - returns
Success indicator.

Returns

rc (BOOL) - returns
Success indicator.
TRUE Successful completion
FALSE Error occurred

Remarks

No specific remarks were provided for this function.

Possible errors include:

  • HMERR_DDF_MEMORY (0x3001) Not enough memory is available.

Example Code

Declaration:

#define INCL_DDF
#include <os2.h>

HDDF     hddf;         /*  Handle to DDF returned by DdfInitialize. */
PCSZ     pszFaceName;  /*  Pointer to font name. */
ULONG    ulWidth;      /*  Font width in points. */
ULONG    ulHeight;     /*  Font height in points. */
BOOL     rc;           /*  Success indicator. */

rc = DdfSetFont(hddf, pszFaceName, ulWidth,
       ulHeight);

After initializing a DDF buffer with DdfInitialize, this example uses `DdfPara` to start a new paragraph, `DdfSetFont` and `DdfSetFontStyle` to display text in a large, bold Courier font, `DdfSetColor` to change the text color, and `DdfText` to place text in the buffer.

For a more detailed example and discussion of initializing DDF, see the DdfInitialize sample.

#define INCL_WINWINDOWMGR       /* General window management    */
#define INCL_WINMESSAGEMGR      /* Message management           */
#define INCL_DDF                /* Dynamic Data Facility        */
#include <os2.h>
#include <pmhelp.h>

MRESULT WindowProc(HWND hwnd, ULONG ulMsg, MPARAM mp1, MPARAM mp2)
{
    HWND   hwndParent;
    HWND   hwndInstance;    /* help instance window                 */
    HDDF   hDdf;            /* DDF handle                           */

    switch (ulMsg)
    {
    case HM_QUERY_DDF_DATA:
        /* get the help instance */
        hwndParent = WinQueryWindow(hwnd, QW_PARENT);
        hwndParent = WinQueryWindow(hwndParent, QW_PARENT);
        hwndInstance = (HWND)WinSendMsg(hwndParent, HM_QUERY,
                                        MPFROMSHORT(HMQW_INSTANCE), NULL);

        /* Allocate 1K Buffer (default) */
        hDdf = DdfInitialize(
                    hwndInstance,  /* Handle of help instance */
                    0L,            /* Default buffer size     */
                    0L             /* Default increment       */
                    );

        if (hDdf == NULLHANDLE)       /* Check return code */
        {
            return (MRESULT)FALSE;
        }

        /* create paragraph in DDF buffer */
        if (!DdfPara(hDdf))
        {
            return (MRESULT)FALSE;
        }

        /* Change to large (100 x 100 dimensions) Courier font */
        if (!DdfSetFont(hDdf, "Courier", 100L, 100L))
        {
            return (MRESULT)FALSE;
        }

        /* make the font BOLDFACE */
        if (!DdfSetFontStyle(hDdf, FM_SEL_BOLD))
        {
            return (MRESULT)FALSE;
        }

        /* make the text display as BLUE on a PALE GRAY background */
        if (!DdfSetColor(hDdf, CLR_PALEGRAY, CLR_BLUE))
        {
            return (MRESULT)FALSE;
        }

        /* Write data into the buffer */
        if (!DdfText(hDdf, "Sample Text"))
        {
            return (MRESULT)FALSE;
        }

        return (MRESULT)hDdf;
    }
    return WinDefWindowProc(hwnd, ulMsg, mp1, mp2);
}

Related Functions