wxWindow* win = GetWindowChild1(id);
if ( !win )
{
- HWND hWnd = ::GetDlgItem((HWND) GetHWND(), id);
-
- if (hWnd)
+ HWND hwnd = ::GetDlgItem(GetHwnd(), id);
+ if ( hwnd )
{
- wxWindow* child = CreateWindowFromHWND(this, (WXHWND) hWnd);
- if (child)
- {
- child->AddChild(this);
- return child;
- }
+ win = CreateWindowFromHWND(this, (WXHWND) hwnd);
}
}
- return NULL;
+ return win;
}
// ---------------------------------------------------------------------------
wxWindow* wxWindow::CreateWindowFromHWND(wxWindow* parent, WXHWND hWnd)
{
+ wxCHECK_MSG( parent, NULL, wxT("must have valid parent for a control") );
+
wxString str(wxGetWindowClass(hWnd));
str.UpperCase();
if (win)
{
parent->AddChild(win);
- win->SetEventHandler(win);
- win->SetHWND(hWnd);
- win->SetId(id);
win->SubclassWin(hWnd);
win->AdoptAttributesFromHWND();
win->SetupColours();
}
// Make sure the window style (etc.) reflects the HWND style (roughly)
-void wxWindow::AdoptAttributesFromHWND(void)
+void wxWindow::AdoptAttributesFromHWND()
{
- HWND hWnd = (HWND) GetHWND();
- long style = GetWindowLong((HWND) hWnd, GWL_STYLE);
+ SetId(wxGetWindowId(m_hWnd));
+
+ long style = GetWindowLong(GetHwnd(), GWL_STYLE);
if (style & WS_VSCROLL)
m_windowStyle |= wxVSCROLL;