注册 登录
编程论坛 VC++/MFC

怎样对动态创建的按钮添加双击响应

lwenfa 发布于 2011-10-31 11:18, 778 次点击
我动态创建了64个按钮,并对他们添加了单击响应,怎么对他们添加双击响应呢?

部分代码如下:

#define IDC_BTN_SINGLEPIN_0        20000
#define IDC_BTN_SINGLEPIN_END        20063
动态创建按钮
for (int i=0; i<64; i++)
{        m_btSinglePin[i].Create("",WS_CHILD|WS_VISIBLE,CRect(0,0,0,0),this,IDC_BTN_SINGLEPIN_0+i);
}
单击响应函数 afx_msg void OnClkSinglePin(UINT nID);
隐射处理
ON_COMMAND_RANGE(IDC_BTN_SINGLEPIN_0, IDC_BTN_SINGLEPIN_END, OnClkSinglePin)
单击响应
void CGameClientView::OnClkSinglePin(UINT nID)
{
    int n = nID - IDC_BTN_SINGLEPIN_0;
}

怎么对按钮添加双击响应呢?
3 回复
#2
h3wardt2011-11-01 03:47
ON_CONTROL_RANGE(wNotifyCode, id1, id2, memberFxn ),这个宏可以实现你想要的功能。详细的说话请查阅MSDN:http://msdn.(v=vs.80).aspx
#3
lwenfa2011-11-01 16:36
回复 2楼 h3wardt
*.cpp
BEGIN_MESSAGE_MAP(CLwfDlg, CDialog)
ON_CONTROL_RANGE(BN_DOUBLECLICKED,IDC_BTN_0, IDC_BTN_END,OnDoubleclicked)
END_MESSAGE_MAP()

void C*Dlg::OnDoubleclicked(UINT nID)
{
    int n = nID - IDC_BTN_0;
.........
}

*.h
afx_msg void OnDoubleclicked(UINT nID);

我像这样申明并对OnDoubleclicked(UINT nID)经行了定义,但是双击后还是没有反应啊!
怎么办?
#4
h3wardt2011-11-01 20:35
回复 3楼 lwenfa
请仔细看看说明。
Sent when the user double-clicks a button. This notification is sent automatically for BS_USERBUTTON, BS_RADIOBUTTON, and BS_OWNERDRAW buttons. Other button types send BN_DOUBLECLICKED only if they have the BS_NOTIFY style.
1