sos ,我想动态创建一个Button,并且在单击它时完成一定的操作请问该如何做? 我想动态创建一个Button,并且在单击它时完成一定的操作请问该如何做?如何实现消息? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 先在对话框里随便搞个按钮,并把ID设为跟你动态创建的按钮ID一致.然后ctrl+w,把类名选为你动态创建的那个窗口类,然后添加消息映射就可以了 #define YOUR_BUTTON_ID 2003//创建CButton *pButton = new CButton;pButton ->Create("YourButton", WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, CRect(10,10,100,30), pParentWnd, YOUR_BUTTON_ID);//影射BEGIN_MESSAGE_MAP(..)ON_BN_CLICKED(YOUR_BUTTON_ID,OnYourFunc)END_MESSAGE_MAP()void YourWnd::OnYourFunc(){//在单击它时完成一定的操作} 下面这个方法用于多个动态创建的控件BEGIN_MESSAGE_MAP ..... ON_CONTROL_RANGE(BN_CLICKED, IDC_BUTTON1, IDC_BUTTON10, OnButtonClicked)END_MESSAGE_MAP()在.h中......afx_msg void OnButtonClicked(UINT nID )DECLARE_MESSAGE_MAP().cpp中void CMyDialog::OnButtonClicked( UINT nID ){//通过判断id号来确定是哪一个按钮被按下!}关于ON_CONTROL_RANGE的详细内容,看MSDN 在调试的时候,已经执行过的程序能再退回去吗? 我有一个固定ip,和一个闲置服务器,近来在思索干啥用最好!!!!!请大家踊跃发言, SDI框架菜单栏屏蔽后如何调打印和打印预览?(谢谢) 哪位大虾帮忙看看关于服务的问题 关于文件保存和存取问题 AC_SRC_ALPHA的值是多少 用ODBC API编程时遇到的错误警告 关于设备上下文的问题?在线请教高手!! VC生成直线,打开后程序不动了。 MFC有什么用处呀?大家讨论一下! 窗口叠加时,顶层窗口得不到鼠标的输入焦点 用MessageBox弹出的对话框为何显示在屏幕的左上角?
然后ctrl+w,把类名选为你动态创建的那个窗口类,然后添加消息映射就可以了
//创建
CButton *pButton = new CButton;
pButton ->Create("YourButton", WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,
CRect(10,10,100,30), pParentWnd, YOUR_BUTTON_ID);
//影射
BEGIN_MESSAGE_MAP(..)
ON_BN_CLICKED(YOUR_BUTTON_ID,OnYourFunc)
END_MESSAGE_MAP()void YourWnd::OnYourFunc()
{
//在单击它时完成一定的操作
}
BEGIN_MESSAGE_MAP
.....
ON_CONTROL_RANGE(BN_CLICKED, IDC_BUTTON1, IDC_BUTTON10, OnButtonClicked)
END_MESSAGE_MAP()在.h中
......
afx_msg void OnButtonClicked(UINT nID )
DECLARE_MESSAGE_MAP().cpp中void CMyDialog::OnButtonClicked( UINT nID )
{
//通过判断id号来确定是哪一个按钮被按下!
}
关于ON_CONTROL_RANGE的详细内容,看MSDN