在对话框中放置按钮,给按钮加载了位图,为什么按钮没有下按的功能了???像是纯图片一样?请各位指点下!!!

解决方案 »

  1.   

    我看明白了,你是说按下按钮是没有凹陷的效果对吧,按钮被贴了位图都是这样的,如果你想有下按的效果你需要设置下按位图,还有鼠标略过时的位图等等
    类向导为按钮声明一个变量 CButton   btn;
    在头文件里找到 CButton   btn; 把CButton  btn; 改为 CBitmapButton btn;
    然后在初始化函数里  btn,LoadBitmap(1,2,3,4);1234分别代表不同状态下的位图ID,具体哪个对应那个自己百度一下LoadBitmap 函数吧!
      

  2.   

    补充说明下:
    首先我把按钮属性中owner Draw设为true
    再对话框加了个CBitmapButton类型的m_btn变量;在对话框onInitDialog中加:m_btn.AutoLoad(按钮ID,this);
                            m_btn.LoadBitmap(位图ID);
                            m_btn.RedrawWindow();
    请问,这么做为啥按钮还没有按下去的效果呀?普通按钮点下有,我是不是把它彻底变成图片了呀???请各位再给点指点。搜百度对不上号!!!
      

  3.   

    问题解决,给分了
    一、一个按下去效果,其他按钮弹起(用CheckBox控件)
    1、每个按钮关联一个CButton变量,属性Bitmap为true,push link为trueHBITMAP hBitmap=::LoadBitmap(AfxGetInstanceHandle(),  MAKEINTRESOURCE(IDB_BITMAP_Pictrue));
    m_checkbtn.SetBitmap(hBitmap);注意:当一个文件中有多各按钮用同种方法时,hBitmap要用不同的,可以用hBitmap1、、2、、、32、为每个按钮加位图同上3、判断哪个按钮被按下,编写弹起所有按钮函数SetAllButFalse()
    {
    if (m_CheckBut_1.GetCheck())
    {
    m_CheckBut_1.SetCheck(FALSE);
    } if (m_CheckBut_2.GetCheck())
    {
    m_CheckBut_2.SetCheck(FALSE);
    }
    .
    .
    .
    .
    }
    4、在每个按钮单击事件中调用SetAllButFalse(),同时使用m_CheckBut_1.SetCheck(TRUE);按下效果二、用CheckBox控件实现按钮的单击效果
    前二步同上
    第三步不用判断,直接SetCheck(FALSE)
    第四步不用SetCheck(TRUE)