当前位置: 首页 > news >正文

建站公司怎么赚钱的wordpress前端页面不显示

建站公司怎么赚钱的,wordpress前端页面不显示,网站没排名怎么办,邵阳网站seo需求描述 在开发CuteSqlite的时候#xff0c; 有一个功能需要实现#xff0c;鼠标移到WTL::CStatic上后#xff0c;发送消息通知CToolTipCtrl弹出。 遇到问题 WTL::CStatic控件没有相应 WM_MOUSEMOVE 消息#xff0c;需要返回一个HTCLIENT消息来让窗口处理函数执行 WM_MO…需求描述 在开发CuteSqlite的时候 有一个功能需要实现鼠标移到WTL::CStatic上后发送消息通知CToolTipCtrl弹出。 遇到问题 WTL::CStatic控件没有相应 WM_MOUSEMOVE 消息需要返回一个HTCLIENT消息来让窗口处理函数执行 WM_MOUSEMOVE消息因为控件实例的鼠标消息比如WM_MOUSEMOVE不会发送到父窗口上只会发送到它本身所以我们不能在父窗口的消息映射里添加处理CStatic的WM_MOUSEMOVE消息处理函数。针对这种情况我们可以通过钩子的方式hook掉CStatic的原窗口处理内部函数。 如果是开发win 32位的应用程序这个时候需要用到两个32位的勾子函数GetWindowLong和SetWindowLong。 如果是开发win 64位的应用程序这个时候需要用到两个64位的勾子函数GetWindowLongPtr和SetWindowLongPtr。 处理64位的上述两个函数GetWindowLongPtr和SetWindowLongPtr兼容32位的应用程序微软的MSDN解释如下 GetWindowLongPtr检索有关指定窗口的信息。 该函数还会将指定偏移量的值检索到额外的窗口内存中。 注意 若要编写与 32 位和 64 位版本的 Windows 兼容的代码请使用  GetWindowLongPtr。 为 32 位 Windows 编译时  GetWindowLongPtr 定义为对  GetWindowLong 函数的调用。 编译错误 **特别注意的是**如果在64位开发环境中还使用32位的函数GetWindowLong和SetWindowLong会发生编译错误类似错误如下 1QParamElem.cpp 1f:\project\wtlproject\cutesqlite\cutesqlite\ui\common\param\qparamelem.cpp(288): error C2065: “GWL_WNDPROC”: 未声明的标识符 1f:\project\wtlproject\cutesqlite\cutesqlite\ui\common\param\qparamelem.cpp(291): error C2065: “GWL_USERDATA”: 未声明的标识符 1f:\project\wtlproject\cutesqlite\cutesqlite\ui\common\param\qparamelem.cpp(292): error C2065: “GWL_WNDPROC”: 未声明的标识符 问题原因 原因是在64位开发环境中头文件WinUser.h对宏GWL_WNDPROCGWL_USERDATA等的声明改成了GWLP_WNDPROCGWLP_USERDATA 解决方案 而解决的方法64位开发环境使用函数GetWindowLongPtr和SetWindowLongPtr替换32位的函数GetWindowLong和SetWindowLong。 实例解释 针对上述的需求鼠标移到WTL::CStatic上后发送消息通知CToolTipCtrl弹出。下面我们通过代码来解释这两个函数的使用。 头文件QParamElem.h声明的变量和钩子函数 class QParamElem: public CWindowImplQParamElem { ...CStatic desLabel; // 需要显示tooltip的文本框CToolTipCtrl tooltipCtrl; // tooltip提示控件std::pairWNDPROC, HWND procWndPair; // 钩子使用的变量保存原来CStatic消息处理函数的地址和控件句柄HWNDWNDPROC m_pWndProc; // 原来CStatic消息处理函数的地址 ...// 初始化和绑定tooltipCtrl提示控件void createAndBindToolTip(); ...// CStatic消息替换函数static LRESULT funcLabelProcWnd(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam); ... }QParamElem.cpp实现的函数如下 // 初始化和绑定tooltipCtrl void QParamElem::createAndBindToolTip() {if (tooltipCtrl.IsWindow() || !desLabel.IsWindow() ) {return;}tooltipCtrl.Create(desLabel.m_hWnd, NULL, NULL, WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP);tooltipCtrl.AddTool(desLabel.m_hWnd, data.description.c_str());tooltipCtrl.Activate(TRUE); // 拦截鼠标消息.m_pWndProc (WNDPROC)::GetWindowLongPtr(desLabel.m_hWnd, GWLP_WNDPROC); // 获取原窗口处理函数procWndPair.first m_pWndProc; // 这个是用户定义的类型1,不重要procWndPair.second tooltipCtrl.m_hWnd; // 这个是用户定义的类型2,不重要::SetWindowLongPtr(desLabel.m_hWnd, GWLP_USERDATA, (LONG_PTR)procWndPair); // 设置窗口的自定义数据,用于存储原处理函数和ToolTip句柄::SetWindowLongPtr(desLabel.m_hWnd, GWLP_WNDPROC, (LONG_PTR)QParamElem::funcLabelProcWnd); // 自定义一个窗口处理函数对鼠标消息预先过滤. }// 钩子替换的消息处理函数 LRESULT QParamElem::funcLabelProcWnd(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam) {auto pp (std::pairWNDPROC, HWND *)::GetWindowLongPtr(hWnd, GWLP_USERDATA);WNDPROC funcOld pp-first;auto tooltip_hwnd pp-second;if(nMsg WM_NCHITTEST){// 1.static 控件没有相应 WM_MOUSEMOVE 消息,需要返回一个HTCLIENT来让窗口处理函数执行 WM_MOUSEMOVE 消息.// 2.就是把 WM_NCHITTEST 消息转换为 WM_MOUSEMOVE消息.return HTCLIENT;} else if(nMsg WM_MOUSEMOVE){// WM_MOUSEMOVE// WM_NCHITTEST// 1.发送一格WM_MOUSEMOVE消息给tooltip控件处理.这样tooltip才会在指定位置显示.MSG msg { hWnd, nMsg, wParam, lParam };CToolTipCtrl tip;tip.Attach(tooltip_hwnd);tip.RelayEvent(msg);}return CallWindowProc(funcOld, hWnd, nMsg, wParam, lParam); }OK, 这样子就可以实现了对 CStatic消息的转换从而实现tooltip的显示。 完整的实例源码 GitHub:   QParamElem.h    QParamElem.cpp Gitee:      QParamElem.h    QParamElem.cpp
http://www.pierceye.com/news/209354/

相关文章:

  • 立方米网站建设做淘宝客网站用什么程序好
  • 怎样做网站挣钱建筑资料软件
  • 涿州建设局网站苏州市高新区建设局网站
  • 个人soho要怎么做企业网站成都包装设计公司
  • 网站开发 chrome浏览器崩溃ruhe用dw做网站
  • 全屏网站 图片优化个人网站cms系统
  • 做我女朋友程序网站邵东做网站
  • 建设网站如何挂到网上wordpress首页添加幻灯
  • 汕头正规网站建设模板总部城乡建设网站 资料员
  • vs 2017c 怎么建设网站网站建设的数字化和互联网化
  • 南昌网站设计公司海南营销网站建设
  • 购物网站素材个人搭建网站教程
  • 青岛网站建设哪里好模板建站服务公司
  • 青色网站欣赏wordpress中文购物
  • 建站培训全国住房与城乡建设部网站
  • 唐山网站建设方案策划沧州网站建设联系电话
  • 网页制作和网站开发实验报告logo设计品牌
  • 摄影后期教程网站百度指数1000搜索量有多少
  • wp网站建设模板什么是网站的原型
  • 园林绿化网站建设上海著名室内设计公司
  • 大连市住房与城乡建设部网站公司要制作网站
  • 郑州做网站七彩科技企业网站做的漂亮
  • 如何用ps做网站页面设计企业网站备案价格
  • 禅城网站建设价格青岛企业自助建站系统
  • 平阳住房和城乡建设厅网站建设银行龙卡信用卡在境外网站支付
  • 关于网站开发的论文软件开发合同模板免费
  • 军队房地产与建设工程法律实务在哪个网站可以购买深圳市盐田区住房建设局网站
  • 网站虚拟主机空间喊别人做的网站不肯给代码
  • 导游是什么商丘seo公司
  • 25个网站网页怎么截图