<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_优哉@游哉 的博客</title><subtitle type="text">Coding 不仅仅是谋生的手段</subtitle><id>http://feed.cnblogs.com/blog/u/32135/rss</id><updated>2008-06-26T13:53:47Z</updated><author><name>优哉@游哉</name><uri>http://www.cnblogs.com/youzai/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/youzai/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/32135/rss"/><entry><id>http://www.cnblogs.com/youzai/archive/2008/06/20/1226465.html</id><title type="text">我的 WinClock 项目系列之四 (Memento 模式的应用)</title><summary type="text">动机 (Motivation)&#xD;    在软件的构建过程中，某些对象的状态在转换过程中，可能由于某种需要，要求程序能够回溯到对象之前某个点&#xD;   时的状态，如果使用一些公有接口来让其他对象得到对象的状态，便会暴露对象的细节实现。&#xD;   &#xD;   如何实现对象状态的良好保存与恢复？但同时又不会因此而破坏对象本身的封装性。</summary><published>2008-06-20T03:40:00Z</published><updated>2008-06-20T03:40:00Z</updated><author><name>优哉@游哉</name><uri>http://www.cnblogs.com/youzai/</uri></author><link rel="alternate" href="http://www.cnblogs.com/youzai/archive/2008/06/20/1226465.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/youzai/archive/2008/06/20/1226465.html"/></entry><entry><id>http://www.cnblogs.com/youzai/archive/2008/06/04/1213832.html</id><title type="text">我的 WinClock 项目系列之三 (Mediator模式的应用)</title><summary type="text">动机(Motivation)：&#xD;  在软件的构建过程中，经常会出现多个对象互相关联交互的情况，对象之间常常会维持一种&#xD;复杂的引用关系，如果遇到一些需求的更改，这种直接的引用关系将面临不断的变化。&#xD;&#xD;  在这种情况下，我们可以使用一个“中介对象”来管理对象间的关联关系，避免相互的对象之间&#xD;紧耦合引用关系，从而更好地抵御变化。</summary><published>2008-06-04T10:25:00Z</published><updated>2008-06-04T10:25:00Z</updated><author><name>优哉@游哉</name><uri>http://www.cnblogs.com/youzai/</uri></author><link rel="alternate" href="http://www.cnblogs.com/youzai/archive/2008/06/04/1213832.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/youzai/archive/2008/06/04/1213832.html"/></entry><entry><id>http://www.cnblogs.com/youzai/archive/2008/06/01/1211790.html</id><title type="text">我的 WinClock 项目系列之二 (功能细节，在Windows API 里面查找需要的功能)</title><summary type="text">1. 不规则窗口的创建&#xD;    方法一：&#xD;    让图片的背景色与显示部分的颜色明显不同，将 FormBorderStyle 属性设置为 None。 &#xD;    将窗体的 BackgroundImage 属性设置为先前创建的位图文件。 设置窗体的 BackColor 图片&#xD;    背景色，在窗体的构造函数里添加 this.TransparencyKey = this.BackColor; 一切OK。</summary><published>2008-06-01T15:47:00Z</published><updated>2008-06-01T15:47:00Z</updated><author><name>优哉@游哉</name><uri>http://www.cnblogs.com/youzai/</uri></author><link rel="alternate" href="http://www.cnblogs.com/youzai/archive/2008/06/01/1211790.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/youzai/archive/2008/06/01/1211790.html"/></entry><entry><id>http://www.cnblogs.com/youzai/archive/2008/05/30/1210902.html</id><title type="text">我的 WinClock 项目系列之一 (概述)</title><summary type="text">三年前,当我还是一个学生的时候,同学在用一个类似雪狐迷你钟&#xD;的小软件，具体叫什么现在忘记了，当时这个软件是收费的...</summary><published>2008-05-30T10:35:00Z</published><updated>2008-05-30T10:35:00Z</updated><author><name>优哉@游哉</name><uri>http://www.cnblogs.com/youzai/</uri></author><link rel="alternate" href="http://www.cnblogs.com/youzai/archive/2008/05/30/1210902.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/youzai/archive/2008/05/30/1210902.html"/></entry><entry><id>http://www.cnblogs.com/youzai/archive/2008/05/19/1202732.html</id><title type="text">C# 实现屏幕键盘 (ScreenKeyboard)</title><summary type="text">钩子（Hook）是Windows提供的一种消息处理机制平台，是指在程序正常运行中接受信息之前预先&#xD;启动的函数，用来检查和修改传给该程序的信息，（钩子）实际上是一个处理消息的程序段，通&#xD;过系统调用，把它挂入系统。每当特定的消息发出，在没有到达目的窗口前，钩子程序就先捕获&#xD;该消息，亦即钩子函数先得到控制权。这时钩子函数即可以加工处理（改变）该消息，也可以不&#xD;作处理而继续传递该消息，还可以强制结束消息的传递。注意：安装钩子函数将会影响系统的性&#xD;能。监测“系统范围事件”的系统钩子特别明显。因为系统在处理所有的相关事件时都将调用您的&#xD;钩子函数，这样您的系统将会明显的减慢。所以应谨慎使用，用完后立即卸载。还有，由于您可&#xD;以预先截获其它进程的消息，所以一旦您的钩子函数出了问题的话必将影响其它的进程。&#xD;</summary><published>2008-05-19T09:35:00Z</published><updated>2008-05-19T09:35:00Z</updated><author><name>优哉@游哉</name><uri>http://www.cnblogs.com/youzai/</uri></author><link rel="alternate" href="http://www.cnblogs.com/youzai/archive/2008/05/19/1202732.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/youzai/archive/2008/05/19/1202732.html"/></entry><entry><id>http://www.cnblogs.com/youzai/archive/2008/05/06/1185853.html</id><title type="text">C# 实现自定义消息处理</title><summary type="text">  众所周知，委托和事件机制是C#应用程序的一个很重要的方面。&#xD;Microsoft 的 BCL 类库对Windows的控件进行了几乎全面的封装，使用程序人员甚至不用了解消息循环就&#xD;能写出相样的程序。&#xD;  然而，甚至Windows UI编程到了 WPF 时代，消息机制仍然占据着举足轻重的作用。</summary><published>2008-05-06T13:19:00Z</published><updated>2008-05-06T13:19:00Z</updated><author><name>优哉@游哉</name><uri>http://www.cnblogs.com/youzai/</uri></author><link rel="alternate" href="http://www.cnblogs.com/youzai/archive/2008/05/06/1185853.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/youzai/archive/2008/05/06/1185853.html"/></entry><entry><id>http://www.cnblogs.com/youzai/archive/2008/04/26/1172492.html</id><title type="text">一次重构 (算术表达式求值问题)</title><summary type="text">  三个月之前，我曾经写了一篇关于算术表达式求值的文章，当时是单纯从算法的角度考虑整个问题的，而没有考虑到软件的扩展性，&#xD;三个月以后，我重新考虑了这个问题，怎么让这个微型的程序具备扩展性呢？空闲时间看了不少 SharpDevelop 的源码，对其中的&#xD;插件实现机制当然会有一定印象，那么何不用插件的形式来实现下这个程序呢？这样就可以在将来需要新的运算法则时方便地扩展，而&#xD;不必更改已经存在的程序，</summary><published>2008-04-26T12:50:00Z</published><updated>2008-04-26T12:50:00Z</updated><author><name>优哉@游哉</name><uri>http://www.cnblogs.com/youzai/</uri></author><link rel="alternate" href="http://www.cnblogs.com/youzai/archive/2008/04/26/1172492.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/youzai/archive/2008/04/26/1172492.html"/></entry><entry><id>http://www.cnblogs.com/youzai/archive/2008/01/07/1029612.html</id><title type="text">使用传统算法进行表达式求值(数字支持科学表示法,操作符支持加减乘除乘方, 支持括号, 不支持函数)</title><summary type="text"> 一. 预处理中缀表达式，去除所有的空格，如果第一个字符是 “-”，在前面加 “0”。&#xD;  &#xD;    如果 "^" 后紧跟负数-m (m &gt; 0)，则把这个数替换成 "(0-m)"。 例如: "-3^-20 + 30" 处理&#xD;&#xD;    结果为 "0-3^(0-20)+30"。&#xD;</summary><published>2008-01-07T14:57:00Z</published><updated>2008-01-07T14:57:00Z</updated><author><name>优哉@游哉</name><uri>http://www.cnblogs.com/youzai/</uri></author><link rel="alternate" href="http://www.cnblogs.com/youzai/archive/2008/01/07/1029612.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/youzai/archive/2008/01/07/1029612.html"/></entry><entry><id>http://www.cnblogs.com/youzai/archive/2008/01/05/1027417.html</id><title type="text">利用 C++ Interop 封装 ISO C++ 对象, 供其他 .Net 语言使用</title><summary type="text">.Net BCL 支持两种互操作技术, 模块级重用P/Invoke 和组件级重用 COM 互操作&#xD;&#xD;C++/CLI除了支持以上两种互操作以外, 更支持代码级重用, 称为C++ Interop, 本文仅举例&#xD;&#xD;说明这种互操作技术。&#xD;</summary><published>2008-01-05T15:42:00Z</published><updated>2008-01-05T15:42:00Z</updated><author><name>优哉@游哉</name><uri>http://www.cnblogs.com/youzai/</uri></author><link rel="alternate" href="http://www.cnblogs.com/youzai/archive/2008/01/05/1027417.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/youzai/archive/2008/01/05/1027417.html"/></entry><entry><id>http://www.cnblogs.com/youzai/archive/2007/12/28/1018092.html</id><title type="text">值类型 VS 引用类型 (C++/CLI)</title><summary type="text">    值类型自动继承自 System::ValueType, 引用类型自动继承自 System::Object,&#xD; &#xD;虽然 System::ValueType 也继承自 System::Object, 但二者仍有不少差别。</summary><published>2007-12-28T02:51:00Z</published><updated>2007-12-28T02:51:00Z</updated><author><name>优哉@游哉</name><uri>http://www.cnblogs.com/youzai/</uri></author><link rel="alternate" href="http://www.cnblogs.com/youzai/archive/2007/12/28/1018092.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/youzai/archive/2007/12/28/1018092.html"/></entry></feed>
