Example #1
0
int winmain()
{
HAB   hab = NULLHANDLE;
HMQ   hmq = NULLHANDLE;
QMSG  qmsg;
HWND  hwndFrame = NULLHANDLE;
HWND  hwndClient = NULLHANDLE;
ULONG ctlData = FCF_TITLEBAR | FCF_SYSMENU | FCF_SIZEBORDER | FCF_MINMAX |
        FCF_TASKLIST | FCF_MENU | FCF_ACCELTABLE | FCF_NOBYTEALIGN | FCF_ICON;
RECTL rectl;

    do  {
        if ((hab = WinInitialize(0)) == NULLHANDLE) break;
        if ((hmq = WinCreateMsgQueue(hab,0)) == NULLHANDLE) break;
        if (!WinRegisterClass(hab, APPCLASS,
            ClientWndProc, CS_SIZEREDRAW, 4)) break;

        // Register the HanMLE and HanInputAutomata window class
        if (!RegisterHanAutomataClass(hab)) break;
        if (!RegisterHanMLEControl(hab)) break;
        if (!RegisterHanStaticTextControl(hab)) break;
        if (!RegisterHanEntryFieldControl(hab)) break;
        if (!RegisterStatbarControl(hab)) break;
        if (!RegisterToolbarControl(hab)) break;
        if ((hwndFrame = WinCreateStdWindow(
                    HWND_DESKTOP, 0,
                    &ctlData,
                    APPCLASS,
                    APPTITLE,
                    0, NULLHANDLE,
                    ID_APP,
                    &hwndClient )) == NULLHANDLE )
            {
            printf("errorcode: %x\n",WinGetLastError(hab));
            break;
            }
        //printf("Frame: %x\nClient: %x\n",hwndFrame,hwndClient);

        rectl.xLeft = 0;
        rectl.yBottom = 0;
        rectl.xRight = xSize;
        rectl.yTop = ySize;
        WinSendMsg(hwndClient,HEWM_CALCRECT,(MPARAM)&rectl,0);
        WinCalcFrameRect(hwndFrame,&rectl,FALSE);

        WinSetWindowPos(hwndFrame,NULLHANDLE,
                xLeft,yBottom,
                rectl.xRight-rectl.xLeft,rectl.yTop-rectl.yBottom,
                SWP_MOVE|SWP_SIZE|SWP_SHOW);
        WinSetFocus(HWND_DESKTOP,hwndFrame);

        houtInit(hab,maxLineSize);
        if (use_externalengfont)
            houtSetEngFont(external_engfontbuf);
        if (use_externalhanfont)
            houtSetHanFont(external_hanfontbuf);
        if (use_externalspecfont)
            houtSetSpecFont(external_specfontbuf);
        if (use_externalhanjafont)
            houtSetHanjaFont(external_hanjafontbuf);

        while (WinGetMsg(hab, &qmsg, NULLHANDLE, 0, 0))
            {
            WinDispatchMsg(hab, &qmsg);
            }

        houtClose();

        } while (FALSE);

    if (hmq != NULLHANDLE) WinDestroyMsgQueue(hmq);
    if (hab != NULLHANDLE) WinTerminate(hab);

    return 0;
}
Example #2
0
BOOL InitControlClass ()
{
    int i;
    
    for (i=0; i<LEN_CCITABLE; i++)
        ccitable[i] = NULL;

    // Register system controls here.
#ifdef _CTRL_STATIC
    if (!RegisterStaticControl ())
        return FALSE;
#endif

#ifdef _CTRL_BUTTON
    if (!RegisterButtonControl())
        return FALSE;
#endif

#ifdef _CTRL_SIMEDIT
    if (!RegisterSIMEditControl())
        return FALSE;
#endif

#ifdef _CTRL_SLEDIT
    if (!RegisterSLEditControl())
        return FALSE;
#endif

#ifdef _CTRL_PROGRESSBAR
    if (!RegisterProgressBarControl())
        return FALSE;
#endif

#ifdef _CTRL_LISTBOX
    if (!RegisterListboxControl())
        return FALSE;
#endif

#ifdef _CTRL_MLEDIT
    if (!RegisterMLEditControl())
        return FALSE;
#endif

#ifdef _CTRL_TOOLBAR
    if (!RegisterToolbarControl())
        return FALSE;
#endif

#ifdef _CTRL_NEWTOOLBAR
    if (!RegisterNewToolbarControl())
        return FALSE;
#endif

#ifdef _CTRL_MENUBUTTON
    if (!RegisterMenuButtonControl())
        return FALSE;
#endif

#ifdef _CTRL_TRACKBAR
    if (!RegisterTrackBarControl())
        return FALSE;
#endif

#ifdef _CTRL_COMBOBOX
    if (!RegisterComboBoxControl())
        return FALSE;
#endif

#ifdef _CTRL_PROPSHEET
    if (!RegisterPropSheetControl())
        return FALSE;
#endif

    return TRUE;
}