Archive for May, 2005

周末杂记

2005-5-28 20:59 | by 2ndboy

  周末又到了,习惯了单休的我在终于可以一周休息两天之后经常把周末过得乱七八糟,看来习惯的力量确实很大:)

  今天的计划主要是去文化商城买一本 ATL 的书,顺便看望我在杭州唯一的一位高中同学。不得不说的是,现在讲 ATL 的书实在是太少了,根本没有选择余地,最后只好买了唯一可以找到的《深入解析 ATL(ATL Internals)》,是潘爱民挂名翻译的,跟我书架上的另一本书《C++ Primer》一样,不知道老潘是在培养新人还是锻炼队伍:)

  利用早上出门前的时间搞定了一个昨晚未完成的问题,用 wxWidgets 实现 Maxthon 风格的 Preferences UI 终于初具规模了:)不过奇怪为什么总是在长久不能解决问题后,在睡着前突然想到了方法,已经有很多次这样的经历了,所以说睡觉是个好东西,只是现在享受的比大学时候少多了!每每想起以前在学校时下午 4、5 点仍然“昏迷不醒”的状态就很是怀念。

  年纪越大,责任就越大,娱乐放松时间就少了。听到同事说目前每日在 World of Warcraft 的世界里游荡就很是向往,但不玩大游戏已久已,还有很多事情等着做呢。今天跟高中同学谈起“人为什么要活着”这个问题来的时候,我说这个问题其实在人生的不同阶段有着不同的答案,而我现在的答案是——为了自由!如果你对这个答案感到奇怪的话,呵呵,那看来目前我们还没有同感。

  好了,就写到这里,写 code 去了……

wxWidgets 2.6.0

2005-5-23 23:06 | by 2ndboy

  wxWidgets 终于在今年的 6 月 21 日发布了稳定版的 2.6.0 版本,wxWidgets 的版本号规则与 Linux 内核相似,奇数表示开发版本,偶数表示稳定版本。这次发布距离上次稳定版的发布已经有些时日了,当日的 News 上也写着:This is the first official, stable release for a long time but we think the wait has been worth it.

  记得是在一年多前开始学习 wxWidgets 的,因为对 MFC 已经渐渐失去了兴趣,但又不想落下了桌面开发的功力,所以就打算选个 GUI 类库来钻研。GTK、Qt 和 wxWidgets 都是候选对象,学完之后就可以一下子拥有多个平台的开发能力,有这样的好事,MFC 就更是靠边站了(倒不是完全不懂 MFC,只是不怎么熟罢了,最近由于工作关系,ATL 也在用)。wxWidgets 是一个在各平台下都使用 native UI 的 framework,而 Qt 和 GTK 为了使开发的程序在任何平台下看起来外观都一样,都有些效率负担,其实对于我来说有这个理由就足够了,何况 Qt 在 Windows 下还有授权的问题。

  在这个版本中,XML-based resource system 变成了标准配置的一部分,确实是大快人心啊!之前做程序的时候,对话框的布局都是用程序一行行写出来的,想想也真是麻烦,如果一个月前写的 UI 要改的话还要花些时间来读懂以前的布局代码才能开工。

  因为众所周知的原因,在没有 WYSIWYG 的资源编辑器时写 UI 的时候经常要修改、重新编译、看效果、修改……周而复始,非常麻烦!用了 XRC 文件后,修改 UI 不需要重新编译程序了,节省了大把时间。

  分离的逻辑代码和 UI 布局代码看上去也比较优雅一些:)

  采用 XRC 资源后,你可以在程序中动态更换资源文件(如果你想这样做的话)。

  在 XRC 资源中可以继续使用你早已烂熟的 sizer,作出可以随意拉伸的,富有弹性的对话框。

  由于是 wxWidgets 的标准,所以同一个 XRC 文件可以同时给 C++ 和 wxPython 使用:)XRC 文件是标准的 XML 文件,你可以在自己喜欢的编辑器中手工编辑它。

推荐三部经典的韩国片子

2005-5-21 19:28 | by 2ndboy

  其实也不是新片子,不过有人居然跟我说没看过,看来还是有必要推荐一下的:)按我看的顺序分别是:

《不可不信缘》(又名《假如爱有天意》):

  大概是 03 年的时候看的,也是我看过的第一部由孙艺珍主演的片子。记得高中看《东京爱情故事》的时候一下就喜欢上了里面的莉香(铃木保奈美),看过这部片子后对孙艺珍也是印象深刻!画面很有美感,故事情节也相当感人,GF 看过后向我推荐时我还有点不屑,因为我觉得这类文艺片已经拍滥了,能有什么好看的,结果还是被感动了一把:)里面的音乐也是相当美的。由“骑自行车的风景”演唱的《Me in you,you in me》和主题曲《越爱越》都相当不错!

《太极旗飘扬》

  应该是 04 年看的,不过非常遗憾的是看的是偷拍版,好在后半部分的效果还是比较好的。讲述的是在朝鲜战争中两个兄弟的故事,战争场面拍的比较真实,有点像《拯救大兵瑞恩》,看过之后真的能让人感受到战争的残酷!里面还有一个志愿军一闪而过的镜头,真不知道志愿军在韩国人心中是个什么概念。曾经在网上看到过这部片子的电影原声下载,不过看的时候倒是没有什么印象。

《我脑海中的橡皮擦》

  名字非常有意思,又是一部孙艺珍主演的片子,不过一开始居然没有认出来:)实在是因为她化妆的原因,但后来就恢复了玉女本色了:)据说片子的导演是个 ABK,很擅长拍 MTV,所以片中运用了很多 MTV 的拍摄手法,又是一部画面唯美的片子!原声也很好听,发现这好像都快成了韩国电影的一大买点了,值得国内电影学习。看看《天下无贼》里面,都用现成的,后面刘德华“牺牲”的时候用了杨坤非常老的一首歌《那一天》,那首《玫瑰人生》也是从别人那里直接拿过来的。

  说了半天好像很多篇幅都是在讨论音乐,呵呵,谁让我喜欢听音乐呢,但这三部片子真的都很不错,如果你碰巧没看过,那还等什么呢?!

浪费了半天时间的 RichEdit 只读属性

2005-5-21 16:37 | by 2ndboy

  昨天遇到一个任务,需要给一个 RichEdit 动态加上 ReadOlny 属性,谁知这么个简单的问题浪费了我将近半天的时间!

一开始写了这样的代码:

  1. LONG lStyle = GetWindowLong( hRichEdit, GWL_STYLE );
  2.  if( bEnable )
  3.      lStyle &= (~ES_READONLY);
  4.  else
  5.      lStyle |= ES_READONLY;
  6.  SetWindowLong( hReadEdit, GWL_STYEL, lStyle );

  试了一下,谁知根本没效果,还以为写错了什么地方,折腾了半天。后来不经意看到 RichEdit 居然有个 EM_SETOPTIONS 消息,才算是基本搞定了这个问题(为什么是基本搞定?听我从头道来:)),改用下面的代码:

  1. if( bEnable )
  2.      SendMessage( hRichEdit, EM_SETOPTIONS, CEOOP_AND, (~ECO_READONLY) );
  3.  else
  4.      SendMessage( hRichEdit, EM_SETOPTIONS, CEOOP_OR, ECO_READONLY );

  现在终于可以动态设定只读属性了,但却发现了几个问题:1、设成只读再取消以后,RichEdit 表面上看上去还是只读状态的,但其实已经可以进行编辑操作了。2、设成只读的 RichEdit 如果进行了重绘,则会变成灰色,就像是 Disable 状态一样。

  因为有以上两个问题,最终我还是用 EnableWindow( hRichEdit, TRUE/FALSE ); 的办法来实现了,但始终不知是为什么,比较郁闷,看起来应该是 RichEdit 的 Bug 吧,哪位仁兄可以指点一二?

开天辟地头一篇

2005-5-17 22:36 | by 2ndboy

  这是决定搬到 Spaces 后的头一篇 Blog,想了想决定不把旧 Blog 的内容搬到这里来了,老东西既是财富也是负担,就让它保留原状做个历史见证吧(只要 Blogcn 不删除我的空间就行了^_^)。

  后天是我跟 GF “情定终身”的 5 周年纪念日,但是还没想好要怎么样庆祝,干了 3 年 Coder 有点退化了,也许各位看客大家可以帮我想想?

  对了,要说今天有什么值得一记的事情的话就是今天居然见到了传说中的香蕉人,呵呵,开始以为是出国太久了不大愿意说中文,后来才明白过来人家根本就不懂中文:)我说呢,English 怎么说的那么溜,我什么时候有这水准就好了:)