MDI problems

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #34516
    Pontus
    Participant

    Hi!

    I've attached five demos that tries to highlight the problems I'm having with AlphaSkins and MDI forms. Instructions inside the demos.

    My main concern is that I can't disable DrawNonClientArea. I'd like to use Windows 7 Aero boarders with all the nice AlphaSkin controls inside the windows. But when I use MDI forms the Aero boarders goes classic when I maximize the MDI children.

    Also note that if DrawNonClientArea is disabled the MainMenu is not skinned. See Demo4 and Demo5.

    The five demos are all source code. I'm using 7.41 Beta (unzipped and unmodded), RAD Studio XE on Windows 7 x64.

    Best regards,

    /Pontus

    #45545
    Pontus
    Participant

    Hi!

    Two problems can be solved by removing this code.

    Current code in 7.41 Beta (sSkinProvider.pas);

    WM_NCPAINT : begin

    if (SkinData.CtrlSkinState and ACS_LOCKED = ACS_LOCKED) or (SkinData.CtrlSkinState and ACS_MNUPDATING = ACS_MNUPDATING) or

    (IsMenuVisible(Self) and (Form.Menu.WindowHandle = 0)) or (FormState and FS_ANIMCLOSING = FS_ANIMCLOSING) then Exit;

    Change to this;

    WM_NCPAINT : begin

    // if (SkinData.CtrlSkinState and ACS_LOCKED = ACS_LOCKED) or (SkinData.CtrlSkinState and ACS_MNUPDATING = ACS_MNUPDATING) or

    // (IsMenuVisible(Self) and (Form.Menu.WindowHandle = 0)) or (FormState and FS_ANIMCLOSING = FS_ANIMCLOSING) then Exit;

    This will solve the problem with Windows 7 Aero boarders switching to classic when DrawNonClientArea is disabled. This happens when a MDI child window is maximized.

    It will also solve the problem with the MainMenu not beeing redrawn correctly when maximizing and restoring MDI child windows. This problem occures when DrawNonClientArea is enabled.

    Best regards,

    /Pontus

    #45558
    Support
    Keymaster

    Hello and thank you for examples, I'll research them soon.

    #45569
    Pontus
    Participant

    Thanks!

    The reasons I like to use Windows 7 Aero, instead of skinned boarders, are speed and a more coherent look and feel with other Windows 7 applications. But I realy love using AlphaSkins to enhance the GUI.

    Best regards,

    /Pontus

Viewing 4 posts - 1 through 4 (of 4 total)
  • You must be logged in to reply to this topic.