MFC中Spin Control控件使用,同时数据在Edit Control中显示
2015-03-19 10:09
676 查看
实现mfc spin control 上下滚动,只需捕捉spin
control 的 UDN_DELTAPOD 消息,如下:
OnDeltaposSpin1(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMUPDOWN pNMUpDown = reinterpret_cast(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
if(pNMUpDown-> iDelta == 1) // 如果此值为1
, 说明点击了Spin的往下箭头
{
//增加编辑框中的数字值
}
else if(pNMUpDown-> iDelta == -1) // 如果此值为-1 , 说明点击了Spin的往上箭头
{
/ /减少编辑框中的数字值
}
}
实现具体步骤如下:
1、首先新建一个Dialog窗口,在新建窗口中右击鼠标,添加类,如:CKoreaHc。
2、然后通过工具箱把Spin Control控件、Edit
Control控件分别拖拽到Dialog窗口中,双击Spin
Control控件即可在CKoreaHc.cpp中生成如下几段相应代码。
(1)
BEGIN_MESSAGE_MAP(CKoreaHc, CDialog)
ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN1,
&CKoreaHc::OnDeltaposSpin1)
END_MESSAGE_MAP()
(2)
void CKoreaHc::OnDeltaposSpin1(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMUPDOWN pNMUpDown = reinterpret_cast<<SPAN
style="COLOR: black">LPNMUPDOWN>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
*pResult = 0;
}
3、在CKoreaHc.h和CKoreaHc.cpp中分别添加相应程序处理代码
(1) //CKoreaHc.h中对byTxOutsideTempData进行定义声明
BYTE m_byTxOutsideTempData;
(2)//CKoreaHc.cpp中
CKoreaHc::CKoreaHc(CWnd* pParent )
: CDialog(CKoreaHc::IDD, pParent)
{
m_byTxOutsideTempData = 0x7E; //发送数据
}
(3)//CKoreaHc.cpp中
void CKoreaHc::OnDeltaposSpin1(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMUPDOWN pNMUpDown = reinterpret_cast<<SPAN
style="COLOR: black">LPNMUPDOWN>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
if(pNMUpDown->iDelta ==
-1) // 如果此值为-1
, 说明点击了Spin的往上箭头
{
m_byTxOutsideTempData++;
}
else if(pNMUpDown->iDelta ==
1) // 如果此值为, 说明点击了Spin的往下箭头
{
m_byTxOutsideTempData--;
}
CString ss;
ss.Format(_T(" %d
"), (m_byTxOutsideTempData & 0x 7F)-40);
GetDlgItem(IDC_EDIT_OUTTEMP_HC)->SetWindowText(ss); //EDIT控件显示数据
*pResult = 0;
}
control 的 UDN_DELTAPOD 消息,如下:
OnDeltaposSpin1(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMUPDOWN pNMUpDown = reinterpret_cast(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
if(pNMUpDown-> iDelta == 1) // 如果此值为1
, 说明点击了Spin的往下箭头
{
//增加编辑框中的数字值
}
else if(pNMUpDown-> iDelta == -1) // 如果此值为-1 , 说明点击了Spin的往上箭头
{
/ /减少编辑框中的数字值
}
}
实现具体步骤如下:
1、首先新建一个Dialog窗口,在新建窗口中右击鼠标,添加类,如:CKoreaHc。
2、然后通过工具箱把Spin Control控件、Edit
Control控件分别拖拽到Dialog窗口中,双击Spin
Control控件即可在CKoreaHc.cpp中生成如下几段相应代码。
(1)
BEGIN_MESSAGE_MAP(CKoreaHc, CDialog)
ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN1,
&CKoreaHc::OnDeltaposSpin1)
END_MESSAGE_MAP()
(2)
void CKoreaHc::OnDeltaposSpin1(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMUPDOWN pNMUpDown = reinterpret_cast<<SPAN
style="COLOR: black">LPNMUPDOWN>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
*pResult = 0;
}
3、在CKoreaHc.h和CKoreaHc.cpp中分别添加相应程序处理代码
(1) //CKoreaHc.h中对byTxOutsideTempData进行定义声明
BYTE m_byTxOutsideTempData;
(2)//CKoreaHc.cpp中
CKoreaHc::CKoreaHc(CWnd* pParent )
: CDialog(CKoreaHc::IDD, pParent)
{
m_byTxOutsideTempData = 0x7E; //发送数据
}
(3)//CKoreaHc.cpp中
void CKoreaHc::OnDeltaposSpin1(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMUPDOWN pNMUpDown = reinterpret_cast<<SPAN
style="COLOR: black">LPNMUPDOWN>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
if(pNMUpDown->iDelta ==
-1) // 如果此值为-1
, 说明点击了Spin的往上箭头
{
m_byTxOutsideTempData++;
}
else if(pNMUpDown->iDelta ==
1) // 如果此值为, 说明点击了Spin的往下箭头
{
m_byTxOutsideTempData--;
}
CString ss;
ss.Format(_T(" %d
"), (m_byTxOutsideTempData & 0x 7F)-40);
GetDlgItem(IDC_EDIT_OUTTEMP_HC)->SetWindowText(ss); //EDIT控件显示数据
*pResult = 0;
}
相关文章推荐
- MFC中Spin Control控件使用,同时数据在Edit Control中显示
- MFC中Spin Control控件使用,同时数据在Edit Control中显示
- mfc 对话框 toolBox 中的控件 edit control和slider control 或 spin control 使用并绑定
- 关于VS2013 mfc使用Edit control控件显示输出内容问题
- MFC中Spin Control,Slider Control,Edit Control控件结合使用示例
- Control Study -> 主表和子表数据同时在绑定控件显示(示例代码下载)
- 使用ASP.NET Atlas XSLTView控件用XSLT修饰并显示XML数据
- 使用DataList分页显示数据,双向排序,添加checkbox控件
- 使用ASP.NET2.0的TreeView控件显示分层数据
- Control Study -> 主表和子表数据同时在绑定控件显示(示例代码下载)
- 使用ASP.NET2.0的TreeView控件显示分层数据
- 使用嵌套 Repeater 控件和 Visual C# .Net 显示分层数据
- 主表和子表数据同时在绑定控件显示(示例代码下载)
- Control Study -> 主表和子表数据同时在绑定控件显示(示例代码下载)
- 使用嵌套的Repeater控件显示分级数据
- 使用嵌套的Repeater控件显示分级数据
- 使用嵌套的Repeater控件显示分级数据
- 使用DataList分页显示数据,双向排序,添加checkbox控件。
- 使用嵌套的Repeater控件显示分级数据(转)
- VS2003 C#:重写键盘响应事件、动态创建控件、创建线程、在线程中使用委托在界面显示数据