设计一个wince应用程序,要求有三个微调按钮和编辑框,用来调整颜色搭配。
首先我们放置三对微调按钮和编辑框,并在初始化中绑定
BOOL CSpinUseDlg::OnInitDialog() { CDialog::OnInitDialog(); // Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialog SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon // TODO: Add extra initialization here CSpinButtonCtrl *pSpinRed = (CSpinButtonCtrl*)GetDlgItem(IDC_SPIN_RED); ASSERT(pSpinRed!=NULL); pSpinRed->SetBuddy(GetDlgItem(IDC_EDT_RED)); pSpinRed->SetRange(0,255); pSpinRed->SetPos(128); CSpinButtonCtrl *pSpinGreen = (CSpinButtonCtrl*)GetDlgItem(IDC_SPIN_GREEN); ASSERT(pSpinGreen!=NULL); pSpinGreen->SetBuddy(GetDlgItem(IDC_EDT_GREEN)); pSpinGreen->SetRange(0,255); pSpinGreen->SetPos(128); CSpinButtonCtrl *pSpinBlue = (CSpinButtonCtrl*)GetDlgItem(IDC_SPIN_BLUE); ASSERT(pSpinBlue!=NULL); pSpinBlue->SetBuddy(GetDlgItem(IDC_EDT_BLUE)); pSpinBlue->SetRange(0,255); pSpinBlue->SetPos(128); return TRUE; // return TRUE unless you set the focus to a control }
void CSpinUseDlg::RGBColorChange() { UpdateData(TRUE); CBrush colorBrush; COLORREF clRGB; clRGB = RGB(m_red,m_green,m_blue); CClientDC * pClientDC; pClientDC = new CClientDC(this); colorBrush.CreateSolidBrush(clRGB); CRect rect(80,120,160,200); pClientDC->FillRect(rect,&colorBrush); delete pClientDC; } void CSpinUseDlg::OnEnChangeEdtRed() { RGBColorChange(); // send this notification unless you override the CDialog::OnInitDialog() // function and call CRichEditCtrl().SetEventMask() // with the ENM_CHANGE flag ORed into the mask. // TODO: Add your control notification handler code here } void CSpinUseDlg::OnEnChangeEdtGreen() { RGBColorChange(); // send this notification unless you override the CDialog::OnInitDialog() // function and call CRichEditCtrl().SetEventMask() // with the ENM_CHANGE flag ORed into the mask. // TODO: Add your control notification handler code here } void CSpinUseDlg::OnEnChangeEdtBlue() { RGBColorChange(); // send this notification unless you override the CDialog::OnInitDialog() // function and call CRichEditCtrl().SetEventMask() // with the ENM_CHANGE flag ORed into the mask. // TODO: Add your control notification handler code here }设置三个变量,分别关联三个颜色值,范围是0-255,整数。
public: BYTE m_red; // BYTE m_green; // BYTE m_blue; //
void CSpinUseDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Text(pDX, IDC_EDT_RED, m_red); DDV_MinMaxByte(pDX, m_red, 0, 255); DDX_Text(pDX, IDC_EDT_GREEN, m_green); DDV_MinMaxByte(pDX, m_green, 0, 255); DDX_Text(pDX, IDC_EDT_BLUE, m_blue); DDV_MinMaxByte(pDX, m_blue, 0, 25
一番查找后,问题解决了,在微调按钮的属性里面需要设置Set buddy integer为ture,程序正常运行,绑定成功。