MFC中Spin Control控件使用,同時數據在Edit Control中顯示

實現mfc spin control 上下滾動,只需捕捉spin control 的 UDN_DELTAPOD 消息,如下:
<pre name="code" class="cpp">OnDeltaposSpin1(NMHDR *pNMHDR, LRESULT *pResult)
{
<span style="white-space:pre">	</span>LPNMUPDOWN pNMUpDown = reinterpret_cast(pNMHDR);
<span style="white-space:pre">	</span>// TODO: 在此添加控件通知處理程序代碼
<span style="white-space:pre">	</span>if(pNMUpDown-> iDelta == 1) // 如果此值爲1 , 說明點擊了Spin的往下箭頭 
<span style="white-space:pre">	</span>{ 
<span style="white-space:pre">		</span>//增加編輯框中的數字值 
<span style="white-space:pre">		</span>//code
<span style="white-space:pre">	</span>} 
<span style="white-space:pre">	</span>else if(pNMUpDown-> iDelta == -1) // 如果此值爲-1 , 說明點擊了Spin的往上箭頭 
<span style="white-space:pre">	</span>{ 
<span style="white-space:pre">		</span>//減少編輯框中的數字值 
<span style="white-space:pre">		</span>//code
<span style="white-space:pre">	</span>}
}





實現具體步驟如下:
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)
{
<span style="white-space:pre">	</span>LPNMUPDOWN pNMUpDown = reinterpret_cast<<SPAN style="COLOR: black">LPNMUPDOWN>(pNMHDR);
<span style="white-space:pre">	</span>// TODO: 在此添加控件通知處理程序代碼
<span style="white-space:pre">	</span>*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)
{
<span style="white-space:pre">	</span>m_byTxOutsideTempData = 0x7E; //發送數據
}


(3)//CKoreaHc.cpp中
void CKoreaHc::OnDeltaposSpin1(NMHDR *pNMHDR, LRESULT *pResult)
{
<span style="white-space:pre">	</span>LPNMUPDOWN pNMUpDown = reinterpret_cast<<SPAN style="COLOR: black">LPNMUPDOWN>(pNMHDR);
<span style="white-space:pre">	</span>// TODO: 在此添加控件通知處理程序代碼
<span style="white-space:pre">	</span>if(pNMUpDown->iDelta == -1) // 如果此值爲-1 , 說明點擊了Spin的往上箭頭
<span style="white-space:pre">	</span>{
<span style="white-space:pre">		</span>m_byTxOutsideTempData++;
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>else if(pNMUpDown->iDelta == 1) // 如果此值爲, 說明點擊了Spin的往下箭頭
<span style="white-space:pre">	</span>{
<span style="white-space:pre">		</span>m_byTxOutsideTempData--;
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>CString ss;
<span style="white-space:pre">	</span>ss.Format(_T(" %d "), (m_byTxOutsideTempData & 0x 7F)-40);
<span style="white-space:pre">	</span>GetDlgItem(IDC_EDIT_OUTTEMP_HC)->SetWindowText(ss); //EDIT控件顯示數據
<span style="white-space:pre">	</span>*pResult = 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章