碧水蓝天

不登高山,不知云之高;不临深渊,不知地之厚也

导航

<2006年6月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

统计

公告

目前从事视频会议系统开发

留言簿(1)

随笔分类

随笔档案

文章分类

文章档案

视频会议相关

软件工程/软件设计

搜索

最新评论

  • 1. re: 微软二进制Office文档格式已公开
  • kjlklkl
  • --u nvxch
  • 2. re: 微软二进制Office文档格式已公开
  • 跑跑
  • --安小阳
  • 3. re: Almost Every file format in the world(转贴)
  • 我想找出跑跑卡丁车
  • --吴思禹
  • 4. re: Almost Every file format in the world(转贴)
  • 我也找到这个东西了,只可惜没有文件格式的说明
  • --WWWW
  • 5. re: C++ Coding Standard (2007-01-09)
  • 初级程序员
  • --包冠男
  • 6. re: 微软二进制Office文档格式已公开
  • 那是要文档的话可能需要和微软合作吧.
  • --ˮ
  • 7. re: 微软二进制Office文档格式已公开
  • gnuwin32上早就有word转为其他格式的程序,jasper(java中读取excel)好像也有了吧。
  • --Diviner
  • 8. re: 微软二进制Office文档格式已公开
  • 以前我也找过,但没找到。
  • --终极精彩
  • 9. re: 微软二进制Office文档格式已公开
  • 那是你找得不够仔细吧。
  • --Diviner
  • 10. re: 微软二进制Office文档格式已公开
  • 应该没有吧,除非是破解,一年前想找都一直没找到.
  • --碧水蓝天
  • 11. re: 微软二进制Office文档格式已公开
  • 这个格式应该早就被人家发掘出来了。
  • --Diviner
  • 12. re: CFileDialog的bug
  • 建议看看这篇文章对您会有帮助的 http://www.150it.cn/bianchengwendang/VC/5847313375.html
  • --dee
  • 13. re: CFileDialog的又一Bug
  • 这不是bug,就应该这样的。因为CMyFileDialogEx 并不是顶层窗口,不信,你察看一下他的窗口标题,他的父窗口标题,才是你看到的标题...
  • --mycro
  • 14. re: 如何让你的程序避开全局键盘钩子的监视
  • 请教大侠一下,我装了十几个系统(多数是深度简化版,还有上海政府原版和windows xp原版),除了win2000,用冰刃查了发现explorer.exe,iexplorer.exe等都有wh_keyboard, wh_mouse等钩子,其实几乎所有的程序都感染了这种钩子,请问这是木马行为,还是正常?用oem的是没有这样的问题的,还有在一部机上装win2000,用冰刃查到没有一个信息钩子(即为0),最近又装了vista, 除了只有iexplorer.exe带有钩子外,其它程序都没有. 请解释一下, 这个问题困扰我很久了,还有你的程序可否做成一个执行的供下载? 谢谢!

  • --swagger
  • 15. re: CFileDialog的bug
  • 兄弟,太谢谢
    大家多分享经验.
  • --xiaoshaoping
  • 16. re: 用Ping命令测试MTU大小
  • 但是最大的临界值会不分包吗?
    值是否越小越好呢?
  • --石头
  • 17. re: 用Ping命令测试MTU大小
  • 用UDP传输数据时为了减少丢包的可能性,一般要考虑MTU的限制
  • --碧水蓝天
  • 18. re: 如何让你的程序避开全局键盘钩子的监视
  • 不好意思,我的msn上不了.
    现在为了安全起见,密码输入用软键盘的很多.
  • --碧水蓝天
  • 19. re: 用Ping命令测试MTU大小
  • 弱弱的问一句MTU是啥呢,有啥实用的地方呢?
  • --eric
  • 20. re: 如何让你的程序避开全局键盘钩子的监视

  • 最近因工作关系,也在研究防木马键盘记录。
    有时间沟通以下。
    我的msn:eboymcy@hotmail.com
    mail:eboymcy@163.com
  • --eboymcy
  • 21. re: 如何让你的程序避开全局键盘钩子的监视
  • 有道理。
    不过这个躲不过WH_DEBUG钩子的监视。
    也躲不过WH_KEYBOARD_LL的监视!
  • --eboymcy
  • 22. re: CFileDialog的bug
  • 见鬼, 今天我也遇上这个问题, 谢谢您的文章.
  • --zhaoyang0618
  • 23. re: 如何让你的程序避开全局键盘钩子的监视
  • 那么如果人家也装个局部的钩子呢,不是就在你的钩子前面了吗。而且你这样只可以避免键盘,如果人家用消息的钩子呢。你还可以result:=0吗。
  • --yzdiyu
  • 24. re: 如何让你的程序避开全局键盘钩子的监视
  • 感谢楼主的文章!简单易行!因为键盘钩子还差点去研究微软的detours开发包试图改变系统API的调用过程,实在是太没有必要了呵呵幸得发现了您的文章没有让我浪费时间做一件不恰当的事情。。呵呵感谢!
  • --水晶臭虫
  • 25. re: 操作系统桌面效果比武:Vista VS Ubuntu(转贴)
  • Ubuntu 7.04是做的不错,效果比XP好多了。因为我用的Compiz,所以感觉没berly眩,但是比Vista还是要喧一些。另外,就是它的光晕效果要跟Vista有一拼。至于Vista边栏这种东西,更是Linux上老掉牙的的东东,8过Vista边栏的小应用特别重视视觉效果,而Linux小工具都是更重视实用,这是有很大的差别的。
  • --乾坤一笑
  • 26. re 碧水蓝天:
  • :)但我不觉得xp中对话框那个锯齿模样的圆角比98的美在哪里?
  • --周星星
  • 27. re: 操作系统桌面效果比武:Vista VS Ubuntu(转贴)
  • 普通用户和程序员的要求显然是不同的,高度可定制的软件永远是程序员所追求的
  • --zuilang
  • 28. re: 操作系统桌面效果比武:Vista VS Ubuntu(转贴)
  • 不错。简洁、方便、快速是任何一款软件都应该追求的。我非常认同Donald Norman的观点:“产品具有好的功能是重要的;产品让人易学会用也是重要的;但更重要的是,这个产品要能使人感到愉悦。”关于他的访谈(Donald Norman:情感化设计http://www.uitimes.com/2005-11/2005112705813.htm)。一个看起来非常具有吸引力的软件界面无疑会吸引很多客户。要不然apple就没必要花那么大力气用在设计上了。
  • --碧水蓝天
  • 29. re: 操作系统桌面效果比武:Vista VS Ubuntu(转贴)
  • 毫无疑问,两个都很帅,不过显然酷是没用的,因为我们用的是操作系统,要酷为什么不去看美女图片?
    操作系统要的是简洁、方便、快速。
  • --周星星
  • 30. re: 软件设计中的可用性(转贴)
  • 很多时候,问题可能不那么好实施。

    比如,你的用户:
    就假设你使用了模版,但是可能你现在的用户偏偏对模版很反感。但实际上你用模版后,整个设计灵活性和可复用性更好。
    再比如,概念的定义:
    就说流式操作吧,确实是很不错的设计,可是实际上很多人愿意选择c风格的printf。
  • --清风雨
  • 31. to oshj:
  • 试过的,没有用
  • --碧水蓝天
  • 32. re: CFileDialog的又一Bug
  • 那我跟你说把调用它的主界面 center 一下,你又说没用?
    不解~
  • --oshj
  • 33. re: CFileDialog的bug
  • 你的文章非常精彩,秀逗邀请您加入秀逗博客联盟.中国最大最专业的博客推荐联盟,秀逗博客联盟不截取流量,推荐后的文章指向作者本人的BLOG,文章24小时循环首页展示,真正意义上迅速提升你的博客流量!欢迎注册,注册后将推荐代码添加到自己的BLOG相应位置即可轻松推荐文章,让更多人分享你的文章!后期更有秀逗市场、同心琐秀、商业联盟以及社区陆续登场,更多娱乐功能、商业展示机会,完全免费使用,名人博客,不用再眼红,使用秀逗推荐,流量迅速上升,好的博客,秀逗为您宣传!地址:http://www.sodooo.com
  • --sdsd
  • 34. re: Almost Every file format in the world(转贴)
  • 你的文章非常精彩,秀逗邀请您加入秀逗博客联盟.中国最大最专业的博客推荐联盟,秀逗博客联盟不截取流量,推荐后的文章指向作者本人的BLOG,文章24小时循环首页展示,真正意义上迅速提升你的博客流量!欢迎注册,注册后将推荐代码添加到自己的BLOG相应位置即可轻松推荐文章,让更多人分享你的文章!后期更有秀逗市场、同心琐秀、商业联盟以及社区陆续登场,更多娱乐功能、商业展示机会,完全免费使用,名人博客,不用再眼红,使用秀逗推荐,流量迅速上升,好的博客,秀逗为您宣传!地址:http://www.sodooo.com
  • --ss
  • 35. re: Almost Every file format in the world(转贴)
  • BMP Windows or OS/2 bitmap
  • --jzhang
  • 36. re: Almost Every file format in the world(转贴)
  • 怎么连BMP都没有??
  • --fastzhao
  • 37. re: Almost Every file format in the world(转贴)
  • 有的格式并不是公开的。根本找不到详细的说明文档。想找PowerPoint的格式说明文档,但一直没找到。
  • --碧水蓝天
  • 38. re: Almost Every file format in the world(转贴)
  • 只有解释,好像没有真正说格式哦。每个格式自己就应该有不薄的一个手册了。
  • --晓寒
  • 39. to HYJ:
  • 编译成Release的话,我测试的时候会偶尔出错,不知在你那是否有问题。而DEBUG每次都出错。
  • --碧水蓝天
  • 40. re: CFileDialog的bug
  • 我的测试环境是winxp pro+sp2 vc6+sp5 ,同你一样。
    没有任何问题。
    编译成Release的各种版本Default、MaxSpeed、MinSize等等,都没有发现你说的bug。
    将两行宏定义改变了各种位置,也没有发现你说的bug。
  • --HYJ
  • 41. re: CFileDialog的bug
  • 补上了:)
  • --碧水蓝天
  • 42. re: CFileDialog的bug
  • 也不说一下是哪个版本的vc++的CFileDialog
  • --周星星
  • 43. re: CFileDialog的bug
  • 我的测试环境是winxp pro+sp2 vc6+sp5
  • --碧水蓝天
  • 44. re: CFileDialog的bug
  • 测试了楼主的代码,没有任何问题。
    vc6sp5 win2kpro sp4.
  • --pAnic
  • 45. re: 如何让你的程序避开全局键盘钩子的监视
  • 写的好
  • --小商品
  • 46. re: 什么是用户界面设计(Zt)?
  • 明白,谢谢了!
  • --lqicc
  • 47. re: 什么是用户界面设计(Zt)?
  • 你去http://msdn.microsoft.com/windowsmedia/downloads/default.aspx
    下个Windows Media Player SDK,在SDK的帮助文档中可以找到有个接口IWMPPlaylist,这个是用来操作播放列表的,希望对你有所帮助
  • --碧水蓝天
  • 48. re: 什么是用户界面设计(Zt)?
  • 在Media Player ActiveX中有newPlaylist()和setCurrentPlaylist()
    可是总是编译无错误,但运行却不成功。
    请问,怎么才能在VC状态下把VC下一个列表中的数据写入播放列表,并赋给Windows Media Player。
    由于我是初学者,可以的话,给个例子。
    谢谢!
  • --lqicc
  • 49. to lqicc:
  • 象Windows Media Player的播放列表应该是单独的文件来存储的。我大概地看了一下,扩展名为wpl。用UltraEdit打开可以看到是xml格式存储的。所以你只要找到对应的播放列表文件修改就可以。查一查Windows Media Player有没有提供直接的操作列表文件的接口
  • --碧水蓝天
  • 50. re: 什么是用户界面设计(Zt)?
  • 在此问一个Media Player ActiveX的问题,请问怎么才能在VC状态下,把一个列表中的音乐文件,导入Windows Media Player的播放列表中呢?
    或者说,怎么VC 下实现维护Windows Media Player的播放列表。
    谢谢
  • --lqicc
  • 51. re: "线程安全"
  • 模式界曾经有过一次讨论,想把singleton从模式里去掉,用像application context来代替。跟多线程确实没啥太大关系。
  • --Diviner
  • 52. re: xulion
  • singleton is evil是针对singleton不利于程序的可拓展性,不利于单元测试,因为他不容易被mock,跟多线程无关。

    OO的出现使得编写多线程程序更容易了,但是设计者无法保证client使用该类的时候一定是多线程安全的,除非这是个final类,不可修改的类。
    比如:
    Thread A: foo.SetValue(foo.GetValue()+1); 
    Thread B: foo.SetValue(foo.GetValue()+1); 
    Foo类的设计者没有办法保证上面两个操作的线程安全性。

  • --小明
  • 53. re: "线程安全"
  • 越扯越远了。

    本来是讨论概念的。本身线程安全的概念在碧水蓝天的文章结尾已经定义的非常清楚了。线程安全是从client,也就是调用者角度观察的,当然是由接口来实现的。如果仅仅是某个函数安全,这能被称为线程安全么(调用者必须对函数序列进行保护)?

    至于清风雨的说法,我不敢苟同。OO虽然跟多线程是不同的概念,难道OO编程中就不需要考虑多线程?

    为什么martin fowle曾经说"singlton is evil"?不就是针对多线程而言么?

  • --xulion
  • 54. re: "线程安全"
  • C/C++标准对多线程的支持基本上0,没有规定任何赋值的原子性,所以理论上简单的赋值操作如i=0 也可能被CPU执行一半后切换(取决于编译器的实现). ps:JVM标准中就有规定32bit整数的赋值是原子的。
  • --小明
  • 55.  re: 线程安全
  • --清风雨
  • 56. re: 小明&xulion
  • 个人觉得如下代码也是线程安全的.要做到类是线程安全的,基本上只要保证该类的所有接口对共享资源是串行访问即可.
    class Foo
    {
    private: int volatile i;
    public:
    int GetValue() {return i;}
    void SetValue(int x) { InterlockedExchange((long *)&this->i, x); }
    }
    Foo g_data;

    int threadfun(void* param)
    {

    //...
    g_data.SetValue(10);
    ProcessData(&g_data);
    //...
    }
  • --碧水蓝天
  • 57. re: "线程安全"
  • 赞同碧水蓝天的观点。但实际上,我觉得对对象而言,线程安全更多的依赖于其语义。例如这个class Foo,如果出现在下面的代码中,它就是不安全的:
    Foo g_data;

    int threadfun(void* param)
    {
       
       //...
       g_data.SetValue(10);
       ProcessData(&g_data);
       //...
    }

    对于OO来说,线程安全应该面向的不是单一的接口,而是依据接口语义,面向整个接口集。
  • --xulion
  • 58. re: "线程安全"
  • 我这里的同步指的是是否需要调用者采用同步手段来保护接口所访问的共享数据。如果抛开整形变量的赋值操作是否是线程安全的,将代码改为如下,整个类是线程安全的。
    class Foo
    {
    private: int volatile i;
    public:
    int GetValue() {return i;}
    void SetValue(int x) { InterlockedExchange((long *)&this->i, x); }
    }
  • --碧水蓝天
  • 59. re: "线程安全"
  • 个人比较认同xulion的有观点,就是是单CPU,但在多线程环境下,上面的代码还不是安全的,因为单单一个Set操作也可能需要几条指令完成。
  • --兔狸熊
  • 60. re: "线程安全"
  • 至于CSocket/CAsyncSocket的多线程安全,那是另外一个原因,他内部使用了一个helperwindow,里面的数据不是线程安全的,这个可以看一下实现原码就知道原因了,SOCKET句柄本身是线程安全的。
  • --Diviner

阅读排行榜

评论排行榜

什么是用户界面设计(Zt)?

(作者:袁小伟 来自:中国UI设计网)

 在人和机器的互动过程(Human Machine Interaction)中,有一个层面,即我们所说的界面(interface)。从心理学意义来分,界面可分为感觉(视觉、触觉、听觉等)和情感两个层次。用户界面设计是屏幕产品的重要组成部分。界面设计是一个复杂的有不同学科参与的工程,认知心理学、设计学、语言学等在此都扮演着重要的角色。用户界面设计的三大原则是:置界面于用户的控制之下;减少用户的记忆负担;保持界面的一致性。


用户界面设计在工作流程上分为结构设计、交互设计、视觉设计三个部分。

  • 结构设计 Structure Design
      结构设计也成概念设计 (Conceptual Design),是界面设计的骨架。通过对用户研究和任务分析,制定出产品的整体架构。基于纸质的的低保真原型(Paper Prototype)可提供用户测试并进行完善。在结构设计中,目录体系的逻辑分类和语词定义是用户易于理解和操作的重要前提。如西门子手机的设置闹钟的词条是“重要记事”,让用户很难找到。
  • 交互设计 Interactive Design
      交互设计的目的是使产品让用户能简单使用。 任何产品功能的实现都是通过人和机器的交互来完成的。因此,人的因素应作为设计的核心被体现出来。交互设计的原则如下:

  1) 有清楚的错误提示。误操作后,系统提供有针对性的提示。
  2) 让用户控制界面。“下一步”、“完成”,面对不同层次提供多种选择,给不同层次的用户提供多种可能性。
  3) 允许兼用鼠标和键盘。同一种功能,同时可以用鼠标和键盘。提供多种可能性。
  4) 允许工作中断。例如用手机写新短信的时候,收到短信或电话,完成后回来仍能够找到刚才正写的新短信。
  5) 使用用户的语言,而非技术的语言。
  6) 提供快速反馈。给用户心理上的暗示,避免用户焦急。
  7) 方便退出。如手机的退出,是按一个键完全退出,还是一层一层的退出。提供两种可能性。
  8)导航功能。随时转移功能,很容易从一个功能跳到另外一个功能。
  9)让用户知道自己当前的位置,使其做出下一步行动的决定。

  • 视觉设计 Visual Design
    在结构设计的基础上,参照目标群体的心理模型和任务达成进行视觉设计。包括色彩、字体、页面等。视觉设计要达到用户愉悦使用的目的。视觉设计的原则如下:

  1)界面清晰明了。允许用户定制界面。
  2) 减少短期记忆的负担。让计算机帮助记忆,例:User Name,、Password、IE进入界面地址可以让机器记住。
  3) 依赖认知而非记忆。如打印图标的记忆、下拉菜单列表中的选择
  4) 提供视觉线索。图形符号的视觉的刺激;GUI(图形界面设计):Where, What, Next Step
  5) 提供默认(default)、撤销(undo)、恢复(redo)的功能
  6) 提供界面的快捷方式
  7) 尽量使用真实世界的比喻。如:电话、打印机的图标设计,尊重用户以往的使用经验。
  8) 完善视觉的清晰度。条理清晰;图片、文字的布局和隐喻不要让用户去猜。
  9)界面的协调一致。如手机界面按钮排放,左键肯定;右键否定;或按内容摆放。
  10) 同样功能用同样的图形。
  11)色彩与内容。整体软件不超过5个色系,尽量少用红色、绿色。近似的颜色表示近似的意思。

 西门子6688:“确定”按键设计的不一致性

  用户界面设计构筑了产品设计的基础。如只有首先确定了手机菜单的交互形式,才能在造型设计上决定是采用五项键或上下键。

  在国外,用户界面设计人员有了一个新的称谓:Information Architecture,信息建筑师。它不仅仅是指美工,而是具有心理学、软件工程学、设计学等综合知识的人。

posted on 2006-06-16 09:40 碧水蓝天 阅读(3678) 评论(5)  编辑 收藏

评论

# re: 什么是用户界面设计(Zt)? 2006-06-19 09:10 lqicc

在此问一个Media Player ActiveX的问题,请问怎么才能在VC状态下,把一个列表中的音乐文件,导入Windows Media Player的播放列表中呢?
或者说,怎么VC 下实现维护Windows Media Player的播放列表。
谢谢

# to lqicc: 2006-06-19 16:00 碧水蓝天

象Windows Media Player的播放列表应该是单独的文件来存储的。我大概地看了一下,扩展名为wpl。用UltraEdit打开可以看到是xml格式存储的。所以你只要找到对应的播放列表文件修改就可以。查一查Windows Media Player有没有提供直接的操作列表文件的接口

# re: 什么是用户界面设计(Zt)? 2006-06-19 17:56 lqicc

在Media Player ActiveX中有newPlaylist()和setCurrentPlaylist()
可是总是编译无错误,但运行却不成功。
请问,怎么才能在VC状态下把VC下一个列表中的数据写入播放列表,并赋给Windows Media Player。
由于我是初学者,可以的话,给个例子。
谢谢!

# re: 什么是用户界面设计(Zt)? 2006-06-22 09:09 碧水蓝天

你去http://msdn.microsoft.com/windowsmedia/downloads/default.aspx
下个Windows Media Player SDK,在SDK的帮助文档中可以找到有个接口IWMPPlaylist,这个是用来操作播放列表的,希望对你有所帮助

# re: 什么是用户界面设计(Zt)? 2006-06-24 23:48 lqicc

明白,谢谢了!

标题  
姓名  
主页
验证码 *
内容   
  登录  使用高级评论  Top
[使用Ctrl+Enter键可以直接提交]