c++ MFC中 如何在自己创建的函数中 ,调用按键的事件函数

比如MFC的应用程序,其中有BUTTON1:IDC_BUTTON1,控件变量为:m_BUTTON1,它的单击代码:voidCShowgamewinlistDlg::OnB... 比如MFC 的应用程序,其中有BUTTON1:IDC_BUTTON1,控件变量为:m_BUTTON1,它的单击代码:
void CShowgamewinlistDlg::OnButton1()
{
// TODO: Add your control notification handler code here
}
我的自建函数:
void showwin()
{
????????
}
问号这里要调用BUTTON1单击的事件函数,应该怎么填写
就是问号处要调用 void CShowgamewinlistDlg::OnButton1() 这个函数,具体格式怎么写??
void CShowgamewinlistDlg::OnButton1() 这个函数中的代码,不用去管它。
展开
 我来答
百度网友d8aa12b
推荐于2017-11-26 · TA获得超过417个赞
知道小有建树答主
回答量:455
采纳率:100%
帮助的人:353万
展开全部
你建的函数也要属于这个对话框类,然后就可以直接调用了。

头文件中声明
afx_msg void showwin();

源文件中函数定义
voidCShowgamewinlistDlg::showwin()

{
OnButton1() ;

}
更多追问追答
追问
可行,产生新问题,原本showwin() 在任意函数中均可调用,现在不行,请问有没其他方法??
另外,我在回调函数void CALLBACK showwinre()中调用了showwin(),现在不能用了,这个怎么办呢,要是都写成您的那种格式,那么回调函数的格式又该怎么写,这个回调是给计时器函数用的。
追答
void showwin()
{
CShowgamewinlistDlg dlg;
dlg.OnButton1();
}

也可以在回调函数中PostMessage,在消息处理函数中调用属于类的函数。
如果OnButton1()中没有使用类成员,可以把代码放进showwin()里,在OnButton1()中调用showwin()
CE2hao
2013-10-22 · 超过11用户采纳过TA的回答
知道答主
回答量:36
采纳率:0%
帮助的人:30万
展开全部
直接调用是调用不好的。
要创建一个对象,再通过对象调用。
或者将showwin()创建成CShowgamewinlistDlg类的函数。
更多追问追答
追问
所谓对象,指的是?是不是创建一个函数,代码写在里面,同时供按键事件和其他函数调用?
追答
CShowgamewinlistDlg Dlg;

Dlg.OnButton1;
但这样写没有意义,应该说是错的。
下面是正确做法:
可以用一个全局指针指向你所定义的那个对象。
定义全局变量 void *pvoid=NULL;
在CShowgamewinlistDlg 的初始化函数中写上代码pvoid=(void*)this;
在函数showwin()中添加代码:CShowgamewinlistDlg*pdlg=(CShowgamewinlistDlg*)pvoid;
pdlg->OnButton();

这样就可以调用函数了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
欢乐多Ek
2013-10-22 · TA获得超过478个赞
知道小有建树答主
回答量:477
采纳率:0%
帮助的人:417万
展开全部
如果都是在对话框类内的函数的话直接把button响应函数里面的操作独立放到一个成员函数里面,然后再button响应函数和你自己的函数里面调用这个函数就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
古龙南琴0b8
2013-10-23 · TA获得超过229个赞
知道小有建树答主
回答量:366
采纳率:0%
帮助的人:185万
展开全部
就是窗口类指针->OnButton1();或者发BUTTON1单击事件的消息。
追问
能给出具体消息的代码吗?这样的话,我既不需要把BUTTON变成PUBLIC:,也不需要把自建的函数加在CShowgamewinlistDlg ::中。
追答
我只知道这么多了,消息什么的我也不会发,不过你可以考虑把OnButton1里的逻辑再封一层函数,OnButton1中再调用这个函数,showwwin中也调这个函数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式