[an error occurred while processing this directive]
Фсё, моя в ауте, CSliderCtrl, как сделать ему мертвые зоны?
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено колян безпарольный 27 октября 2005 г. 20:36


Вопчем нужно чтоб на слайдер фиксированного размера можно было наложить предел,
ограничить перемещение.Но делаю так как написал, проверяю состояние и если оно больше
предела то возвращаю слайдер в поле до предела. Но как только слайдер переваливает предел
так замерает и никак его не оживить. При этом бипер пикает отрабатывая клики справа от предела.
Как эту сволочь заставить работать?

class CSliderTest : public CDialog
{
// Construction
public:
CSliderTestDlg(CWnd* pParent = NULL); // standard constructor
int TempA,TempB;
enum { IDD = IDD_START_DIALOG };

CSliderCtrl m_Slider;

protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
// Implementation
protected:

// Generated message map functions
//{{AFX_MSG(CSliderTestDlg)
afx_msg void SliderClick();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};

void CSliderTestDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_SLIDER,m_Slider);
TempA=50;
TempB=70;
m_Slider.SetRange(1,100,TRUE);
m_Slider.SetPos(TempA);
m_Slider.SetPageSize(10);
}

BEGIN_MESSAGE_MAP(CSliderTestDlg, CDialog)
//{{AFX_MSG_MAP(CSliderTestDlg)

ON_NOTIFY(NM_CUSTOMDRAW, IDC_SLIDER, SliderClick)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()


void CSliderTestDlg::Slider1()
{
TempA=m_Slider.GetPos();
if (TempA>TempB)
{TempA=TempB;
m_Slider.SetPos(TempA);
Beep(1000,100);
}
}



Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru