vs2010,重载windowProc,编写控件消息响应函数
2016-07-19 13:20
375 查看
vs2010,重载windowProc,编写控件消息响应函数
(2012-11-06 21:27:21)转载▼
标签:
| 分类: MFC |
http://blog.sina.com.cn/s/blog_6c8fad9f01014bt1.html
WM_COMMAND message:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms647591(v=vs.85).aspxwinProc(message, wParam, lParam)
选择是WM_COMMAN的message;
根据wParam的高16位确定控件定义的通知码,比如对于COMBOBOX控件中的CBN_SELCHANGE消息码,意义是当combo当前选中的行的内容发生改变;
根据wParam的低16位确定控件的标识码;
对消息进行响应。
例子:
LRESULT CTestSolutionDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
// TODO: Add your specialized code here and/or call the base class
switch(message){
case WM_COMMAND:
if (LOWORD(wParam) >= IDC_CHECK_SELECT0 &&
LOWORD(wParam) <= IDC_CHECK_SELECT9) {
enableWindowInLine(LOWORD(wParam) - IDC_CHECK_SELECT0,
IsDlgButtonChecked(LOWORD(wParam)));
}
else if(HIWORD(wParam) == CBN_SELCHANGE &&
LOWORD(wParam) >= IDC_COMBO_NAME0 &&
LOWORD(wParam) <= IDC_COMBO_NAME9) {
showMiContent(LOWORD(wParam) - IDC_COMBO_NAME0);
}
else if (LOWORD(wParam) >= IDC_EDIT_POS0 &&
LOWORD(wParam) <= IDC_EDIT_POS9) {
resetRange(LOWORD(wParam) - IDC_EDIT_POS0);
}
else if (LOWORD(wParam) >= IDC_EDIT_BITS0 &&
LOWORD(wParam) <= IDC_EDIT_BITS9) {
resetRange(LOWORD(wParam) - IDC_EDIT_BITS0);
}
break;
相关文章推荐
- 远程连接mysql 授权方法教程
- Dagger2 彻底了解如何构建依赖关系
- C# 让程序自动以管理员身份运行
- Java 栈与堆简介
- Android开发技术周报 Issue#75
- 数组的静态分配和动态分配 内存分配问题
- C++—航班查询系统
- Android开发技术周报 Issue#76
- Android开发技术周报 Issue#77
- mysql字段类型的选择原则
- 使用svn管理代码删除文件删除报红色警告问题
- 从最简单的必胜态入手
- Android开发技术周报 Issue#78
- win7+opencv2.4.10+vs2010配置问题之LINK : fatal error LNK1104: 无法打开文件“opencv_calib3d2410d.lib” 1>
- 27.怎样在Swift中声明typedef?
- Android开发技术周报 Issue#79
- rpm命令常见用法
- Android开发技术周报 Issue#80
- 包名下存储
- sql连表分页查询(存储过程)