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; }
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; }