自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 activity的task总结

Intent几种常见的flags:1.FLAG_ACTIVITY_NEW_TASK//根据affinity寻找或创建一个新的task来放置目标Activity,可以防止不同affinity的activity处于同一个task中2.FLAG_ACTIVITY_CLEAR_TOP//如果在栈中发现存在Activity实例,则清空这个实例之上的Activity,使其处于栈顶3.FLAG_AC

2015-10-10 10:57:39 412

原创 界面库对大dpi的支持

首先,通过调用SetProcessDpiAware或者配置manifest,让进程对dpi感知,这样在大dpi时,操作系统就不会虚拟dpi(模糊放大我们的界面),我们就能自己完全控制界面的dpi效果。操作系统的dpi只是一个系统的参数变量,并不会对我们的界面效果产生影响,要支持大dpi的界面效果,需要界面库按照当前dpi的大小,将界面的元素放大到对应的比例。我认为需要处理以下方面:

2014-11-06 11:18:35 618

原创 跨线程弹出菜单

大家知道,调用TrackPopupMenu弹出菜单时,要求调用这个api的线程和接受菜单消息的窗口属于同一个线程,不然菜单不能成功的弹出。我最近的一个项目里,就遇到了这个问题:要在UI线程弹出菜单,但是接收菜单消息的窗口在另外一个逻辑线程。为了能够正常弹出菜单,我们一开始的想法是规避这个问题,让菜单在同一个线程工作,但是这样对现有的架构改动比较大。我最后是这样解决这个问题的:1.创

2011-12-15 23:15:44 358

原创 使用layered窗口实现界面动画

现在流行的界面,基本都会支持动画效果,如果你的界面库没有这方面的支持,可以使用layered窗口,实现一些动画效果。先来介绍下常用的几个基本的动画效果:1.闪动的图标,用于指引用户点击。2.播放一个简单的动画:比如一个垃圾桶按钮点击后,会动态打开,甚至会从里面飞出来一

2011-09-24 12:42:46 509

原创 Aero自绘窗口标题,保留系统按钮

1.自绘标题,保留系统按钮窗口style需要是WS_OVERLAPPEDWINDOW  我之前用了WS_OVERLAPPED|WS_SYSMENU|WS_MINIMIZEBOX|WS_MAXIMIZEBOX|WS_BORDER|WS_CAPTION;没有WS_THICKFRAME,开启Aero时,界面启动后会有一个白边框,刷新后正常。2.aero时窗口的透明效果在激活和非激活时是不同的,如果你的界

2011-06-29 10:05:00 1057

原创 定时器的使用

前段时间开发浏览器的标签动画,效果类似chrome的标签动画,遇到了一个问题:没有合适的定时器。如你所知,windows的wm_timer优先级太低,导致动画无法按照预期的帧数绘制。我当时的解决方法是自己起线程,在线程里通过sleep来模拟定时间隔,然后sendmessage到界面线程来驱动动画过程。为了优化,我在每次动画停止时也销毁定时器线程。最后的效果在xp系统上看起来不错,但

2011-06-28 10:23:00 245

原创 GDI绘制png

最近做的一个项目,用GDI+来做绘制,最后发现效率很慢,和GDI的效率相差不止一个数量级。最后决定还是用GDI来绘制。问题很快出现了,以前的很多效果是带alpha透明的png来贴图实现的,这用GDI+很容易做到,但是用GDI就很麻烦了。我想了一个折中的办法,是这样做的:用GDI+把png加载起来,然后生成一个32位的带alpha通道的位图,然后使用GDI的alphablend进行绘制。

2010-09-28 21:26:00 1653 3

原创 局部透明窗口的实现

经常能看到一些软件弹出局部透明的窗口,看起来很轻很薄,其实实现起来也很简单。1.窗口全透明,用SetLayeredWindowAttributes设置alpha。2.窗口局部透明     如果不带子窗口,用UpdateLayeredWindow很容易就能实现。  如果有子控件,用UpdateLayeredWindow后子控件的绘制会出问题。有个巧妙的方法可以解决这个问题:假设A窗口

2010-09-28 21:15:00 1818

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除