博客园 - Clingingboy
uuid:6cbd1ba2-f883-4c34-aed1-30dde64a3a3e;id=699481
2021-05-03T13:17:09Z
Clingingboy
https://www.cnblogs.com/Clingingboy/
feed.cnblogs.com
https://www.cnblogs.com/Clingingboy/p/14728221.html
冒个泡,刷刷存在感 - Clingingboy
存冒泡
2021-05-03T13:17:00Z
2021-05-03T13:17:00Z
Clingingboy
https://www.cnblogs.com/Clingingboy/
【摘要】存冒泡 <a href="https://www.cnblogs.com/Clingingboy/p/14728221.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Clingingboy/p/3746310.html
使用文件映射和信号量来进程间通信 - Clingingboy
思路: 使用文件映射来共享进程间数据 每个进程都有2个线程在循环监听数据的发送和接收 数据的发送和接收都有一个信号量来同步信息 通信的两个进程需要知道两者信号量的名字 发送数据的时候,释放发送的信号量,将数据写入文件映射,并释放要通信进程接收数据的信号量 对方进行等待接收数据的信号量,并接收数据
2014-05-22T10:57:00Z
2014-05-22T10:57:00Z
Clingingboy
https://www.cnblogs.com/Clingingboy/
【摘要】思路: 使用文件映射来共享进程间数据 每个进程都有2个线程在循环监听数据的发送和接收 数据的发送和接收都有一个信号量来同步信息 通信的两个进程需要知道两者信号量的名字 发送数据的时候,释放发送的信号量,将数据写入文件映射,并释放要通信进程接收数据的信号量 对方进行等待接收数据的信号量,并接收数据 <a href="https://www.cnblogs.com/Clingingboy/p/3746310.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Clingingboy/p/3519595.html
Xperf Basics: Recording a Trace (the easy way)(转) - Clingingboy
http://randomascii.wordpress.com/2013/04/20/xperf-basics-recording-a-trace-the-easy-way/ Some time ago I wrote a long and detailed post about how to record traces using xperf. The steps needed ...
2014-01-14T10:34:00Z
2014-01-14T10:34:00Z
Clingingboy
https://www.cnblogs.com/Clingingboy/
【摘要】http://randomascii.wordpress.com/2013/04/20/xperf-basics-recording-a-trace-the-easy-way/ Some time ago I wrote a long and detailed post about how to record traces using xperf. The steps needed ... <a href="https://www.cnblogs.com/Clingingboy/p/3519595.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Clingingboy/p/3519585.html
Xperf Basics: Recording a Trace(转) - Clingingboy
http://randomascii.wordpress.com/2011/08/18/xperf-basics-recording-a-trace/ This post is obsolete – deprecated. For information on newer/easier/better ways of recording xperf traces see Xperf Basi...
2014-01-14T10:26:00Z
2014-01-14T10:26:00Z
Clingingboy
https://www.cnblogs.com/Clingingboy/
【摘要】http://randomascii.wordpress.com/2011/08/18/xperf-basics-recording-a-trace/ This post is obsolete – deprecated. For information on newer/easier/better ways of recording xperf traces see Xperf Basi... <a href="https://www.cnblogs.com/Clingingboy/p/3519585.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Clingingboy/p/3519584.html
Xperf Analysis Basics(转) - Clingingboy
FQ不易,转载 http://randomascii.wordpress.com/2011/08/23/xperf-analysis-basics/ I started writing a description of how to examine CPU Sampling data in xperf and realized that I needed a basics article...
2014-01-14T10:24:00Z
2014-01-14T10:24:00Z
Clingingboy
https://www.cnblogs.com/Clingingboy/
【摘要】FQ不易,转载 http://randomascii.wordpress.com/2011/08/23/xperf-analysis-basics/ I started writing a description of how to examine CPU Sampling data in xperf and realized that I needed a basics article... <a href="https://www.cnblogs.com/Clingingboy/p/3519584.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Clingingboy/p/3480763.html
Android相关sdk使用 - Clingingboy
SimpleDateFormat使用详解 Android_AlertDialog 两分钟彻底让你明白Android Activity生命周期(图文)! Android布局控件之LinearLayout详解 Relative Layout 如何正确地使用android中的progressdialog android的Menu使用 andro...
2013-12-18T09:37:00Z
2013-12-18T09:37:00Z
Clingingboy
https://www.cnblogs.com/Clingingboy/
【摘要】SimpleDateFormat使用详解 Android_AlertDialog 两分钟彻底让你明白Android Activity生命周期(图文)! Android布局控件之LinearLayout详解 Relative Layout 如何正确地使用android中的progressdialog android的Menu使用 andro... <a href="https://www.cnblogs.com/Clingingboy/p/3480763.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Clingingboy/p/3463764.html
Uniscribe文字自动换行 - Clingingboy
转载:http://blog.csdn.net/jianlizhao66/article/details/1480457 我们获得了每个字形的宽度数组piAdvances,以及这个RUN所占用的总宽度abc。 piVdvances对应于每个字符,它取得了每个字形所占用宽度。 如果我们以行为单位来绘制文字,我们可以以一个循环来取得每个RUN的宽度信息,并一直相加,假设我们己取得了一些ru...
2013-12-08T05:29:00Z
2013-12-08T05:29:00Z
Clingingboy
https://www.cnblogs.com/Clingingboy/
【摘要】转载:http://blog.csdn.net/jianlizhao66/article/details/1480457 我们获得了每个字形的宽度数组piAdvances,以及这个RUN所占用的总宽度abc。 piVdvances对应于每个字符,它取得了每个字形所占用宽度。 如果我们以行为单位来绘制文字,我们可以以一个循环来取得每个RUN的宽度信息,并一直相加,假设我们己取得了一些ru... <a href="https://www.cnblogs.com/Clingingboy/p/3463764.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Clingingboy/p/3459219.html
Chrome RenderText分析(2) - Clingingboy
接Chrome RenderText分析(1) 继续分析以下步骤 一.TextRun结构 struct TextRun { TextRun(); ~TextRun(); ui::Range range; Font font; // A gfx::Font::FontStyle flag to specify bold and italic styles. // S...
2013-12-05T03:40:00Z
2013-12-05T03:40:00Z
Clingingboy
https://www.cnblogs.com/Clingingboy/
【摘要】接Chrome RenderText分析(1) 继续分析以下步骤 一.TextRun结构 struct TextRun { TextRun(); ~TextRun(); ui::Range range; Font font; // A gfx::Font::FontStyle flag to specify bold and italic styles. // S... <a href="https://www.cnblogs.com/Clingingboy/p/3459219.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Clingingboy/p/3454858.html
c++智能指针 - Clingingboy
跟comptr类似 明确定义AddRef和Release,然后定义与comptr类似的一个辅助类. 这里有2种方式 1.Release的时候引用计数为0的时候删除对象 2.定义一个管理类RefCountedMgr,把RefCounted都添加到其中,Release引用计数为0时,不删除对象,而是缓存起来以便重新使用,RefCountedMgr析构时删除对象
2013-12-02T15:11:00Z
2013-12-02T15:11:00Z
Clingingboy
https://www.cnblogs.com/Clingingboy/
【摘要】跟comptr类似 明确定义AddRef和Release,然后定义与comptr类似的一个辅助类. 这里有2种方式 1.Release的时候引用计数为0的时候删除对象 2.定义一个管理类RefCountedMgr,把RefCounted都添加到其中,Release引用计数为0时,不删除对象,而是缓存起来以便重新使用,RefCountedMgr析构时删除对象 <a href="https://www.cnblogs.com/Clingingboy/p/3454858.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Clingingboy/p/3453958.html
codepage IMLangCodePages - Clingingboy
http://baike.baidu.com/link?url=78DSTGAri8dvHNLQ03rThSKieJqhFwFWL4sQMao6cfaRSOUWN88QVBwmSJPCZch0vfyChnSoRHC1iscdGiSHOK 使用COM对象查询 CoCreateInstance(CLISD_MLANG,NULL,CLSCTX_INPROC_SERVER,__uuidof(IM...
2013-12-02T06:47:00Z
2013-12-02T06:47:00Z
Clingingboy
https://www.cnblogs.com/Clingingboy/
【摘要】http://baike.baidu.com/link?url=78DSTGAri8dvHNLQ03rThSKieJqhFwFWL4sQMao6cfaRSOUWN88QVBwmSJPCZch0vfyChnSoRHC1iscdGiSHOK 使用COM对象查询 CoCreateInstance(CLISD_MLANG,NULL,CLSCTX_INPROC_SERVER,__uuidof(IM... <a href="https://www.cnblogs.com/Clingingboy/p/3453958.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Clingingboy/p/3449435.html
GUI 快捷键的实现思路 - Clingingboy
思路: 前提快捷键操作不可重复,即一个快捷键对应一个控件的动作 一个窗体保持一份快捷键的map映射 在相应的消息中获取快捷键列表如键盘消息 在控件类对象中定义一个默认的响应行为,比如Button按了Enter键 当子控件隐藏,父控件关系发生变化时则重新设置快捷键
2013-11-29T05:50:00Z
2013-11-29T05:50:00Z
Clingingboy
https://www.cnblogs.com/Clingingboy/
【摘要】思路: 前提快捷键操作不可重复,即一个快捷键对应一个控件的动作 一个窗体保持一份快捷键的map映射 在相应的消息中获取快捷键列表如键盘消息 在控件类对象中定义一个默认的响应行为,比如Button按了Enter键 当子控件隐藏,父控件关系发生变化时则重新设置快捷键 <a href="https://www.cnblogs.com/Clingingboy/p/3449435.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Clingingboy/p/3436497.html
Menu实现逻辑 - Clingingboy
一.前奏 创建一个WS_EX_NOACTIVATE的窗体 创建窗体后注册Hook消息(鼠标在非Menu区域点击时关闭menu,接收键盘消息用于快捷键,接WM_SETFOCUS消息,当打开新窗体时关闭menu) 接LButtonClick(在LButtonUp触发)消息,按下按钮后关闭menu 二.Menu快捷键逻辑 采纳从Enter键之后的快捷键+自定义...
2013-11-21T14:20:00Z
2013-11-21T14:20:00Z
Clingingboy
https://www.cnblogs.com/Clingingboy/
【摘要】一.前奏 创建一个WS_EX_NOACTIVATE的窗体 创建窗体后注册Hook消息(鼠标在非Menu区域点击时关闭menu,接收键盘消息用于快捷键,接WM_SETFOCUS消息,当打开新窗体时关闭menu) 接LButtonClick(在LButtonUp触发)消息,按下按钮后关闭menu 二.Menu快捷键逻辑 采纳从Enter键之后的快捷键+自定义... <a href="https://www.cnblogs.com/Clingingboy/p/3436497.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Clingingboy/p/3435601.html
控件保持多种绘图状态的做法 - Clingingboy
基本思路 #pragma once#include struct IPainter{ void Paint() {}};class Element{ void SetPainterState(int dwState, IPainter* pPainter) { m_mapStatePainter[dwState]=pPainter; if(dw...
2013-11-21T07:03:00Z
2013-11-21T07:03:00Z
Clingingboy
https://www.cnblogs.com/Clingingboy/
【摘要】基本思路 #pragma once#include struct IPainter{ void Paint() {}};class Element{ void SetPainterState(int dwState, IPainter* pPainter) { m_mapStatePainter[dwState]=pPainter; if(dw... <a href="https://www.cnblogs.com/Clingingboy/p/3435601.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Clingingboy/p/3435435.html
2个函数宏技巧 - Clingingboy
1.用宏调用对象函数 #define FOR_EACH_OBSERVER(ObserverType, observer_list, func) \ do{ \ CObserverListBase::Iterator it(observer_list); \ ObserverType* obs; \ while((obs=it.GetNext()) != ...
2013-11-21T05:56:00Z
2013-11-21T05:56:00Z
Clingingboy
https://www.cnblogs.com/Clingingboy/
【摘要】1.用宏调用对象函数 #define FOR_EACH_OBSERVER(ObserverType, observer_list, func) \ do{ \ CObserverListBase::Iterator it(observer_list); \ ObserverType* obs; \ while((obs=it.GetNext()) != ... <a href="https://www.cnblogs.com/Clingingboy/p/3435435.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Clingingboy/p/3435270.html
绘图 Painter转接口封装的方式 - Clingingboy
记录下思想 适用于业务逻辑相对单纯的一些画法,比如画背景(颜色,背景,边框等) 一个Draw方法中如果绘制比较复杂的话,就会导致代码混乱,而不灵活,每次需求更改就得重新画过,可重用性差. 以接口的方式可以很好的重复利用功能,不必因为需求的更改而大量变更代码 chrome的方法定义如下 // Painting ----------------------------------...
2013-11-21T03:52:00Z
2013-11-21T03:52:00Z
Clingingboy
https://www.cnblogs.com/Clingingboy/
【摘要】记录下思想 适用于业务逻辑相对单纯的一些画法,比如画背景(颜色,背景,边框等) 一个Draw方法中如果绘制比较复杂的话,就会导致代码混乱,而不灵活,每次需求更改就得重新画过,可重用性差. 以接口的方式可以很好的重复利用功能,不必因为需求的更改而大量变更代码 chrome的方法定义如下 // Painting ----------------------------------... <a href="https://www.cnblogs.com/Clingingboy/p/3435270.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Clingingboy/p/3415581.html
DirectUI消息循环的简单封装 - Clingingboy
一.真窗体和假窗体 首先在DirectWindow内部创建一个真窗体(基于WTL),可以接收消息 class CMessageWindow : public CWindowImpl{public: CMessageWindow(); ~CMessageWindow(); BEGIN_MSG_MAP( CMessageWindow ) MESSAGE_RAN...
2013-11-09T05:56:00Z
2013-11-09T05:56:00Z
Clingingboy
https://www.cnblogs.com/Clingingboy/
【摘要】一.真窗体和假窗体 首先在DirectWindow内部创建一个真窗体(基于WTL),可以接收消息 class CMessageWindow : public CWindowImpl{public: CMessageWindow(); ~CMessageWindow(); BEGIN_MSG_MAP( CMessageWindow ) MESSAGE_RAN... <a href="https://www.cnblogs.com/Clingingboy/p/3415581.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Clingingboy/p/3408473.html
c++以代理的方式来实现接口化编程 - Clingingboy
假如你项目代码本身已经实现了很多的实体类,但并未采用接口,可以考虑以这种方式来实现接口化编程 struct ITest{ virtual void Test()=0;};class CTest{public: void Test() {}};class CTestProxy:public ITest{ void Test() { m_object...
2013-11-05T06:13:00Z
2013-11-05T06:13:00Z
Clingingboy
https://www.cnblogs.com/Clingingboy/
【摘要】假如你项目代码本身已经实现了很多的实体类,但并未采用接口,可以考虑以这种方式来实现接口化编程 struct ITest{ virtual void Test()=0;};class CTest{public: void Test() {}};class CTestProxy:public ITest{ void Test() { m_object... <a href="https://www.cnblogs.com/Clingingboy/p/3408473.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Clingingboy/p/3407662.html
c++对象工厂 - Clingingboy
一.简单工厂 #pragma oncestruct IObjectA{ virtual void Test1()=0;};class ObjectA:public IObjectA{public: virtual void Test1(){}};struct IObjectB{ virtual void Test2()=0;};class ObjectB:public I...
2013-11-04T15:07:00Z
2013-11-04T15:07:00Z
Clingingboy
https://www.cnblogs.com/Clingingboy/
【摘要】一.简单工厂 #pragma oncestruct IObjectA{ virtual void Test1()=0;};class ObjectA:public IObjectA{public: virtual void Test1(){}};struct IObjectB{ virtual void Test2()=0;};class ObjectB:public I... <a href="https://www.cnblogs.com/Clingingboy/p/3407662.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Clingingboy/p/3407339.html
使用模板来解决接口继承问题 - Clingingboy
一.定义2个有继承关系的接口 struct IA{ virtual void Test1()=0;};struct IB:public IA{ virtual void Test2()=0;};二.定义2个类来实现class A:public IA{ virtual void Test1() {}};class B:public IB{public: virtual...
2013-11-04T12:14:00Z
2013-11-04T12:14:00Z
Clingingboy
https://www.cnblogs.com/Clingingboy/
【摘要】一.定义2个有继承关系的接口 struct IA{ virtual void Test1()=0;};struct IB:public IA{ virtual void Test2()=0;};二.定义2个类来实现class A:public IA{ virtual void Test1() {}};class B:public IB{public: virtual... <a href="https://www.cnblogs.com/Clingingboy/p/3407339.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Clingingboy/p/3407293.html
VC++ 使用attributes定义接口 - Clingingboy
1.定义预处理命令_ATL_ATTRIBUTES 2.在一个全局的Cpp文件里面配置module的attribute [module(dll, uuid = "{3845951F-15B8-4286-8E7D-E9D4F5C7B6CE}", name = "TestApp")]3.定义接口[ object, uuid("9F414A8A-1D5E-4aff-A60...
2013-11-04T11:26:00Z
2013-11-04T11:26:00Z
Clingingboy
https://www.cnblogs.com/Clingingboy/
【摘要】1.定义预处理命令_ATL_ATTRIBUTES 2.在一个全局的Cpp文件里面配置module的attribute [module(dll, uuid = "{3845951F-15B8-4286-8E7D-E9D4F5C7B6CE}", name = "TestApp")]3.定义接口[ object, uuid("9F414A8A-1D5E-4aff-A60... <a href="https://www.cnblogs.com/Clingingboy/p/3407293.html" target="_blank">阅读全文</a>