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 ( !(pt.x>=rt.left&&pt.x<=rt.right)|| !(pt.x>=rt.top&&pt.x<=rt.bottom) ) { ::OutputDebugString( "CLose\n" ); lRes= OnKillFocus(uMsg,wParam, lParam,bHandled); } } } } |
完整代码:
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
LRESULT CDateTimeWnd::HandleMessage( UINT uMsg, WPARAM wParam, LPARAM lParam) { LRESULT lRes = 0; BOOL bHandled = TRUE; /**xpBug***/ DWORD ProcessId; if (WM_SETFOCUS==uMsg) { ::OutputDebugString( "WM_SETFOCUS\n" ); } 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); //Isdel=true; if (::IsWindow(hh)) { MCHITTESTINFO pp; memset (&pp,0, sizeof (pp)); 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 ( !(pt.x>=rt.left&&pt.x<=rt.right)|| !(pt.x>=rt.top&&pt.x<=rt.bottom) ) { ::OutputDebugString( "CLose\n" ); lRes= OnKillFocus(uMsg,wParam, lParam,bHandled); } } } } else /**/ if (uMsg == WM_KEYUP && (wParam == VK_DELETE || wParam == VK_BACK)) { LRESULT lRes = ::DefWindowProc(m_hWnd, uMsg, wParam, lParam); m_pOwner->m_nDTUpdateFlag = DT_DELETE; m_pOwner->UpdateText(); PostMessage(WM_CLOSE); return lRes; } else if (uMsg == WM_KEYUP && wParam == VK_ESCAPE) { LRESULT lRes = ::DefWindowProc(m_hWnd, uMsg, wParam, lParam); m_pOwner->m_nDTUpdateFlag = DT_KEEP; PostMessage(WM_CLOSE); return lRes; } else bHandled = FALSE; if (!bHandled ) { return CWindowWnd::HandleMessage(uMsg, wParam, lParam); } return lRes; } |
duilib CDateTimeUI 在Xp下的bug修复的更多相关文章
- 仿酷狗音乐播放器开发日志二十五 duilib右键事件的不足的bug修复
转载请说明原出处,谢谢~~ 虽然仿酷狗的各个菜单早就写好了,但是一直没有附加到程序里.今天把菜单和播放列表控件关联时发现了问题. 和播放列表相关的菜单有三个,分别是每个音乐项目控件相关的菜单.分组的菜 ...
- 仿酷狗音乐播放器开发日志十九——CTreeNodeUI的bug修复二(附源码)
转载请说明原出处,谢谢 今天本来打算把仿酷狗播放列表的子控件拖动插入功能做一下,但是仔细使用播放列表控件时发现了几个逻辑错误,由于我的播放 列表控件是基于CTreeViewUI和CTreeNodeUI ...
- 使用Windbg在XP下Heap追踪失败的原因
1.故事背景 最近同事的代码中碰到一个bug会导致奔溃的bug,从dump上看是由于某个对象的堆内存指针被释放了,但代码仍调用了该对象指针的虚函数,从而引起内存访问违法崩溃,由于该类被大量使 ...
- .NET 程序在 Windows XP 下调用 SHA512CryptoServiceProvider 方法报 PlatformNotSupportedException 异常
转自:http://stackoverflow.com/questions/1293905/sha256cryptoserviceprovider-and-related-possible-to-us ...
- 在XP下基于VHD版XP 2003 win7制作的RAMOS心得
在XP下基于VHD版win7制作的RAMOS心得1.用DiskGenius创建1.85G的VHD固定磁盘文件,以win7prosen.vhd为例,然后进行分区格式化,格式化时启用NTFS压缩.2.为了 ...
- OJ2.0userInfo页面Modify逻辑bug修复,search功能逻辑实现
这周的主要任务:userInfo页面Modify逻辑bug修复,search功能逻辑实现. (一)Modify逻辑bug修复: 这里存在的bug就是在我们不重置password的时候依照前面的逻辑是不 ...
- 奇怪的问题,InvalidateRect最后一个参数在XP下无效
一直用的WIN2K系统,写的一个程序在本机正常,到XP系统的机器运行发现调整窗口大小时界面闪得厉害,程序比较大,而且这种闪烁还不好调试,因为单步调试没有闪烁效果,只能排除法找原因,最后以为找到原因了, ...
- cocos2d-x多分辨率和随后的自适应CCListView的bug修复
cocos2d-x多分辨率自适配及因此导致的CCListView的bug修复 cocos2d-x是一款众所周知的跨平台的游戏开发引擎.因为其跨平台的特性.多分辨率支持也自然就有其需求. 因此.在某一次 ...
- alibaba druid 在springboot start autoconfig 下的bug
alibaba druid 在springboot start autoconfig下的bug 标签(空格分隔):druid springboot start autoconfig 背景 发现.分析过 ...
随机推荐
- hadoop2.7.1安装和部署
操作系统:Red Hat Enterprise Linux Server release 6.2 (Santiago) hadoop2.7.1 三台redhat linux主机,ip分别为10.204 ...
- PayPal接洽苹果 欲承接手机支付外包
不久前,<华尔街日报>等媒体报道,苹果正计划利用iTunes内部支付功能,推出第三方手机支付服务.美国科技 新闻网站Recode1月30日引述消息人士称,移动支付领军厂商PayPal,目前 ...
- asp.net mvc 使用Ajax调用Action 返回数据【转】
使用asp.net mvc 调用Action方法很简单. 一.无参数方法. 1.首先,引入jquery-1.5.1.min.js 脚本,根据版本不同大家自行选择. <script src=& ...
- PHP中的数据类型
PHP中包含8种数据类型,其中包括4种标量:整型,浮点型,字符串,布尔值:2种复合类型:数组和对象:一种resource类型,剩下的一种是NULL类型. 整型 PHP中的整型可以是负,也可以是正,而整 ...
- Scrum立会报告+燃尽图(十月二十日总第十一次)
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2246 项目地址:https://git.coding.net/zhang ...
- App接口如何保证安全
微信开发或者高德地图,百度地图什么的api要使用,使用之前都需要注册一个账号,然后系统会给你一个key,然后调用api的时候把key传给服务器. 平常公司内部开发项目时,直接用mvc为app客户端提供 ...
- spark作用流程
原文:https://www.cnblogs.com/asura7969/p/8441471.html https://blog.csdn.net/xu__cg/article/details/700 ...
- lintcode-206-区间求和 I
206-区间求和 I 给定一个整数数组(下标由 0 到 n-1,其中 n 表示数组的规模),以及一个查询列表.每一个查询列表有两个整数 [start, end] . 对于每个查询,计算出数组中从下标 ...
- Swift-自定义类的构造函数
构造函数类似oc中的init方法默认情况下,创建一个,类会调用一个构造函数即使没写任何构造函数,编译器会默认一个构造函数如果是继承NSObject,可以对构造函数重写 class Person: NS ...
- WPF浏览器应用程序与JS的互调用(不用WebBrowser)
首先说些题外话,很久没有写博客了,空间里面的大部分文章还是11年写的.那时候刚毕业就来到这家公司,参与到一个Asp.net MVC的项目开发中,这个项目是一个全新的项目,连项目开发框架都没有,亏得领导 ...