MFC 监控界面上所有文本框值的变化

//控件消息,菜单,按钮等
BOOL CXXDlg::OnCommand(WPARAM wParam, LPARAM lParam)
{
	// TODO: 在此添加专用代码和/或调用基类
	 int wmEVENT=HIWORD(wParam);
	 if ( wmEVENT == EN_CHANGE)
	 {
		 //HWND hwndCtl = (HWND) lParam;
		 int wmID =LOWORD(wParam);
		 if(wmID == IDC_EDIT_NAME)
		 {
			
		 }
	 }
	 
	return CDialog::OnCommand(wParam, lParam);
}

通过一个消息路由,监控所有编辑框EN_CHANGE事件。
还可以重载对话框 DefWindowsProc()或WindowsProc()


关键点:
理解command消息格式
int wmID =LOWORD(wParam);    //产生消息的控件ID
int wmEVENT=HIWORD(wParam);  //产生的消息事件代码
HWND hwndCtl = (HWND) lParam; //产生消息的控件句柄
更多:常用控件消息
按扭控件
BN_CLICKED 用户单击了按钮
BN_DISABLE 按钮被禁止
BN_DOUBLECLICKED 用户双击了按钮
BN_HILITE 用户加亮了按钮
BN_PAINT 按钮应当重画
BN_UNHILITE 加亮应当去掉


组合框控件
CBN_CLOSEUP 组合框的列表框被关闭
CBN_DBLCLK 用户双击了一个字符串
CBN_DROPDOWN 组合框的列表框被拉出
CBN_EDITCHANGE 用户修改了编辑框中的文本
CBN_EDITUPDATE 编辑框内的文本即将更新
CBN_ERRSPACE 组合框内存不足
CBN_KILLFOCUS 组合框失去输入焦点
CBN_SELCHANGE 在组合框中选择了一项
CBN_SELENDCANCEL 用户的选择应当被取消
CBN_SELENDOK 用户的选择是合法的
CBN_SETFOCUS 组合框获得输入焦点


编辑框控件
EN_CHANGE 编辑框中的文本己更新
EN_ERRSPACE 编辑框内存不足
EN_HSCROLL 用户点击了水平滚动条
EN_KILLFOCUS 编辑框正在失去输入焦点
EN_MAXTEXT 插入的内容被截断
EN_SETFOCUS 编辑框获得输入焦点
EN_UPDATE 编辑框中的文本将要更新
EN_VSCROLL 用户点击了垂直滚动条消息含义


列表框控件
LBN_DBLCLK 用户双击了一项
LBN_ERRSPACE 列表框内存不够
LBN_KILLFOCUS 列表框正在失去输入焦点

具体消息事件代码宏,请参阅MSDN


更多请参阅:http://blog.csdn.net/cwj976277916/article/details/9019177  深度解析VC中的消息传递

posted @ 2013-10-14 23:15  奋斗中的毛毛虫  Views(1139)  Comments(0Edit  收藏  举报