picture用CStatic类怎样实现当down 控件是换一位图而up控件时又返回原位图!
我做了一个在picture控件上的单击消息,可只是实现了点一次才切换一次位图,而我要的是像CBitmapButton中的LoadBitmaps()的效果!请问如何做到?我是初学者!
void CDlgDlg::OnStaticBit() 
{
// TODO: Add your control notification handler code here HBITMAP hbitmap[2];
static int i=1;
     hbitmap[0]=::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP1));
     hbitmap[1]=::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP2));
    if(i!=0)
{
m_pic.SetBitmap(hbitmap[i]);
i=0;
        }        else
{
  m_pic.SetBitmap(hbitmap[i]);
  m_pic.UpdateWindow();
  i=1;
}

解决方案 »

  1.   

    派生子类,重载OnLButtonDown和OnLButtonUp事件,分别载入不同图片。
      

  2.   

    也可以通过 PreTranslateMessage(MSG* pMsg) 来截住消息,判断是鼠标down与UP的时候,换图片;
    不过,要判断点是否在控件里面!
      

  3.   

    在dialog通过PreTranslateMessage过滤按钮的WM_LBUTTONDOW/WM_LBUTTONUP分别载入需求的图片,难度比1楼的大,但确是正常的做法;
    1楼的派生生成自己按钮类简单明了,可以选择,看楼主的想法了。
      

  4.   

    1楼说得对,直接给CStatic控件派生一个子类
    然后在这个类中处理OnLButtonDown和OnLButtonUp事件
    当down时装载第一幅,当up时装载第二幅就行了。