大家都用过按钮类CBuuonST示例源代码吧,我看了下它的实现,其中给对话框的背景加载图片Sky.bmp的函数ShadeButtonST.cpp中,对话框的初始化函数OnInitDialog中有SetBitmap(IDB_SKY),这个函数不是CBackgroundUtil中吗?为什么在这里可以直接调用呢?是不是哪里有什么声明?我在同样的地方利用这个函数,却抱错SetBitmap没有定义,请大家指教,谢谢!

解决方案 »

  1.   

    其中按钮类CBuuonST源代码在这里,希望大家帮忙看看,谢谢!
    http://www.vckbase.com/document/viewdoc/?id=518
      

  2.   

    SetBitmap主要是设置btn所在窗口的背景图片, st有一个函数是
    btn.DrawTransParent();其功能是让按钮成为透明的. SetBitmap就是设置透过按钮能看到什么.
    当然这个函数必须和一个对话框类CBkDialogST配合使用
      

  3.   

    你只所以出错,就是因为没有引入CBKDialogST!
      

  4.   

    看了下,我引入了CBKDialogST啊,有BKDialog.h,不过我不知道为什么在CDlgTransparent类里可以直接用CBackgroundUtil类的SetBitmap(IDB_SKY),编译器是怎么知道这个方法是哪个类的呢?前面也没有加类的修饰呀.
      

  5.   

    allenhiman(YadWe),谢谢帮忙,可是我的还不行,不妨你试一下,在下载下来的实例中再新插入一个对话框,然后在对话框的OnInitDialog()中调用SetBitmap(IDB_SKY);也会出现错误:error C2065: 'SetBitmap' : undeclared identifier,Error executing cl.exe.我不明白为什么在CDlgTransparent对话框中可以,却在其它的却不行,是不是其它的地方有设置,可是我一直没有找到,谢谢帮忙,急,分不够可以在新开一贴,谢谢帮忙。
      

  6.   

    你不会没修改刚插入的对话框的基类吧? public CDialog?
    如果是这样的话,应该把所有的CDialog改成CBKDialogST,还要注意包含头文件