Codejock Xtreme ToolkitPro v15.0 在HOOK控件后导致滚动条不正常bug及修复
来源:互联网 发布:加大音量的软件 编辑:程序博客网 时间:2024/05/16 05:33
界面库的原理先搞清楚就好办了,大部分都是采用HOOK WinProc来实现界面美化,所有先从HOOK开始入手,很多问题慢慢就清晰了...
这个深坑有几个月了,一直没闲功夫去认真阅读它的整个代码框架,今天翻阅了一个小时,总算有点头绪了,只需要一行代码即可解决~~
当然,它在WIN8.1/10上面还有无数的坑,原版CODEJOCK记得有不下10处需要改动,其他的慢慢调吧 .....
实际上SetHook内部也过滤掉了很多类名,反正在这里也过滤掉你自己的窗口类名就行了
CXTPSkinObject* CXTPSkinManager::SetHook(HWND hWnd, LPCTSTR lpszClassName, LPCREATESTRUCT lpcs, BOOL bAuto){if (_tcscmp(lpszClassName, _T("tooltips_class32")) == 0)return NULL;if (_tcsicmp(lpszClassName, _T("IME")) == 0)return NULL;if(_tcsicmp(lpszClassName,_T("CicMarshalWndClass"))== 0)return NULL;if(_tcsicmp(lpszClassName,_T("MSCTFIME UI"))== 0)return NULL;CXTPSkinObject* pSink = NULL;if (pSink == NULL && _tcsstr(lpszClassName, _T("WindowsForms")) != NULL){CString strClass(lpszClassName);int nClassNameStart = strClass.Find(_T('.'));int nClassNameEnd = strClass.Find(_T('.'), nClassNameStart + 1);if (nClassNameStart != -1 && nClassNameEnd != -1 && nClassNameEnd != nClassNameStart){strClass = strClass.Mid(nClassNameStart + 1, nClassNameEnd - nClassNameStart - 1);CXTPSkinObjectClassInfo* pInfo = m_pClassMap->Lookup(strClass);if (pInfo){pSink = pInfo->CreateObject(lpszClassName, lpcs);}}if (pSink == NULL){pSink = new CXTPSkinObjectApplicationFrame();}pSink->m_bWindowsForms = TRUE;}if (pSink == NULL){CXTPSkinObjectClassInfo* pInfo = m_pClassMap->Lookup(lpszClassName);if (pInfo){pSink = pInfo->CreateObject(lpszClassName, lpcs);}else{if (_tcsstr(lpszClassName, _T("Internet Explorer")) != NULL)return NULL;if (_tcsstr(lpszClassName, _T("OleMainThread")) != NULL)return NULL;pSink = new CXTPSkinObjectApplicationFrame();}}if (pSink && _tcscmp(lpszClassName, _T("#32770")) == 0){((CXTPSkinObjectFrame*)pSink)->m_dwDialogTexture = IsTabPage(lpcs) ? ETDT_ENABLETAB : ETDT_ENABLE;}if (pSink){pSink->m_pManager = this;{CXTPLockGuard lock(m_csObjects);m_mapObjects[hWnd] = pSink;}pSink->AttachHook(hWnd, lpcs, bAuto);}return pSink;}
1 0
- Codejock Xtreme ToolkitPro v15.0 在HOOK控件后导致滚动条不正常bug及修复
- Codejock Xtreme ToolkitPro MFC 使用
- [转载]Codejock Xtreme ToolkitPro MFC 使用
- Xtreme ToolkitPro V15.0.1 界面库编译时说明
- 本博增加 Xtreme ToolkitPro v15.2.1 分类说明
- 0.VC(ui)-hook-树形控件滚动条刷新bug
- QTP测试CodeJock Xtreme Suite控件
- Codejock Xtreme ToolkitPro 静态链接XTP库以及皮肤库的使用
- Codejock Xtreme ToolkitPro 静态链接XTP库以及皮肤库的使用
- Codejock Xtreme ToolkitPro MFC 15.1.3.0908(Full Source) 汉化与添加搜索框
- VC6.0下Xtreme ToolkitPro安装
- 关于安装Xtreme ToolkitPro v15.0.1出现error C2660: 'VarCmp' :错误的问题解决
- Xtreme ToolkitPro v15.3.1中SkinBuilder.exe皮肤编辑工具的使用
- Codejock.Xtreme.Toolkit.Pro.v15.3.1 for MFC 15种皮肤切换
- Xtreme ToolkitPro™ 2007
- Xtreme ToolkitPro v12.0.2
- XTreme ToolkitPro简介
- Xtreme ToolkitPro taskpanel创建
- window 安装 pymysql
- JavaSE实战——多线程
- java.lang.OutOfMemoryError的解决方法 tomcat
- java内部类总结
- mod_jk 日志 JkRequestLogFormat参数说明
- Codejock Xtreme ToolkitPro v15.0 在HOOK控件后导致滚动条不正常bug及修复
- uva-1151-Buy or Build-二进制枚举子集,并查集,最小生成树,kruskal
- 数字字符串格式化(Java/C++)
- 数字签名学习(1)
- Alfred
- 如何跳转至一个storyboard中指定的viewcontroller,也可以跳转至一个指定的navigationController
- 游戏系统开发笔记(九)——构建战斗系统
- 第十一周项目2-1:职员有薪水了
- 关于划屏幕