制作从屏幕右下角逐渐弹出的消息提示框[1]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 nhconch 的 blog

  微软的每一个产品,无论功能还是界面设计都会带给我们一定的惊喜,比如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:光标在“编号”列时,切换数据类型为“用料类型”'

本文关键:制作从屏幕右下角逐渐弹出的消息提示框
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top