duilib CDateTimeUI 在Xp下的bug修复
Posted Redrain
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了duilib CDateTimeUI 在Xp下的bug修复相关的知识,希望对你有一定的参考价值。
转自:http://my.oschina.net/u/343244/blog/370131
CDateTimeUI 的bug修复。修改CDateTimeWnd的HandleMessage方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
if
(WM_NOTIFY==uMsg)
::SetFocus(m_hWnd);
if
( uMsg == WM_KILLFOCUS
/**/
)
::OutputDebugString(
"WM_KILLFOCUS\\n"
);
if
( uMsg == WM_KILLFOCUS
/**/
)
//这里肯可能需要优化,因为FindWindow找出来的窗口不一定是本进程的窗口
HWND
hh=::FindWindow(_T(
"SysMonthCal32"
),NULL);
if
(::IsWindow(hh))
MCHITTESTINFO pp;
memset
(&pp,0,
sizeof
(pp));
//pp.uHit=MCHT_CALENDAR;
GetCursorPos(&pp.pt);
::ScreenToClient(hh,&pp.pt);
pp.cbSize=
sizeof
(pp);
MonthCal_HitTest(hh,&pp);
//下一个月
if
(pp.uHit==MCHT_TITLEBTNNEXT)
return
1;
//上一个月
if
(pp.uHit==MCHT_TITLEBTNPREV)
return
1;
else
POINT pt;
::GetCursorPos(&pt);
RECT rt;
::GetWindowRect(m_hWnd,&rt);
if
(
依赖库是啥 各个平台下的 比如LINUX xp
|