saptechnique

Better late than never. - 郭富

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2011年11月16日

摘要: 有人可能会问,客户区延伸至非客户区到底有什么意义。有些程序在布局上比较紧凑或者希望更美观等,无关紧要的菜单项希望能放到标题栏等非客户区,Form窗体控件本身并没有提供此功能。在这之前,有把窗体FormBorderStyle设为None重新绘制标题栏。还有文章通过调用“User32.dll”中的GetWindowDC函数和ReleaseDC函数来实现在标题栏上添加控件,这种方式虽然完全能在非客户区绘制,但是弊端便是无法在vista和windows7下透明主题时显示非客户绘制的内容,因为在透明主题下Aero会把非客户区从GDI+剥离出来让DirectX进行渲染。 传统方式(网络收集):显示代码 . 阅读全文
posted @ 2011-11-16 15:49 guofu 阅读(332) 评论(0) 推荐(0) 编辑

摘要: 代码/// <summary> /// 替换全角字符为半角 /// </summary> /// <returns></returns> public static string ReplaceSBC2DBC(string input) { // 全角正则 string pattern = @"[\uFF00-\uFFFF]"; string result = Regex.Replace(input, pattern, new MatchEvaluator(delegate(Match match) { return ToDB 阅读全文
posted @ 2011-11-16 14:44 guofu 阅读(302) 评论(0) 推荐(0) 编辑

摘要: 注:感谢Aleax博友提出的Bug(见#7楼),现已纠正,纠正的内容会在要点里说明,修改过的源码已附上,也谢谢各位博友提出的意见和方法,当然方法有很多种,这只是其中一种非常简单和直接的方法,给初学者一点参考,望大家多多提意。效果图一 准备工作两张透明的png图片(尺寸73 x 81),一张用于鼠标进入控件时显示,一张用于鼠标单击控件时显示。 新建自定义控件,在构造函数中添加代码 public GlassButton() { SetStyle(ControlStyles.DoubleBuffer, true); /... 阅读全文
posted @ 2011-11-16 08:37 guofu 阅读(377) 评论(0) 推荐(0) 编辑