mfc按钮点击事件,mfc鼠标点击事件
C++ MFC怎么给按钮添加单击事件 看详细描述
这个你已经确定了要打开的文件的路径,指定就打开D:\123.exe这个文件,就很简单了。你在资源视图中对话框里添加一个按钮,然后双击按钮,系统就会自动给你添加一个这个按钮的单击事件函数,你在这个函数中输入如下函数 ::ShellExecute(this-m_hWnd,"open",strPath + strName,NULL,NULL,SW_SHOW); 此函数为win32的一个函数,用于打开文件,其中的第三个参数strPath + strName,strPath是文件路径,strNmane是文件名称,这个没有错的。注意函数前面有:: ,不能丢。
MFC中如何在一个按钮中循环一个事件,在点击另一按钮时结束这个事件?
给你个简单的小例子吧实现你的功能。
1、建立一个MFC工程,上面放2个按钮:第一个按钮是启动循环;第二个按钮是结束循环;
2、步骤:
①
// CreateThreadexDlg.cpp : 实现文件
//
#include "stdafx.h"
#include "CreateThreadex.h"
#include "CreateThreadexDlg.h"
#include "afxdialogex.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
bool bInLoop = true;//------------定义一个全局变量用于控制循环
// 用于应用程序“关于”菜单项的 CAboutDlg 对话框
class CAboutDlg : public CDialogEx
{
public:
?CAboutDlg();
...
②在第一个按钮(启动循环)事件里面加入如下代码:
//单击此按钮启动一个线程用于实现循环
void CCreateThreadexDlg::OnBnClickedButton1()
{
?// TODO: 在此添加控件通知处理程序代码
?CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)startlop,NULL,0,0);
}
③在第一个按钮上面定义一个线程函,此函数用于当满足条件实现死循环,不满足条件跳出循环从而关闭线程;
LPTHREAD_START_ROUTINE startlop(void*)
{
?while (bInLoop)//逻辑条件
?{
??MessageBoxW(NULL,L"hello",L"test",MB_OK);
??Sleep(2000);
?}
?return 0;
}
3、关闭循环,点击此按钮将全局变量赋予假,则结束循环
void CCreateThreadexDlg::OnBnClickedButton2()
{
?// TODO: 在此添加控件通知处理程序代码
bInLoop=false;
}
很简单的一个线程例子,当然方法众多,希望对初学的你有帮助,请采纳,谢谢
MFC 按钮事件
最合理的解决办法是线程。
A按钮按下后,创建并抛出一个工作线程来执行数据处理,这样不影响界面和其它程序响应。
B按钮按下后,向线程发送消息,提前终止线程