EN_SETFOCUS事件来响应这个鼠标消息。 EN_SETFOCUS为判断焦点事件(通俗点说,那便是判断光标在什么地方)
这样一来,一切逻辑都理顺了。我们用户用鼠标选择并点击编辑框的时候,我们用WM_LBUTTONDOWN消息去响应,然后与此同此,我们把响应的和EN_SETFOCUS联系起来,我们预设一个全局变量nEditFlag ,作为在EN_SETFOCUS函数里的一个 标记,并在鼠标点下的时候用nEditFlag 去表示编辑框目前被选定的状态,nEditFlag ==1 的时候我们就判断用户选择了编辑框1 ,再者当nEditFlag ==2的时候说明编辑框2被选定。
这里我告诉大家如何添加 事件 EN_SETFOCUS,由于EN_SETFOCUS是一个判断焦点的,所以对象应该是编辑框1和编辑框2里添加,所以我们回到对话框编辑页面。
“右键编辑框1”->点击“事件”-> “选择EN_SETFOCUS”(这里程序默认的响应函数是OnsetfocusEdit1)
依次类推我们也给编辑框2添加事件响应函数OnsetfocusEdit2,方法同上
如下图
设置好之后,我们还要做一些初始化工作,在程序运行之初,我们先初始化nEditFlag = 0;那么在哪里初始化呢?很简单,正如大家想的一样在OnInitDialog()内进行初始化
我们只需在OnInitDialog()函数中 加入一句
nEditFlag = 0;便可以了(如下图黑条字体部分)
////////////////////////////////////////////////////////////////////////////////
之后我们再为两个事件响应函数进行OnsetfocusEdit1()和OnsetfocusEdit2()添加代码
当用户选定编辑框1的时候,nEditFlag = 1;
当用户选定编辑框2的时候,nEditFlag = 2;
而鼠标消息WM_LBUTTONDOWN具体代码如下
//////////////////////////////////////////////////////////////////////////////
STEP 3(按键0~9的响应部分)
这里由于代码都大同小异,所以就用数字按钮1,2来进行简要说明
用if语句去判断标记常量 nEditFlag 从而给判断是m_num1还是m_num2进行操作
这里
m_num1是编辑框1内的数字
m_num2是编辑框2内的数字
剩下了3~9代码以上大同小异。