对话框上加图片,图片覆盖了对话框上的按钮。怎么有时按钮会显示不出来,如何能让按钮总是显示在最上层?

解决方案 »

  1.   

    图片是背景?还是在一个图片控件上?dialog上面的控件是可以进行Z排序的
      

  2.   

    设置TAB   order ?  如何设
      

  3.   

    按钮显示不出来是因为窗口是局部刷新的,当按钮只被挡了一部分以后只会刷新变了的那一部分,
    你在ONPAINT里面贴图的时候要注意判断是不是需要刷新
    在每次控件刷新前贴你的图,或者重写控件刷新函数
    自己刷新图片的方法:
    1、用GetUpdateRect(&udRect,1);得到刷新矩形区,记得这个函数用放在ONPAINT最前面调用才有用。
    2、把你的背景图片按窗口比例得到这一部分图片,切下来以后再在控件刷新前把这块图片贴一次。
    tempDC.StretchBlt(0,0,710,480,&dcCompatibale,0,0,map.bmWidth,map.bmHeight,SRCCOPY);这个用来变形
    pDC->BitBlt(udRect.left,udRect.top,udRect.Width(),udRect.Height(),&tempDC,udRect.left,udRect.top,SRCCOPY); 用来切
      

  4.   

    vc6.0的话
    在layout->tab order 点击控件先后顺序就是ORDER
      

  5.   

    可我用这个办法就是不行,主要是一个按钮,不管TABORDER靠前靠后,就是不显示,按钮设置一切正常。
      

  6.   

    用处理WM——CTRLCOLOR消息的函数试一下,将图片设定为画对话框的背景的画刷,在消息处理函数中改变它的返回值为设定的画刷
      

  7.   

    你图片是放在对话框上还是对话框的控件上,如Picture? 前者的话,我好像没出现过这种问题,如果是后者,看看是不是你这放图片的控件把按钮给覆盖了
      

  8.   

    对话框的控件上Picture, 图片的控件把按钮给覆盖了,但希望按钮露出来。