X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/04cd30dea218e6a604521d55e3057b5ca9d3e9d2..56f69d54faea99a58828c2077c42fccc1303e490:/src/msw/treectrl.cpp diff --git a/src/msw/treectrl.cpp b/src/msw/treectrl.cpp index 438e0129a8..5dcb0867c0 100644 --- a/src/msw/treectrl.cpp +++ b/src/msw/treectrl.cpp @@ -59,7 +59,7 @@ #include "wx/msw/gnuwin32/extra.h" #endif -#if defined(__WIN95__) && !((defined(__GNUWIN32_OLD__) || defined(__TWIN32__)) && !defined(__CYGWIN10__)) +#if defined(__WIN95__) && !(defined(__GNUWIN32_OLD__) && !defined(__CYGWIN10__)) #include #endif @@ -601,14 +601,15 @@ bool wxTreeCtrl::Create(wxWindow *parent, { Init(); + if ( (style & wxBORDER_MASK) == wxBORDER_DEFAULT ) + style |= wxBORDER_SUNKEN; + if ( !CreateControl(parent, id, pos, size, style, validator, name) ) return false; - DWORD wstyle = WS_VISIBLE | WS_CHILD | WS_TABSTOP | - TVS_SHOWSELALWAYS; - - if ( m_windowStyle & wxCLIP_SIBLINGS ) - wstyle |= WS_CLIPSIBLINGS; + DWORD exStyle = 0; + DWORD wstyle = MSWGetStyle(m_windowStyle, & exStyle); + wstyle |= WS_TABSTOP | TVS_SHOWSELALWAYS; if ((m_windowStyle & wxTR_NO_LINES) == 0) wstyle |= TVS_HASLINES; @@ -1920,6 +1921,13 @@ bool wxTreeCtrl::GetBoundingRect(const wxTreeItemId& item, bool textOnly) const { RECT rc; + + // Virtual root items have no bounding rectangle + if ( IS_VIRTUAL_ROOT(item) ) + { + return false; + } + if ( TreeView_GetItemRect(GetHwnd(), HITEM(item), &rc, textOnly) ) { @@ -2397,7 +2405,10 @@ bool wxTreeCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result) // similar to the ones from a "real" WM_KEYDOWN so that // CreateKeyEvent() works correctly WXLPARAM lParam = - (::GetKeyState(VK_MENU) & 0x100 ? KF_ALTDOWN : 0) << 16; +// (::GetKeyState(VK_MENU) & 0x100 ? KF_ALTDOWN : 0) << 16; + // Returns different negative values on WinME and WinNT, + // so simply test for negative value. + (::GetKeyState(VK_MENU) < 0 ? KF_ALTDOWN : 0) << 16; WXWPARAM wParam = info->wVKey;