1. QQ好友里那些离线的图片是用程序代码实现的还是有那样的图片,如果有的话,在哪找?(10分)2.QQ那个有一个图片又有一个箭头的按钮是什么控件? (10分)3. 类似QQ查找按钮和QQ聊天窗口中查看别人详细资料那种按钮,前面一个图片,后面是字的按钮,是哪个?(10分)3. QQ那样的不能改变登陆窗体的大小.是怎么实现的? 如果设置他的最大和最小的话,点那个设置按钮,还是把窗体变大了哦,而且QQ登陆窗体把鼠标放在边框,是不会变成拖动状态的;(20分)4. QQ那样的自动隐藏窗体是怎么实现的?(最好有详细代码)  (50分)

解决方案 »

  1.   

    1. QQ好友里那些离线的图片是用程序代码实现的还是有那样的图片,如果有的话,在哪找?(10分)
    :是代码实现.其它图片可以在安装路径下找到.
    2.QQ那个有一个图片又有一个箭头的按钮是什么控件? (10分)
    :是个图片.相当于我们平时做的树控件(TreeView).
    3. 类似QQ查找按钮和QQ聊天窗口中查看别人详细资料那种按钮,前面一个图片,后面是字的按钮,是哪个?(10分)
    :vs2005中的winform的Button就可以做成那种效果(前面是图片,后面是文本).
    3. QQ那样的不能改变登陆窗体的大小.是怎么实现的? 如果设置他的最大和最小的话,点那个设置按钮,还是把窗体变大了哦,而且QQ登陆窗体把鼠标放在边框,是不会变成拖动状态的;(20分)
    :winform里有这一项窗体设置(FormBorderStyle属性,有实现这一功能的选项).
    4. QQ那样的自动隐藏窗体是怎么实现的?(最好有详细代码)  (50分)
    :调用系统的API(腾讯公司是和微软经常打交道的).
      

  2.   

    第2个问题,你误解我的意思了,我说的不是那个树状,而是Toolbar里的DropDownButton 一样的按钮.
      

  3.   

    1.代码怎么实现图片变灰?
    :图片变灰应该是在服务器端设置的,可以html代码把图片变灰.(可以把好友列表看作是网页).
    3.我用的2003,能不能做出那样的效果,,按钮与窗体是平行的
    :2003好像不行.
    4题有没有详细点的代码呀?
    :
    http://www.sooweb.net/Article/Developer/VB-VB.NET/10825.html
      

  4.   

    2.QQ那个有一个图片又有一个箭头的按钮是什么控件? (10分)
    :vs2005WinFrom的工具箱里有一ToolStrip控件,里面ToolStripDropDownButton就是那种右边带一下拉箭头的控件.
      

  5.   

    http://zhidao.baidu.com/question/3804050.html?fr=qrl3
      

  6.   

    1问题,我写的是应用程序,我是在服务端,保存的只是好友的图片的索引,而客户端加载图片.要怎么做,才能让程序读取的是变灰的图片?
    :vs2005中每个窗体都有一个.resx文件,这个文件可以存储你要用的图片,字符串等资源,这样程序运行时,可以轻松地更换图片(有访问这资源文件的类).不过,你设置他不为可用时系统可能会自变为灰色.如果这样不行,你就再找一个灰色图片.
    3问题:2003不行的话,有没有其他什么控件可以使用呀?
    :.net2003的winform功能不强大,是.net架构师现在的一个遗憾,原因当初没有重视它.
    实在不行,就到网上去找...
      

  7.   

    3、MaximizeBox属性设为false
    FormBorderStyle属性设为FixedSingle4、简单点的,拖个timerprivate void Form1_Load(object sender, System.EventArgs e)
    {
    timer1.Start();
    }private void timer1_Tick(object sender, System.EventArgs e)
    {
    if (this.WindowState != System.Windows.Forms.FormWindowState.Minimized)
    {
    if (Cursor.Position.X > this.Left && Cursor.Position.X < this.Right && Cursor.Position.Y > this.Top && Cursor.Position.Y < this.Bottom)
    {
    if (this.Top < 0)
    {
    this.Top = -5;
    this.Show();
    }
    else if (this.Left < 0)
    {
    this.Left = -5;
    this.Show();
    }
    else if (this.Left + this.Width >= Screen.PrimaryScreen.WorkingArea.Width)
    {
    this.Left = Screen.PrimaryScreen.WorkingArea.Width - this.Width + 5;
    this.Show();
    }
    }
    else
    {
    if (this.Top <= 4)
    {
    this.Top = 5 - this.Height;
    if (this.Left <= 4)
    {
    this.Left = -5;
    }
    else if (this.Left + this.Width >= Screen.PrimaryScreen.WorkingArea.Width - 4)
    {
    this.Left = Screen.PrimaryScreen.WorkingArea.Width - this.Width + 5;
    }
    }
    else if (this.Left <= 4)
    {
    this.Left = 5 - this.Width;
    }
    else if (this.Left + this.Width >= Screen.PrimaryScreen.WorkingArea.Width - 4)
    {
    this.Left = Screen.PrimaryScreen.WorkingArea.Width - 5;
    }
    }
    }
    }另外如果要效果好点的,8J写了一个组件,可以试下
    http://www.cnblogs.com/Red_angelX/archive/2007/05/15/747417.html
      

  8.   

    跟着lz和ERPCoder(Most Valuable Player)学习了不少知识哈~~
      

  9.   

    最近也在做类似QQ的程序
    深度肯定没有lz高啦
    跟着lz的帖学了不少
    向各位高手学习~~
      

  10.   

    第四个其实很简单:
    在窗体移动的时候判断,如果是靠近屏幕边缘,就把窗口隐藏。另外在鼠标移动事件判断,如果鼠标靠近隐藏的窗口,就显示出来。
    简单地写下代码:protected bool isHide;        private void Form1_Move(object sender, EventArgs e)
            {
                if (this.Top < 20)  //如果窗口靠近屏幕顶
                    isHide = true;
                else
                    isHide = false;
            }        private void Form1_MouseMove(object sender, MouseEventArgs e)
            {
                 //鼠标移入时显示窗体
                if (isHide)
                    this.Top = 0;
            }        private void Form1_MouseLeave(object sender, EventArgs e)
            {
                if (isHide)
                  //鼠标移出时隐藏窗体,也就是把窗体移出到屏幕上方,使底部在屏幕顶
                    this.Top = 10 - (this.Height);
            }
    这段代码实际上有问题,因为MouseMove事件对鼠标在标题栏等情况无效。我这里只是写个意思出来。更好的方法是API,重载WndProc,响应WM_MouseMove和WM_NCMouseMove消息。当然要先SetCapture(),使窗体能接受所有鼠标消息。然后用GetCursorPos()得到鼠标位置,判断是否在窗体上,决定是显示还是隐藏窗体。
        具体的代码今晚懒得写,如果需要,明天有空再写。另外,如果要窗体不能调整大小,只要设
    this.FormBorderStyle = FormBorderStyle.Fixed3D;
    this.MaximizeBox = false;
    就可以了
      

  11.   

    第一个问题,使图片变灰,可以用GDI+实现。你也可以看看这个:http://www.hsip.cn/soft/11/2006/1D8143688466.html
    在QQ的早期版本,自带的头像,每个头像都是有三种,彩色(在线),灰色(离线),还有一个是离开状态的。 现在的QQ能自定义头像,所以可能灰色图是动态生成的。按钮控件的问题,如果03里面没有,自己继承Button,写一个也不是很麻烦。GDI+画界面也挺方便。
      

  12.   

    建议WPF 会很快的做好
      

  13.   

    http://www.cnblogs.com/lovecherry/archive/2007/02/09/645917.html
      

  14.   

    ......我要源码啊...传给我一下..
    [email protected]