мм.. не нашел инфо о том как привентить spin control в Visual Studio 2008 к едитбоксу..
вот что сделал уже сделал:
1) на одном форуме нашел как привязать спин контролл к едит боксу:
В Dialog Editor создать spin control, привязанный к едиту проще некуда. Создаешь edit как обычно. Создаешь рядом (можно и не рядом - все равно привяжется) spin control с той же панели инструментов "controls", в свойствах spinа ставишь флажок "Auto buddy" и выбираешь "Aligment" - Left или Right.
Spin привяжется к элементу, стоящему до него в TabOrder - для изменения или контроля TabOrder - меню Layout->Tab Order или Ctrl+D.
Менять значение в edite от спина можно обрабатывая сообщение UDN_DELTAPOS (Правая клавиша на spinе->Events->UDN_DELTAPOS->Add and Edit). Обрабатывать значения в editе введенные с клавиатуры и от spinа можно по сообщению EN_CHANGE editа (аналогично - Правая клавиша на edite->Events->EN_CHANGE->Add and Edit).
Если хочешь задать минимальное и максимальное значение spinа - проще всего это сделать в InitDialog, либо связав член класса со spinом, либо напрямую через ((CSpinButtonCtrl*)GetDlgItem(IDC_SPIN...))->SetRange(...);
Удачи в общем, и все такое...
2) есть диалог с едитом, его инициализция и чтение даных с него.. вообщем все работает.
Код:
class CMyDialog : public CDialog
{
public:
afx_msg BOOL OnSetCursor( CWnd* pWnd, UINT nHitTest, UINT message );
CMyDialog(CWnd* pParent = NULL);
enum { IDD = IDD_MATRIXDIALOG };
CListBox m_sizex;
CEdit m_matrix;
CEdit m_a;
CEdit m_b;
CEdit m_c;
protected:
virtual void DoDataExchange(CDataExchange* pDX);
protected:
virtual void OnOK();
virtual void OnCancel();
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnLbnSelchangeListx();
afx_msg void OnStnClickedBitmap1();
};
CMyDialog::CMyDialog(CWnd* pParent)
: CDialog(CMyDialog::IDD, pParent)
{
}
void CMyDialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_LISTX, m_sizex);
DDX_Control(pDX, IDC_METRIXEDIT, m_matrix);
DDX_Control(pDX, IDC_EDITA, m_a);
DDX_Control(pDX, IDC_EDITB, m_b);
DDX_Control(pDX, IDC_EDITC, m_c);
}
Код:
void CMyDialog::OnOK()
{
char str[80];
char str1[80];
char strA[5];
char strB[5];
char strC[5];
Number=m_sizex.GetCurSel();
m_sizex.GetText(Number,str);
m_matrix.GetWindowText(str1,80);
m_a.GetWindowText(strA,5);
m_b.GetWindowText(strB,5);
m_c.GetWindowText(strC,5);
----------------------
----------------------
am = atoi(strA);
bm = atoi(strB);
cm = atoi(strC);
fclose(matrix);
BE_DIALOG=1;
CDialog::OnOK();
}
Код:
BOOL CMyDialog::OnInitDialog()
{
CDialog::OnInitDialog();
-----
-----
m_a.SetWindowText(CString("A"));
m_b.SetWindowText(CString("B"));
m_c.SetWindowText(CString("C"));
return TRUE;
}
Помогите привентить спин - контролл ну к примеру для (pDX, IDC_EDITA, m_a), и т.д.
Помогите ценным советом или толковым линком по сабжу..
Спасибо.