wxWidgets/samples/mfc/mfctest.h
Vadim Zeitlin 9be928d6fb Fix destruction of wxNativeContainerWindow in wxMSW.
WM_CLOSE was not processed at all for native windows wrapped by
wxNativeContainerWindow because we don't handle it ourselves at wxWindow level
but still mark it as processed in order to prevent DefWindowProc() from
destroying the window. Unfortunately this also prevented the original handler
for this message in the native window from being called.

Calling just the original handler and not the wxWidgets one is not ideal
neither but is much better as it allows to e.g. close MFC frames wrapped in
wxNativeContainerWindow whereas before this didn't work at all as WM_CLOSE was
completely ignored.

Also call the original handler for WM_DESTROY to avoid similar potential
problems with this message, even if it doesn't seem to create any with MFC.

Extend the mfc sample to show how a wxPanel can be embedded into the existing
CFrameWnd.
2015-07-09 20:49:05 +02:00

61 lines
1.4 KiB
C++

/////////////////////////////////////////////////////////////////////////////
// Name: mfctest.h
// Purpose: Sample to demonstrate mixing MFC and wxWidgets code
// Author: Julian Smart
// Copyright: (c) Julian Smart
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef __MFCTEST_H__
#define __MFCTEST_H__
/////////////////////////////////////////////////////////////////////////////
// CMainWindow:
// See hello.cpp for the code to the member functions and the message map.
//
class CMainWindow : public CFrameWnd
{
public:
CMainWindow();
//{{AFX_MSG( CMainWindow )
afx_msg void OnPaint();
afx_msg void OnAbout();
afx_msg void OnTest();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
private:
class wxNativeContainerWindow* m_containerWX;
};
// A dummy CWnd pointing to a wxWindow's HWND
class CDummyWindow: public CWnd
{
public:
CDummyWindow(HWND hWnd);
~CDummyWindow(void);
};
/////////////////////////////////////////////////////////////////////////////
// CTheApp:
//
class CTheApp : public CWinApp
{
public:
BOOL InitInstance();
int ExitInstance();
// Override this to provide wxWidgets message loop
// compatibility
BOOL PreTranslateMessage(MSG *msg);
BOOL OnIdle(LONG lCount);
};
/////////////////////////////////////////////////////////////////////////////
#endif // __MFCTEST_H__