我用的是自带的按钮控件,之前是用标题来显示按钮的类别,获取按钮的标题函数是用(* a_button).GetWindowText(str1);
但是现在我想用位图来显示按钮。我将所有的这些
(* b_button).SetWindowText(str2);改为:(* b_button).SetBitmap((HBITMAP)bitmap2); 
但是这个(* a_button).GetWindowText(str1);原来是用来获取按钮的标题字符串的,现在我想获取按钮的位图,有哪个函数可以代替掉?
请有知道的人告诉我吗?
可能我说得有点模糊,哪里不不清楚请指出来,我可以详细解说!

解决方案 »

  1.   

    @天罡鹦鹉
    不是文字和图片的显示问题!
    事实是我之前用的字符串修改标题来分辨按钮,而今我想用位图将原先按钮上显示的标题字符串替换掉,至于其他代码我都能像上面那样改,但是原来获取按钮标题的GetWindowText(str1)这个函数我不知道该用哪个函数来替换掉!
      

  2.   

    嗯,我明白你要做的事。
    我的意思是你可以换种方式实现,并不是一定去找一个函数替代,而是新增一个变量,用变量的值代替字符串,也就是说,你需要新定义变量,然后在原来对按钮设字符串的地方,也就是现在设图片的地方对变量赋值。这时,你需要根据字符判断的地方就可以直接判断变量值。并且,我觉得这种方式更合逻辑。如果你非要找那个对应的函数。好像CButton::GetBitmap()这个可以。但是,获取到的是句柄,你必须有一个原始值的来进行判断。也就是,那种图片的句柄是什么,第一次加载进来时,你要记下来。但还是建议你用变量方式,你也可以自己从CButton继承,把变量封进去。如果有多个按钮这样好像更好。
      

  3.   

    @天罡鹦鹉
    我不太了解你意思,但是我那个函数需要实现的就是从界面的代码中获取界面上按钮的标题,也就是从前台到后台的传递,所以这个获取的函数是必须要用到的。至于CButton::GetBitmap()你说是获取句柄,句柄是不是就是ID?
      

  4.   

    用位图来显示按钮,应该是需要重绘的,你的方式应该不行。
    重绘按钮的时候,需要我们新建一个CButton类(当然基类必须是CButton类),然后重写这个类的DrawItem这个虚函数。具体步骤是:
    ①、新建一个CButton类,基类是CButton
    ②、在这个新建的类中,新增一个函数,即是DrawItem,在里面写上重绘的代码,至于怎么写,你可以四处搜寻并思考
    ③、让需要被重绘的按钮绑定变量,其中,变量基于我们新建的那个CButton这个类
    ④、然后这个按钮的Owner Draw属性,要设置为TRUE即可
      

  5.   

    句柄可以看成是一种ID,是资源在内存中的索引,是WINDOS管理资源的一种方式。通过句柄可以访问资源,就像通过指针可以访问内存一下。
    (* b_button).SetBitmap((HBITMAP)bitmap2);你设置这个东西就是句柄。
      

  6.   

    好吧,我发现我的想法实现不了了。
    因为原先的语句里面有str1=str2;的语句,但是CBitmap变量是没有等号赋值的,所以我的构思是行不通的,在此谢谢(天罡鹦鹉)和(博☆艺)热心指点,就此结贴……