小弟最近要作一个小的图片浏览,效果如下: ---------------------------
¦                            ¦ 
¦                            ¦ 
¦                            ¦ 
¦                            ¦ 
¦                            ¦ 
¦                            ¦ 
¦                            ¦ 
¦                            ¦ 
¦                            ¦ 
¦                            ¦ 
¦                            ¦ 
¦                            ¦ 
¦                1 2 3 4 ¦ 
---------------------------(不会贴图,做了一个示意,犹如 http://www.csdn.net/ 首页上的左边的图片渐变) 不知道,我说得清不清楚。 不过,不是用网页实现,而是用VC++实现。点击“1,2,3,4”,显示相应的图片。 我会做向控件上贴图,可是不知道怎么显示“1,2,3,4”。 还请各位达人指点一二。 

解决方案 »

  1.   

    用Tab Control可以实现类似的效果吧!
    点击相应的标签,加载相应的图片!
    LZ不妨试试看!
      

  2.   

    可以用LS的方法。或者自己派生一个CStatic类来显示图片,再创建若干按钮(或静态文本控件),指定CStatic类为其父控件,在CStatic类中响应按钮的点击时间用SetBitmap切换图片。
      

  3.   


    这个意见好像比较适合我的水平,正在钻研。问一个初级问题,创建“若干按钮”在 “CStatic类”相应 什么 消息的时候 创建 比较合适呢???(有没有 什么 小例子 可以作为参考呢)
      

  4.   

    重载CStatic类的PreSubclassWindow函数。
      

  5.   

    多谢 cnzdgs 的指点。可是还是发现一个问题:按钮(CButton)我放在了图片的右下角(内),可是 在自动刷新图片的时候,按钮被覆盖了。可是点击之后,按钮又能显示出来了。据说是Z-order的问题,可是 SetWindowPos 函数 应该在哪里调用 才可以呢。
      

  6.   

    创建按钮时将CStatic指定为其父控件了吗?
      

  7.   

    DrawText 绘制文字就可以了
      

  8.   


    因为背景在不断渐变,刷新,所以 DrawText 的内容,很快被覆盖。还是想 做成 “两层”的意思,上层 放透明控件,下层图片渐变。那么以后还可以满足别的需求,比如按钮“1,2,3,4,5”做成前后箭头,或别的什么。
      

  9.   


    指定了呀。重载了 PreSubclassWindow(),函数。
    {
        ....
    btn_pic1.Create(_T("100"),   WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,     
            CRect(0,50,30,70),   this,   30001); 
    }图片显示是别人做的,简单理解为 “送出一个HDC,得到一个渐变的图片刷新”。我只是需要做“1,2,3,4,5”的部分。别人画图的接口为:“void DrawImage(HDC hdc); ”
      

  10.   

    给Static控件加上WS_CLIPCHILDREN风格试试,如果不行就在显示完图片之后调用各个按钮的Invalidate函数。