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

网页设计构建的基本流程网站建设优化服务特色

网页设计构建的基本流程,网站建设优化服务特色,联想电脑网站建设策划书,如何为网站做seo体检原文转自#xff1a;http://www.cnblogs.com/Alberl/p/3344886.html 一、WindowImplBase的bug在第8个教程【2013 duilib入门简明教程 -- 完整的自绘标题栏(8)】中#xff0c;可以发现窗口最大化之后有两个问题#xff0c;1、最大化按钮的样式还是没变#xff0c;正确的样式…原文转自http://www.cnblogs.com/Alberl/p/3344886.html     一、WindowImplBase的bug 在第8个教程【2013 duilib入门简明教程 -- 完整的自绘标题栏(8)】中可以发现窗口最大化之后有两个问题 1、最大化按钮的样式还是没变正确的样式应该是这样的 2、再次点击最大化按钮不能还原到正常大小。 这个是WindowImplBase的bug已经提交给官方有一段时间了但是貌似没有被合并到SVN上去所以这里说明一下 我们需要在WindowImplBase的OnSysCommand函数里在if( ::IsZoomed(*this) ! bZoomed )里面加上下面这段代码 if( ::IsZoomed(*this) ! bZoomed ){CControlUI* pbtnMax static_castCControlUI*(m_PaintManager.FindControl(_T(maxbtn))); // 最大化按钮 CControlUI* pbtnRestore static_castCControlUI*(m_PaintManager.FindControl(_T(restorebtn))); // 还原按钮 // 切换最大化按钮和还原按钮的状态 if (pbtnMax pbtnRestore) { pbtnMax-SetVisible(TRUE bZoomed); // 此处用表达式是为了避免编译器BOOL转换的警告 pbtnRestore-SetVisible(FALSE bZoomed); } }   二、CDuiString的bug (重温了一下 Effective C发现这就是条款24所指出的问题看来读书百遍不如写代码一遍啊) 在Notify处理消息时会有很多if语句我通常喜欢把常量放在双等号前面变量放在后面比如 if( _T(click)   msg.sType ) { } 但是却发现并没有进到这个if里调试发现将常量调到前面时并没有进入到CDuiString重载的 函数里面所以这里必须将常量放到后面。 if( msg.sType _T(click) ) { } 这个bug的原因是因为将常量放在前面时并没有调用CDuiString重载的 函数而是调用了CDuiString重载的 ()函数然后用系统自带的函数做比较而系统自己的函数只是比较两个指针的首地址是否相等。_T(click) 的首地址指向的是一块临时变量而msg.sType 是返回了CDuiString里面那个字符串的指针很显然这两个指针地址是不相等的所以我们只能把它放在前面或者直接调用_tcscmp if( ! _tcscmp( _T(click), msg.sType) ) { } 当然如果要解决这个bug就要重载多个操作符 由于CDuiString是将函数作为成员函数重载的所以只有CDuiString对象在操作符左边时才会调用这个重载函数如果想要CDuiString对象在右边时也能调用重载的函数那么必须将重载操作符放到外部。这里我们可以看一下MFC的CString是怎么重载的 CString 重载了5个操作符都是友元函数定义在#includecstringt.h里面。 再看下STL的std::string std::string重载了3个操作符都是全局函数定义在#includestring里面。 不过需要提醒的是我稍微看了下CDuiString的代码有很多漏洞比如在清零字符串时只是调用了 m_szBuffer[0] \0; 并不是调用memset那么就会有以下问题我们随意现在用下面两种方式给CDuiString 附值然后监视字符串数组的内容可以发现虽然显示是正确的但是在零值后面的值全部是乱码 这样的话虽然_tcslen、_tcscmp等函数能用但是还有很多函数都会出问题的。 所以这个CDuiString能不用则不用如果嫌MFC生成的exe体积大可以用WTL的CString如果WTL也不想用那就只好用STL的string了。 当然为了保证代码的兼容性一些简单的处理还是用CDuiString比较好比如 msg.sType。 而逻辑处理等复杂的场景最好用久经考验的代码。  虽然微软的CString很强大而用STL的string时可能不方便但是我现在越来越喜欢STL的string啦当然我是定义了一个string_t加上一个名字空间以防和一些开源库冲突 一些著名的开源库喜欢如下定义 #ifdef _UNICODEtypedef std::basic_stringwchar_t, std::char_traitswchar_t, std::allocatorwchar_t string_t; #else typedef std::basic_stringchar, std::char_traitschar, std::allocatorchar string_t; #endif      不过我喜欢更简短的定义 #ifdef _UNICODEtypedef std::wstring string_t; #elsetypedef std::string string_t; #endif      下面是我常用的Unicode定义 #include string #include sstream namespace duilib { #ifdef _UNICODE typedef wchar_t char_t; typedef std::wstring string_t; typedef std::wstringstream stringstream_t; #else typedef char char_t; typedef std::string string_t; typedef std::stringstream stringstream_t; #endif } 转载于:https://www.cnblogs.com/happykoukou/p/7397456.html
http://wiki.neutronadmin.com/news/355654/

相关文章:

  • 如何查询网站域名备案怎么制作图片文档
  • 网站建设类有哪些职位三亚网站建设美工
  • 哪些网站使用wordpress做网站服务器需要系统
  • 本墨陈黑做网站有版权wordpress主题评论制作
  • 建站平台wordpress默认摘要
  • 网站seo方法网站建设接单
  • 3合1网站建设哪家好哪个公司网站做的最好
  • 关于网站建设的介绍电商平台怎么做
  • 网站做三个月收录100设计网站公司价格
  • 企业手机端网站模板下载海南网站建设报价方案
  • 做爰网站视屏建设企业网站的意义
  • 紫搜做网站wordpress 4.5 漏洞
  • wix做的网站能扒下来网站开发需求报告
  • 网站设计 职业阿里巴巴运营技巧和方法
  • 自己做网站 需要服务器吗百度怎么做广告推广
  • 公司网站建设包括哪些东西网站制作软件图标
  • 中英文的网站怎么建设wordpress号码
  • 建站模板网站wordpress软件
  • 网站开发要什么软件有哪些彩票网站怎么建设
  • 做网站协议书游戏推广代理平台
  • 网站样版风格排版h5制作软件下载
  • 太原网站建设详细策划资讯类网站怎么做
  • 宁波企业网站开发公司成都软件开发网站建设
  • 东莞网站建设营销平台的淘客招商网站选品库建设
  • 网站后台上传内容前台首页不显示国家信用信息公示系统广东
  • 行政单位网站建设立项依据互联网创业平台有哪些
  • 建购物网站 教程哈尔滨优惠的网站建设
  • 国外网站seo东莞自助建站平台
  • 商城网站做推广方案傻瓜式网站制作
  • 公司网站在哪里做网站建设 福步