生活和工作都要充满激情,否则你无法体会到淋漓尽致的快乐与痛苦
在MFC中我们常常要把一些变量于控件对应起来! 并通过UpdateDate来实调用DoDataExchange(CDataExchange* pDX)实现变量信息交换!如:DDX_Text(pDX, IDC_STATICCOUNT, m_sCount); --> value对应把控件ID为IDC_STATICCOUNT的控件与m_sCount变量对应起,用UpdateDate(TRUE)来把IDC_STATICCOUNT控件数据写到m_sCount; 用UpdateDate(FALSE)把m_sCount数据读写到IDC_STATICCOUNT控件; DDX_Control(pDX, IDC_BSTARTTIME, m_cStartTime);有尽有-->control把控件ID为IDC_BSTARTTIME的控件与m_sCount变量对应起,如BUTTON。此时我们可以通过m_cStartTime控件变量改变对应控件状态!m_cStartTime.EnableWindow(FALSE); 可以改变控件是否可用!如果没有control对应,那么我们可以使用等价语句:GetDlgItem(IDC_BSTARTTIME)->EnableWindow(TRUE);所以使用控件变量将很大的方便我们写P!2 关于mouse按键的判断当我们在开发程式的时候,都要有个交互的过程,那么这里一要用的mouse,然而我们如何发现个健被按下呢!
些是我们可以通过nFlag来断定那个健被按下!nFlag是一个UINT的变量,它的每一个bit都代表一定的意思!MK_CONTROL Set if the CTRL key is down.MK_LBUTTON Set if the left mouse button is downMK_MBUTTON Set if the middle mouse button is downMK_RBUTTON Set if the right mouse button is downMK_SHIFT Set if the SHIFT key is down. 我们只要用nFlag & MK_KEYBUTTON, 如果非0这个健就被按下了, 我们不作if ((nFlag & MK_KEYBUTTON) == MK_KEYBUTTON), 这样可以使其更加的简捷!实际上用&标记来简化if语句,这样可以置位,可以得到一个正值,否则是0还有一点要注意,在onKeyDown中,WM_KEYDOWN事件只经你传递大写字母,而shift,caps loc是通过分开代码健被传,如果要区分大小写,你必须判断其是否被按下!