微软的每一个产品,无论功能还是界面设计都会带给我们一定的惊喜,比如officexp、office2003、messenger的界面设计,早已成为众多软件竞相模仿的对象,就拿messenger来说,我就见过好几套网络视频会议的软件都借鉴了它的界面风格。
前段时间因为要在原来的软件上增加一个快捷键提示窗体,这个提示窗要求在显示的时候比较醒目美观能引起用户注意,显示后不影响用户操作,能够关掉。很自然的就想到了messenger那个从屏幕右下角逐渐弹出的消息提示窗体,不过相对messenger我更喜欢qq2004奥运版的配色风格,反正都是偷就多偷点吧,下面快捷键提示窗的最终效果:

这个窗体有以下几个特点:
1、显示的时候是从屏幕右下角逐渐弹出的;
2、它是个无标题窗体,但它必须允许用户移动和改变大小,因此要用到无标题窗体拖动、改变大小的技术;
3、它是个不规则的窗体,主要是左上角和右上角是圆形导角,因此要为窗体创建外形,且窗体改变大小时必须重建;
4、它标题和内容显示区都有渐层色,标题还有几个小点点,在实现时使用取巧的方法,直接利用截图进行填充。
当然界面可以偷,代码就得老老实实的写的了,下面是界面设计图和实现代码:

| 界面formpshotkey.frm内容 [内容较长,请点击此处找开/折叠] |
|
object frmpshotkey: tfrmpshotkey left = 192 top = 107 borderstyle = bsnone caption = '快捷键提示' clientheight = 168 clientwidth = 343 color = clwhite constraints.minwidth = 350 font.charset = gb2312_charset font.color = clwindowtext font.height = -12 font.name = '宋体' font.style = [] formstyle = fsstayontop oldcreateorder = false oncreate = formcreate onpaint = formpaint onresize = formresize designsize = ( 343 168) pixelsperinch = 96 textheight = 12 object imgtitlebar: timage left = 0 top = 0 width = 343 height = 12 cursor = crsizeall align = altop autosize = true center = true picture.data = { 07544269746d6170ee010000424dee010000000000006e000000280000003900 00000c000000010004000000000080010000120b0000120b00000e0000000e00 0000d79d8b00a83a1700f8e6d600c9775e00f6dfcb00faede200f4d7be00f5da c200ead2bf00fcf5ee00fefbf800be796b00ffffff0000000000bbbbbbbbbbbb bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb000d0d0888888888888 888888888888888888888888888888888888888888888000bbbb666666666666 6666666666666666666666666666666666666666666660008888777777777777 777777777777777777777777777777777777777777777000666644cc44cc44cc 44cc44cc44cc44cc44cc44cc44cc44cc44cc44cc44cc40007777231c231c231c 231c231c231c231c231c231c231c231c231c231c231c200044cc503550355035 503550355035503550355035503550355035503550355000231c999999999999 9999999999999999999999999999999999999999999990005035aaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa0009999cccccccccccc ccccccccccccccccccccccccccccccccccccccccccccc000aaaabbbbbbbbbbbb bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb000ccccbbbbbbbbbbbb bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb000bbbb} onmousedown = imgtitlebarmousedown onmousemove = imgtitlebarmousemove end object imgtitlebarbg: timage left = 248 top = 32 width = 7 height = 12 autosize = true picture.data = { 07544269746d617092000000424d920000000000000062000000280000000700 00000c000000010004000000000030000000120b0000120b00000b0000000b00 0000f4d7be00f8e6d600f6dfcb00f5dac200ead2bf00fcf5ee00fefbf800faed e200be796b00ffffff0000000000888888804444444000000000333333302222 222011111110777777705555555066666660999999908888888088888880} visible = false end object imgshapebg: timage left = 280 top = 48 width = 3 height = 56 autosize = true picture.data = { 07544269746d6170da010000424dda01000000000000fa000000280000000300 0000380000000100080000000000e0000000120b0000120b0000310000003100 000000000000ffffff00fffcfc00fffdfd00fff9f800fffaf900fffbfa00fff6 f300fff7f400fff9f700fffcfb00fff0ea00fff3ee00fff5f100fffaf800ffe5 d900ffe7dc00ffe9df00ffebe200ffede500ffeee600ffefe800fff0e900fff2 ec00fff4ef00fff6f200fff8f500ffe5d800ffe6d900ffe6da00ffe7db00ffe8 dc00ffe8dd00ffe9de00ffeae000ffebe100ffece300ffede400ffefe700fff1 ea00fff3ed00fff5f000fff7f300fff9f600fffbf900fffdfc00ffe9dd00ffec e200fff2eb001b1b1b000f0f0f001c1c1c001d1d1d001d1d1d001e1e1e001e1e 1e00101010001f1f1f00202020002e2e2e002121210011111100222222002222 220023232300121212002f2f2f00242424002525250013131300141414001414 14002626260015151500161616000b0b0b002727270030303000171717002828 28000c0c0c001818180018181800292929000d0d0d0019191900070707002a2a 2a00080808001a1a1a001a1a1a002b2b2b0009090900040404000e0e0e000505 05002c2c2c0006060600060606000a0a0a000a0a0a00020202002d2d2d000303 030003030300} visible = false end object speedbutton1: tspeedbutton left = 323 top = 16 width = 14 height = 14 anchors = [aktop, akright] flat = true glyph.data = { 8a000000424d8a00000000000000420000002800000009000000090000000100 04000000000048000000120b0000120b00000300000003000000be604200ffff ff00000000001111111110000200100111001000111110001000100010011100 0001100010001110001110001100110000011000111010001000100011001001 1100100010001111111110001001} onclick = speedbutton1click end object label1: tlabel left = 16 top = 24 width = 60 height = 12 caption = '快捷键提示' font.charset = gb2312_charset font.color = clwindowtext font.height = -12 font.name = '宋体' font.style = [] parentfont = false transparent = true end object label2: tlabel left = 16 top = 99 width = 294 height = 12 caption = 'a:光标在“编号”列时,切换数据类型为“步骤类型”' transparent = true end object label3: tlabel left = 16 top = 118 width = 318 height = 12 caption = 'b:光标在“编号”列时,切换数据类型为“工艺要求类型”' transparent = true end object label4: tlabel left = 16 top = 138 width = 294 height = 12 caption = 'c:光标在“编号”列时,切换数据类型为“用料类型”'
本文关键:制作从屏幕右下角逐渐弹出的消息提示框
本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)
|