10 sumos

尚未进行身份认证

喜欢思考热爱创新学过VB/C/C/MFC/Java/C/WTL学习为乐追求卓越

等级
TA的排名 5w+

RxAndroid dispose实现原理

示例如下:finalDisposabledisposable=Observable.create(newObservableOnSubscribe<String>(){publicvoidsubscribe(@NonNullObservableEmitter<String>e){for(int...

2019-05-29 15:31:24

RxAndroid,一段简单的代码

先看如下一段代码:publicclassRxAndroidTest{privatestaticfinalStringTAG="RxAndroidTest";publicstaticvoidtest(){finalint[]array={1,3,5,7,9};finalDisposabl...

2019-04-22 11:04:43

Activity在onDestroy后,Activity对象的WeakReference并不为空

问题描述:使用普通内部类或匿名类开启线程执行耗时任务,若任务没有结束而Activity销毁,那么,因为内部类或匿名类对外部类Activity持有强引用,会导致Activity对象一直无法释放,从而无法回收,导致内存泄露。于是,改成外部类或内部静态类后,对Activity不产生强引用了,那么,线程任务结束时,如何回调给Activity呢?保存Activity的WeakReference,...

2019-03-08 10:30:06

win32拖拽编程

准备 封装win32API。我们使用到的API有, ImageList_Create、ImageList_Destroy、 ImageList_Add、ImageList_AddMasked、ImageList_Remove、 ImageList_BeginDrag、ImageList_DragEnter、ImageList_EndDrag、ImageList_DragLeave

2016-07-14 17:19:25

c++11 algorithm 常用的容器算法

c++的vector、list、set、map及其成员函数已经足够我们大多数应用了,但是,c++11增加的algorithm配合container可谓所向披靡。vectorvec={1,2,3,4,5,6},out;std::copy_if:将容器中符合要求的元素复制到另一个容器std::copy_if(vec.begin(),

2016-06-06 12:06:43

std::shared_ptr的巧妙应用

std::shared_ptr一次创建,多处共享,通过引用计数控制生命周期。问题:假设有一项任务Task,其分为N个小模块,每个小模块都是并发执行。现在要求,任务开始,每个小模块并发执行,在全部小模块执行完后,将所有小模块结果进行下一步处理,任务结束。方案一:任务开始,先创建一个成员变量std::setn_span;(这里Span代表一个小模块,异步执行模块的功能);

2016-06-06 11:34:20

MFC之半透明控件

半透明控件的实现原理:创建一个临时DC,发消息给父控件告知其绘制其内容于临时DC上,然后将自己相对于父控件的那块区域的绘制COPY到自己的PaintDC上,此后再做其他绘制。代码思路如下:Child:{CPaintDCdc;CMemDCmdc;//创建临时DCCBitmapbitmap;CDCcdc;::SendMessage(hParent,WM

2015-07-09 13:59:39

C++模板的魅力和魔力

本文要解决的问题很好描述,但要想取个对应的标题还真不容易。任务描述:假设我有一个逻辑线程,这个线程专门用来处理各种类成员函数的调用。要求:类类型不限,类成员函数参数类型可以任意。首先为这些成员函数定义一个基类classTask{public:virtualvoidRun()=0;};其次,抽象出各类的成员函数参数类型,下面以一个参数为例templ

2013-06-05 10:28:15

Magic C++ (函数指针)(xml配置控件样式)

C++issomagic!!!问题起源:   我在业余时间编写基于WTL的控件重绘,为了灵活设置控件的各种样式,我选择了使用xml来配置控件的样式(比如文字颜色,字体,背景颜色)。其中build.xml用来设置控件类型、位置、文字、样式,skin.xml来设置颜色、字体、图片。   首先定义一个类UIData,提供接口LoadCtrl(从build.xml读取位置信

2013-04-23 16:03:16

note:全局配置visual studio 2010 头文件目录

假如我有3个工程,他们都需要引入头文件夹wtl81(包含wtl的.h文件),以前的做法是对每个工程都在属性设置中引入wtl81,但是随着工程越来越多(可能是自己平时写的小测试程序),每次都这么做,实在麻烦,有什么好的解决方法呢?     以下几种方法都比较简单1,直接把wtl81文件夹拷贝到vs安装目录下面 C:\ProgramFiles\MicrosoftVisualS

2013-04-17 15:44:52

我是那么的喜欢你 try catch

以前在学Java的时候,最讨厌的就是那些try和catch了,不仅把代码拉长了,而且异常处理很不好。  现在在做C++方面的事情,虽然大家一致认为,C++中坚决禁止try和catch,但是我却越发的喜欢用他了。  为什么讨厌又为什么喜欢呢?  讨厌的是,我不喜欢sdk给我定义好的Exception,喜欢的是我自己throw的exception。  下面用一个C++的

2013-04-12 10:59:15

protobuf入门详解(在windows下配置protobuf)

在网络之间传递可读性强的数据,有xml,还有json。相比之下,json比xml要好。但是他们有个弊端,传递的数据是可读的,也就是没有加密,使用网络抓包工具立马可以抓到whatyousendandwhatyoureceive,那么怎么才能传递加密了的json串呢? 简单的方法,在传递json之前,先对json加密,收到数据后再解密。加密和解密算法自然是自己设计最好了。 后来

2013-04-07 17:14:29

WTL/MFC多字节和Unicode字符转换

我们在最开始学习MFC的时候,毫无疑问会遇到这样的问题。VC6的设置:多字节。vs的默认设置:Unicode,在属性中可以改成多字节。多字节编码:char,string,CStringA。Unicode编码:wchar_t,wstring,CStringW。注意:如果项目是Unicode,那么CString就被定义为CStringW,否则就是CStringA。附:LPS

2013-03-14 14:30:30

分析:由 XToolTip类 联想到 WTL (MFC) 消息循环

这篇文章从一个问题出发:我想自己写一个XToolTip类。 XToolTip类的思路:1,创建一个WS_POPUP样式的窗口;2,加入需要显示tooltip的控件(XToolTip类采用map来保存这些控件句柄和提示字符串);3,在PreTranslateMessage中调用XToolTip的RelayMsg函数;4,在RelayMsg函数中过滤消息(WM_MOUSEMOV

2013-01-28 14:31:04

Json学习札记

Json和Xml相比有个最大的优势,基于字符串。xml必须与文件相关,而json只是字符串(当然也提供了与文件相关的操作)。Let'ssayitfrommycode:#include//解压后找到目录vs71,用vs打开然后生成解决方案,本程序直接在jsontest.cpp中改写的#include#include#includeusingnames

2013-01-23 15:15:22

MFC控件完全重绘从CWnd开始

导读:我并不推荐采用自绘的方式去完成一些控件(比如CStatic,CButton,RadioBox,CheckBox等)的美化,而是推荐大家从CWnd入手,把这些基本控件完全重新绘制一遍(当然,有些做的很好的控件还是需要继承来自绘的,比如CListCtrl)。为什么这么做?因为MFC对这些控件的某些操作是隐蔽的,某些限制是我们无法接受的(比如CTabCtrl的头部高度和每个Item的宽度)。我

2013-01-08 14:43:31

一个简单的在本地传输文件的网络程序

经常在CSDN贴吧看见很多关于网络之间传输的例子(比如传输截屏文件),所以很想写一个作为学习。此程序设定很简单,就是在本地传输。当然,要扩展到网络也很简单,改个ip就ok了。基本思路:双方遵循一个包头格式,根据包头确定之后的操作。服务器代码:#include#include#definePORT6666structPacketHeader{

2012-11-16 13:48:02

初学C++正则表达式(regex)

由效果产生学习的兴趣,即使失败,但至少不会中途作废。正则表达式,语法看起来很多啊!地址参考:http://www.yesky.com/imagesnew/software/vbscript/html/jsgrpRegExpSyntax.htm本文做一个简单的学习介绍:(环境:Windows7+VisualStudio2010)#include //header1,匹配

2012-11-15 16:21:57

tinyxml的学习和简单使用

虽然看起来简单,但开始学习和使用却是不那么简单。首先从官网下载源文件:4个cpp和2个h,然后加入到工程即可。在你的代码中加上2句:#include"tinyxml.h"#include"tinystr.h"(刚开始只加了tinyxml.h,以为这个头文件包含了tinystr.h,结果编译一大堆问题,其实tinystr.h不一定会包含,它是通过一个宏定义控制的)(这

2012-11-07 16:39:23

屏幕截图程序(WTL)

如果需要思路,请访问:http://hi.baidu.com/sumos/item/9aef19f4f02e0f5ac9f337bb如果需要程序,请访问:http://download.csdn.net/detail/zhoujielunzhimi/4724327如果需要源码,请看:#pragmaonce#includeclassMainForm;CBitma

2012-11-02 15:06:19

查看更多

勋章 我的勋章
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。