Print Page | Close Window

ChldFrm and SkineFramework

Printed From: Codejock Forums
Category: Codejock Products
Forum Name: Skin Framework
Forum Description: Topics Related to Codejock Skin Framework
URL: http://forum.codejock.com/forum_posts.asp?TID=4416
Printed Date: 03 May 2024 at 7:28am
Software Version: Web Wiz Forums 12.04 - http://www.webwizforums.com


Topic: ChldFrm and SkineFramework
Posted By: gwoin
Subject: ChldFrm and SkineFramework
Date Posted: 15 June 2006 at 11:52am
Hi,
 
I encounter a problem since  the version 10.2 ot the framework.
 
My application is using a custom theme (based on the SkinSDISample sample).
 
It is a MDI application, so with CChildFrame.
The problem is that the title bar of the child window does not appear with the version 10.2.
 
Plus, the child frame has its own skin (in order to put some images and customs informations in the title bar).
 
My code is simple:
 
//customize the theme of the child window
class CMatrisChildFrame : public CMDIChildWnd
{
    [...]
    afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
    afx_msg void OnNcPaint();
    afx_msg void OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS FAR* lpncsp);
    afx_msg void OnSize(UINT nType, int cx, int cy);
    afx_msg void OnWindowPosChanging(WINDOWPOS* lpwndpos);
    afx_msg void OnCaptureChanged(CWnd *pWnd);
    [...]
}
and then:

class CChildFrame : public CMatrisChildFrame

All ran well, and I would like to keep this skin for the child, but with the version 10.2 of the framework I dont see the title bar of the child window anymore.
 
Is there any informations to put in the .INI file of my skin, or in the MainFrm.cpp or any where else to see my titlebar again (and the complete skin of the child window too) ?
 
Thank you.



Replies:
Posted By: gwoin
Date Posted: 10 July 2006 at 10:04am

I up a new post because the problem is still there.

with XTPro 10.1 and earlier, I got this:

 
And now, since XTPro 10.2, I get this:
 
The title bar of my child window is gone, whereas my source code has not been changed.
Any idea on how I could see the title bar again?
 
Thank you.
 
PS: Oleg, your avatar is the hedgehog from Youri Norstein?


Posted By: Oleg
Date Posted: 10 July 2006 at 12:29pm
Hello, difficult to say without information of code you use. May be you can attach some sample to show what you do?
 
 
ps.  Yeap, it is hedgehog  in mist :)


-------------
Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS


Posted By: gwoin
Date Posted: 11 July 2006 at 4:08am

My MDI application has an only one childframe.

I have customized the caption bar of this child in order to add some user informations and menus.
 
My code is very simple :
The CChildFrame class is inherited from CXTPFrameWndBase<CMDIChildWnd> and overload some functions:
 
class CChildFrame : public CXTPFrameWndBase<CMDIChildWnd>
{
    DECLARE_DYNCREATE(CChildFrame)
public:
    CChildFrame();
 
public:
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CChildFrame)
    virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
//}}AFX_VIRTUAL
 
    [...]
    //my variables and functions
    [...]
 
// Implementation
public:
    virtual ~CChildFrame();
 
    int GetSysButtonsh*tTest(CPoint point);
    afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
    afx_msg void OnNcPaint();
    afx_msg void OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS FAR* lpncsp);
    afx_msg LRESULT OnNcHitTest(CPoint point);
    afx_msg void OnNcLButtonDown(UINT nHitTest, CPoint point);
    afx_msg void OnNcLButtonUp(UINT nHitTest, CPoint point);
    afx_msg void OnSize(UINT nType, int cx, int cy);
    afx_msg void OnWindowPosChanging(WINDOWPOS* lpwndpos);
    afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
    afx_msg void OnCaptureChanged(CWnd *pWnd);
};
 
Then, in the ChildFrm.cpp:
 
BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs)
{
    cs.style = WS_CHILDWINDOW;
    cs.cy = WINDOW_HEIGHT; //set a fixed window size
    cs.cx = WINDOW_WIDTH;
    cs.y = 0;
    cs.x = 0;
 
    return (CXTPFrameWndBase<CMDIChildWnd>::PreCreateWindow(cs) );
}
[...]
 
The child frame has the size that I set, so the function below is traversed by the application, but the others functions like OnNcPaint, OnNcCalcSize, OnNcHitTest, ... are never traversed anymore.
 
In the myApp.cpp file, i just declar the doc Template as this:

CMultiDocTemplate* pDocTemplate;

pDocTemplate = new CMultiDocTemplate(
    IDR_GUI_WHTYPE,
    RUNTIME_CLASS(CMatrisDoc),
    RUNTIME_CLASS(CChildFrame), // custom MDI child frame
    RUNTIME_CLASS(CMatrisView));
 
 
Any idea why the On NCpaint, ...,  are not traversed anymore since XTP 10.2 ?
 
Thank you.


Posted By: Oleg
Date Posted: 11 July 2006 at 10:02am
Hello,
 
Yes, SkinFramework draw Non Client area and don't allow base methods to be called. As Workaround remove WS_CAPTION style.
 
For next release we added ability to create custom CXTPSkinManager, catch events, create custom skin classes etc.


-------------
Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS


Posted By: gwoin
Date Posted: 11 July 2006 at 10:20am
Originally posted by oleg oleg wrote:

Hello,
 
Yes, SkinFramework draw Non Client area and don't allow base methods to be called. As Workaround remove WS_CAPTION style.
 
For next release we added ability to create custom CXTPSkinManager, catch events, create custom skin classes etc.
 
Thank you Oleg.
 
Too bad for the Childframe...
Could you tell when the next version should be released?
I hope that the transfer between my actual code and the next release will be easy :)
 


Posted By: Oleg
Date Posted: 11 July 2006 at 12:52pm
Hello,
I guess in beginning of August....
 
You can play now with source code. in
 
CXTPSkinObjectFrame::IsDefWindowProcAvail
 
comment "if (HasCaption()) return FALSE;"
and non client messages will be send.


-------------
Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS


Posted By: gwoin
Date Posted: 11 July 2006 at 1:05pm

Hi Oleg,

Thank you.
 
I will try by commenting this line.
 
[Edit: ] It works, thank you Oleg Smile 



Print Page | Close Window

Forum Software by Web Wiz Forums® version 12.04 - http://www.webwizforums.com
Copyright ©2001-2021 Web Wiz Ltd. - https://www.webwiz.net