/* * EditSubClass - sub-class an edit control in a dialog */ void EditSubClass( HWND hwnd, int id, history_data *h ) { HWND edit; hData = h; currHist = h->curr; edit = GetDlgItem( hwnd, id ); oldEditProc = (WNDPROC)GET_WNDPROC( edit ); editProc = MakeProcInstance( (FARPROC)EditSubClassProc, InstanceHandle ); SET_WNDPROC( edit, (LONG_PTR)editProc ); SendMessage( edit, EM_LIMITTEXT, MAX_INPUT_LINE, 0L ); } /* EditSubClass */
/* * CreateContainerWindow */ window_id CreateContainerWindow( RECT *size ) { HWND container; CLIENTCREATESTRUCT client; client.hWindowMenu = (HMENU)NULLHANDLE; client.idFirstChild = 3000; // some arbitrary number that doesn't conflict container = CreateWindow( className, "Container", WS_CHILD | WS_CLIPCHILDREN | WS_HSCROLL | WS_VSCROLL | WS_VISIBLE, size->left, size->top, size->right - size->left, size->bottom - size->top, root_window_id, (HMENU)NULLHANDLE, InstanceHandle, (LPVOID)&client ); SET_WNDINFO( container, 0 ); oldContainerProc = (WNDPROC)GET_WNDPROC( container ); SET_WNDPROC( container, (LONG_PTR)MakeWndProcInstance( ContainerWindowProc, InstanceHandle ) ); SetScrollRange( container, SB_VERT, 1, 1, FALSE ); SetScrollRange( container, SB_HORZ, 1, 1, FALSE ); return( container ); } /* CreateContainerWindow */