分少可以再加。
问题如标题,所有CStatic均是动态生成,代码:
CStatic* m_static[3];  //成员变量
for(int i=0;i<3;i++)
{
  m_static[i]=new CStatic;
  bmp[i].LoadBitmap(i+26);
  m_static[i]->Create("",WS_CHILD|WS_VISIBLE|SS_BITMAP|SS_CENTERIMAGE|SS_NOTIFY,CRect(40+20*i,200,112+20*i,296),this,i);
}
下面是响应代码:
BOOL CMyView::OnCommand(WPARAM wParam, LPARAM lParam) 
{
CString str;
str.Format("%d",wParam);
AfxMessageBox(str);
return CFormView::OnCommand(wParam, lParam);
}
结果:我点第一个报0,正确;
       点第二个报0,不正确,应报1;
       点第三个报1,不正确,应报2;
怎样处理才能正确报0,1,2呢?请高人指点。

解决方案 »

  1.   

    for(int i=2;i>=0;i--)
    {
      m_static[i]=new CStatic;
      bmp[i].LoadBitmap(i+26);
      m_static[i]->Create("",WS_CHILD|WS_VISIBLE|SS_BITMAP|SS_CENTERIMAGE|SS_NOTIFY,CRect(40+20*i,200,112+20*i,296),this,2-i);
    先创建第三张扑克。
      

  2.   


    我动态生成了四张扑克(CStatic载了图片),每张都重叠了前一张的部分位置,TAB顺序是递增的,所以后生成的遮住了先生成的部分,但响应鼠标却是先生成的(指重叠部分),应该是先生成的TAB顺序小的缘故,所以想请教:我的需求是后生成的应优先看见,优先响应,请问该如何解决?