|
@@ -305,7 +305,18 @@ namespace DuiLib
|
|
|
m_bDragMode(false),
|
|
m_bDragMode(false),
|
|
|
m_hDragBitmap(NULL),
|
|
m_hDragBitmap(NULL),
|
|
|
m_pDPI(NULL),
|
|
m_pDPI(NULL),
|
|
|
- m_iHoverTime(400UL)
|
|
|
|
|
|
|
+ m_iHoverTime(400UL),
|
|
|
|
|
+ // [FIX] m_bNoActivate 原本未初始化:Debug 堆新块填充 0xCD -> 读到 true;
|
|
|
|
|
+ // Release 下则是随机垃圾值,属偶发性隐患。
|
|
|
|
|
+ // 后果:本文件中 3 处 "if (!m_bNoActivate) ::SetFocus(m_hWndPaint);"
|
|
|
|
|
+ // (WM_LBUTTONDOWN 1738 / CPaintManagerUI::SetFocus 2442 / SetFocusNeeded 2475) 全部被跳过,
|
|
|
|
|
+ // 系统焦点无法回到主窗口 -> 原生 EDIT 子窗 CEditWnd 收不到 WM_KILLFOCUS ->
|
|
|
|
|
+ // 其唯一的销毁途径 PostMessage(WM_CLOSE) 永不触发 -> 光标常闪、点空白不丢焦点。
|
|
|
|
|
+ // XML 侧仅在显式书写 noactivate 属性时才赋值(UIDlgBuilder.cpp),故此处必须先给确定初值。
|
|
|
|
|
+ m_bNoActivate(false),
|
|
|
|
|
+ // 以下两个成员同样是漏网之鱼(全库无赋值点),一并清零以防后患。
|
|
|
|
|
+ m_bIsPainting(false),
|
|
|
|
|
+ m_pLastToolTip(NULL)
|
|
|
{
|
|
{
|
|
|
if (m_SharedResInfo.m_DefaultFontInfo.sFontName.IsEmpty())
|
|
if (m_SharedResInfo.m_DefaultFontInfo.sFontName.IsEmpty())
|
|
|
{
|
|
{
|