一般情况下,程序的标准状态下,任务栏标题与软件标题是一致的,例如软件标题为“Windows Media Player”,那么任务栏上的也是一样但我现在需要任务栏的标题随意更改,而标题栏不变,该如何实现呢?例如,任务栏标题显示百比进度,而软件标题栏则仍然显示软件名

解决方案 »

  1.   

    那就来个仿冒品了.把你程序的标题隐藏起来,用PictureBox Or other 做一个假的标题栏
      

  2.   

    不使用自建标题栏,通过API能解决吗?我看到不少软件也可以这样,并不是自建标题栏的
      

  3.   

    例如 DVD Decrypter 就是,复制DVD时任务栏显示的就是百分比
      

  4.   

    楼主是如何确定DVD Decrypter 的标题栏不是伪造的?
      

  5.   

    因为其使用的是Windows 标准界面,更换XP样式时界面同样改变。
      

  6.   

    如果是自做标题栏,系统样式更换是不会有响应的,DVD Decrypter应该是利用拦截窗口消息来实现的,至于是拦了哪部分,就有待大侠们发掘了。可以肯定的是它不是用自做标题栏的,用过这个软件就知道。
      

  7.   

    我尝试过用timer修改窗体的字符,但修改完了之后,任务栏又变回来了
      

  8.   

    昨天用FlashFXP发现它的任务栏显示下载进度,而主窗口显示FlashFXP标题栏上的窗口只是马甲,left=-32000,top=-32000,不在屏幕上显示主窗口并不显示在任务栏上,而是被马甲带出来的
      

  9.   

    楼上,如果是这样,焦点转换将相当复杂,我尝试了一下,是不行的。当点击任务栏上的窗口时,如何保证显示的是真窗口?
    而点击真窗口最小化时,真窗口需要隐藏,这时的窗口动画是不一样的,由于真窗口没有任务栏,所以会先归缩到左下角然后才消失。DVD Decrypter 的焦点转换没有这种现象,就像普通窗口一样。
      

  10.   

    我想到个办法,新建工程,新建个窗口FORM2
    FORM1的ShowInTaskbar属性设为FALSE
    FORM2 ShowInTaskbar属性设为true
    Form1中代码:Private Sub Form_Load()
    Form2.Top = 50000
    Form2.Left = 50000
    Form2.Show
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
    Unload Form1
    Unload Form2End SubForm2中代码:Dim n As Integer
    Private Sub Timer1_Timer()
    If n > 30000 Then n = 0
    n = n + 1
    Me.Caption = n
    End Sub完--------------
    非常easy!!!
      

  11.   

    To zzyong00(阿勇) :
      应该先启动 Form2,再模态显示 Form1,将 Timer 移动到 Form1 中,这样点任务条焦点就会定位到 Form1 上