//resource.h
#define IDC_BUTTON_Finish 8888
//.h
afx_msg void OnBnClickedFinish();
//.cpp
ON_BN_CLICKED(IDC_BUTTON_Finish, &CCarInfoAdd::OnBnClickedFinish)OnInitDialog
{
pAddBtn->Create (_T("ok"),WS_VISIBLE |WS_CHILD ,CRect(0,0,0,0),this,IDC_BUTTON_Finish);
pAddBtn->SetParent(m_pEdit);
}
void CCarInfoAdd:: OnBnClickedFinish()
{
AfxMessageBox("OK");}
什么都有了,点按钮的时候就是没反应。
怎么回事啊,是 不是动态按钮不能在出示化的时候创建?
#define IDC_BUTTON_Finish 8888
//.h
afx_msg void OnBnClickedFinish();
//.cpp
ON_BN_CLICKED(IDC_BUTTON_Finish, &CCarInfoAdd::OnBnClickedFinish)OnInitDialog
{
pAddBtn->Create (_T("ok"),WS_VISIBLE |WS_CHILD ,CRect(0,0,0,0),this,IDC_BUTTON_Finish);
pAddBtn->SetParent(m_pEdit);
}
void CCarInfoAdd:: OnBnClickedFinish()
{
AfxMessageBox("OK");}
什么都有了,点按钮的时候就是没反应。
怎么回事啊,是 不是动态按钮不能在出示化的时候创建?
试试
这样可以,我要改为m_pEdit,也能执行,怎么办?
通知消息是发给控件父窗口的,既然指定了控件的父窗口,就应该在该父窗口响应。
你把它设置成父窗口,事件响应确在父窗口的父窗口声明
如果非想这么做也可以
1.自己做一个CEdit 之后添加按钮,响应函数放在CEdit里
2.自己做一个CEdit 之后添加按钮,响应函数父窗口里,CEdit检测到单击按钮操作给父窗口发送个消息
, Rt
, this
, 1);
{}
我也是继承了CEdit,create了一个CButton
但是死都不响应ON_BN_CLICKED(ID_BTN_OK,OnBtnClick)
int CCeEditCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CEdit::OnCreate(lpCreateStruct) == -1)
return -1; // TODO: 在此添加您专用的创建代码
if(!m_pBtn){
RECT rcEdit;
this->GetRect(&rcEdit);
rcEdit.left =rcEdit.right-20;
rcEdit.top -= 1;
DWORD dwStyle=BS_CENTER|WS_CHILD | WS_VISIBLE|BS_PUSHBUTTON;
m_pBtn=new CButton;
m_pBtn->Create(_T("..."),dwStyle,rcEdit,this,ID_BTN_OK);
m_pBtn->SetParent(this);
m_pBtn->ShowWindow(SW_SHOW); } return 0;
}