MFC-为动态控件绑定事件方法1
2017-12-28 10:10
453 查看
知识点:
认识窗口过程
GetWindowLong
SetWindowLong
为动态控件绑定事件
一、获取窗口过程
二、设置新窗口过程
1、书写一个新窗口过程函数
窗口过程格式
LRESULT CALLBACK WindowProc(
HWND hwnd, // 窗口句柄
UINT uMsg, // 消息事件
WPARAM wParam, // 消息参数1
LPARAM lParam //消息参数2
);
CallWindowProc 把消息事件传递给以前的窗口过程
LRESULT CallWindowProc(
WNDPROC lpPrevWndFunc, // 指向前一个窗口过程
HWND hWnd, // 窗口句柄
UINT Msg, // 消息事件
WPARAM wParam, // 消息参数1
LPARAM lParam // 消息参数2
);
三、为动态控件绑定事件
EN_CHANGE
WM_CHAR
WM_LBUTTONDOWN
WNDPROC oldProc;
LRESULT CALLBACK newProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)
{
if (uMsg==WM_COMMAND)
{
switch(LOWORD(wParam)) //0xFFFF FFFF
{
case 10081:
if (HIWORD(wParam)==EN_CHANGE)
{
TRACE(” myedt 控件 产生EN_CHANGE消息\n”);
// 添加相应事件处理函数
}
break;
case 10082:
if (HIWORD(wParam)==EN_CHANGE)
{
TRACE(” myedt2 控件 产生EN_CHANGE消息\n”);
// 添加相应事件处理函数
}
break;
}
}
}
// CDialog_Dynamics_Create 消息处理程序
void CDialog_Dynamics_Create::OnBnClickedButton1()
{
//替换窗口过程
//1获取当前窗口过程
oldProc=(WNDPROC)GetWindowLong(m_hWnd,GWL_WNDPROC);
//替换窗口过程
SetWindowLong(m_hWnd,GWL_WNDPROC,(LONG) newProc);
}
设计的窗口获得消息时候,能够在输出界面上看到控件绑定事件来确定消息确实收到。
认识窗口过程
GetWindowLong
SetWindowLong
为动态控件绑定事件
一、获取窗口过程
二、设置新窗口过程
1、书写一个新窗口过程函数
窗口过程格式
LRESULT CALLBACK WindowProc(
HWND hwnd, // 窗口句柄
UINT uMsg, // 消息事件
WPARAM wParam, // 消息参数1
LPARAM lParam //消息参数2
);
CallWindowProc 把消息事件传递给以前的窗口过程
LRESULT CallWindowProc(
WNDPROC lpPrevWndFunc, // 指向前一个窗口过程
HWND hWnd, // 窗口句柄
UINT Msg, // 消息事件
WPARAM wParam, // 消息参数1
LPARAM lParam // 消息参数2
);
2、注册新的窗口过程
三、为动态控件绑定事件
EN_CHANGE
WM_CHAR
WM_LBUTTONDOWN
WNDPROC oldProc;
LRESULT CALLBACK newProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)
{
if (uMsg==WM_COMMAND)
{
switch(LOWORD(wParam)) //0xFFFF FFFF
{
case 10081:
if (HIWORD(wParam)==EN_CHANGE)
{
TRACE(” myedt 控件 产生EN_CHANGE消息\n”);
// 添加相应事件处理函数
}
break;
case 10082:
if (HIWORD(wParam)==EN_CHANGE)
{
TRACE(” myedt2 控件 产生EN_CHANGE消息\n”);
// 添加相应事件处理函数
}
break;
}
}
return CallWindowProc(oldProc,hwnd,uMsg,wParam,lParam);
}
// CDialog_Dynamics_Create 消息处理程序
void CDialog_Dynamics_Create::OnBnClickedButton1()
{
//替换窗口过程
//1获取当前窗口过程
oldProc=(WNDPROC)GetWindowLong(m_hWnd,GWL_WNDPROC);
//替换窗口过程
SetWindowLong(m_hWnd,GWL_WNDPROC,(LONG) newProc);
}
设计的窗口获得消息时候,能够在输出界面上看到控件绑定事件来确定消息确实收到。
相关文章推荐
- MFC-为动态控件绑定事件方法1
- Android 动态创建Android控件、绑定事件处理的新方法
- MFC中动态创建控件以及事件响应实现方法
- MFC中动态创建列表控件及其刷新重绘的方法
- jQuery给动态添加的元素绑定事件的方法
- jQuery给动态添加的元素绑定事件的方法
- jQuery on()方法给动态生成的元素绑定事件----实战分析
- GridView 动态绑定控件 OnRowCommand事件触发
- ScrollView动态添加控件,并设定绑定事件
- jQuery支持动态参数将函数绑定到事件上的方法
- Delphi 代码创建控件与事件动态绑定
- jQuery给动态添加的元素绑定事件的方法
- jquery 给动态生成的标签绑定事件的几种方法总结
- 在MFC中动态创建控件以及事件响应
- 在MFC中动态创建控件以及事件响应
- jQuery动态添加元素无法触发绑定事件的解决方法分析
- MFC中动态创建控件以及事件响应
- 动态添加ASP.NET控件并绑定处理事件一例
- jQuery给动态添加的元素绑定事件的方法
- jQuery on()方法绑定动态元素的点击事件无响应的解决办法