Add wxWindow::CreateUsingMSWClass() helper function

This method allows to use the Windows class to use for the window being
created instead of always using "wxWindow" or "wxWindowNR".

This can be useful to make it possible to handle some windows specially from
outside the application, e.g. use specific class names for accessibility
purposes as will be done by the next commit.
This commit is contained in:
Vadim Zeitlin
2016-12-18 22:36:17 +01:00
parent 842c441f01
commit d4e595adb0
2 changed files with 25 additions and 8 deletions

View File

@@ -48,6 +48,22 @@ public:
virtual ~wxWindowMSW();
bool Create(wxWindow *parent,
wxWindowID id,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
const wxString& name = wxPanelNameStr)
{
return CreateUsingMSWClass(GetMSWClassName(),
parent, id, pos, size, style, name);
}
// Non-portable, MSW-specific Create() variant allowing to create the
// window with a custom Windows class name. This can be useful to assign a
// custom Windows class, that can be recognized from the outside of the
// application, for windows of specific type.
bool CreateUsingMSWClass(const wxChar* classname,
wxWindow *parent,
wxWindowID id,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,

View File

@@ -481,7 +481,8 @@ const wxChar *wxWindowMSW::GetMSWClassName() const
}
// real construction (Init() must have been called before!)
bool wxWindowMSW::Create(wxWindow *parent,
bool wxWindowMSW::CreateUsingMSWClass(const wxChar* classname,
wxWindow *parent,
wxWindowID id,
const wxPoint& pos,
const wxSize& size,
@@ -512,7 +513,7 @@ bool wxWindowMSW::Create(wxWindow *parent,
msflags |= WS_VISIBLE;
}
if ( !MSWCreate(GetMSWClassName(), NULL, pos, size, msflags, exstyle) )
if ( !MSWCreate(classname, NULL, pos, size, msflags, exstyle) )
return false;
InheritAttributes();