动态创建控件的消息响应问题
我为一对话框类增加了以下两个成员变量,打算动态创建它们作为对话框的子窗体
CWnd wnd1;
CButton btn1;
在对话框的::OnInitDialog()函数中动态创建这个wnd1的子窗体
wnd1.Create(NULL,"WND",WS_VISIBLE|WS_CHILD|WS_DLGFRAME,
CRect(200,200,400,400),this,IDC_WND1);
同时又在刚才创建的wnd1上又动态创建一个按纽控件
btn1.Create("按纽",WS_CHILD|WS_VISIBLE|WS_TABSTOP,CRect(0,0,50,30),&wnd1,IDC_BTN1);
在对话框类中为上述两个控件增加相应的单击消息函数(函数体略)
ON_BN_CLICKED(IDC_WND1, OnWndClick)
ON_BN_CLICKED(IDC_BTN1, OnBtnClick)
运行时对话框上有wnd1和btn1控件,但不响应相应消息函数,这是为什么?
若直接在对话框上动态创建CButton子控件,可以响应相应消息函数,难道是
CWnd不行,如何处理?
问题点数:100、回复次数:2Top
1 楼llm308(*软件民工*)回复于 2002-11-10 11:00:35 得分 50
派生出自己的新类,在新类中加消息处理函数就可以了Top
2 楼riverboat(诸葛不亮)回复于 2002-11-10 15:09:09 得分 50
你只是定义了一个CWnd类对象wnd1,系统当然不会自己就认为它是一个Button,所以你定义的ON_BN_CLICKED(IDC_WND1, OnWndClick)对系统来说就显得莫名其妙了,自然消息也得不到响应。Top




