Ignore:
Timestamp:
Dec 18, 1999, 5:31:52 PM (26 years ago)
Author:
cbratschi
Message:

MDI fixes, ChildWindowFromPointEx

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/user32/win32wnd.cpp

    r2084 r2114  
    1 /* $Id: win32wnd.cpp,v 1.3 1999-12-16 00:11:48 sandervl Exp $ */
     1/* $Id: win32wnd.cpp,v 1.4 1999-12-18 16:31:52 cbratschi Exp $ */
    22/*
    33 * Win32 Window Class for OS/2
     
    3333#include "syscolor.h"
    3434#include "win32wndhandle.h"
     35#include "mdi.h"
     36#include "win32wmdiclient.h"
    3537
    3638
     
    5052LRESULT Win32Window::DefFrameProcA(HWND hwndMDIClient, UINT Msg, WPARAM wParam, LPARAM lParam)
    5153{
    52  Win32Window *window = NULL;
     54 Win32MDIClientWindow *window = NULL;
     55 Win32MDIChildWindow *child;
    5356
    5457    if(hwndMDIClient)
    55         window = (Win32Window *)GetWindowFromHandle(hwndMDIClient);
     58        window = (Win32MDIClientWindow*)GetWindowFromHandle(hwndMDIClient);
    5659
    57     if(window)
     60    if (window && window->isMDIClient())
    5861    {
    5962        switch(Msg)
     
    6467
    6568#if 0
     69        case WM_SETTEXT:
     70            //CB: infinite loop
     71            //window->updateFrameText(MDI_REPAINTFRAME,(LPCSTR)lParam);
     72            return 0;
     73#endif
     74
    6675        case WM_COMMAND:
    67             ci = (MDICLIENTINFO*)wndPtr->wExtra;
    68 
    6976            /* check for possible syscommands for maximized MDI child */
    70             WIN_ReleaseWndPtr(wndPtr);
    71 
    72             if( ci && (
    73                 wParam <  ci->idFirstChild ||
    74                 wParam >= ci->idFirstChild + ci->nActiveChildren
    75             )){
     77            if(wParam <  window->getFirstChildId() || wParam >= window->getFirstChildId()+window->getNrOfChildren())
     78            {
    7679                if( (wParam - 0xF000) & 0xF00F ) break;
    7780                switch( wParam )
     
    8588                case SC_CLOSE:
    8689                case SC_RESTORE:
    87                     if( ci->hwndChildMaximized )
    88                     return SendMessage16( ci->hwndChildMaximized, WM_SYSCOMMAND,
    89                            wParam, lParam);
     90                    child = window->getMaximizedChild();
     91                    if (child)
     92                    return ::SendMessageA(child->getWindowHandle(),WM_SYSCOMMAND,wParam,lParam);
    9093                }
    9194            }
    9295            else
    9396            {
    94                 wndPtr = WIN_FindWndPtr(hwndMDIClient);
    95                 childHwnd = MDI_GetChildByID(wndPtr,wParam );
    96                 WIN_ReleaseWndPtr(wndPtr);
    97 
    98                 if( childHwnd )
    99                     SendMessage16(hwndMDIClient, WM_MDIACTIVATE,
    100                                       (WPARAM16)childHwnd , 0L);
     97                child = window->getChildByID(wParam);
     98                if (child)
     99                    ::SendMessageA(window->getWindowHandle(),WM_MDIACTIVATE,(WPARAM)child->getWindowHandle(),0L);
    101100            }
    102101            break;
    103 #endif
    104102
    105103        case WM_SETFOCUS:
Note: See TracChangeset for help on using the changeset viewer.