[제품종류] IEC667Lite
[개발환경] Visual Studio 2008 C#
=============== 질 문 ===============안녕하세요
화면이 꺼진후에 화면 터치시
터치한 곳에 버튼이 있을 경우 그 버튼이 바로 눌리는 문제가 있습니다.
이 현상을 막을 수 있는 방법이 있을까요?
화면이 꺼지고 켜진 것을 확인할 이벤트가 있는지 궁금합니다.
MouseDown에
smartConfigs1.Display.BacklightOnOffStatus == CDisplay.OnOff.OFF
이렇게 해봤는데
이미 화면이 켜진 상태라서 조건이 안먹더라구요
방법을 알려주시면 감사하겠습니다.
=============== 답 변 ===============
안녕하세요...
문의하신 내용의 문제의 원인은 LCD Backlight 가 off된 상태에서 터치입력이 발생하면 터치 Event동작에 앞서 터치 드라이버단에서 LCD Backlight를 On처리를 하므로 smartConfigs1.Display.BacklightOnOffStatus 값이 이미 변경되어 발생되는 현상입니다. 이를 개선하기 위해서는 아래와 같은 방식으로 프로그램을 작성 하셔야합니다.
private bool m_bLCDBacklight;
public Form1()
{
InitializeComponent();
m_bLCDBacklight = true;
}
private void butLCDBacklightOff_Click(object sender, EventArgs e)
{
smartConfigs1.Display.BacklightControl(SmartX.CDisplay.OnOff.OFF);
m_bLCDBacklight = false;
}
private void butTest_Click(object sender, EventArgs e)
{
if (m_bLCDBacklight == true)
{
MessageBox.Show("TEST Button Click!!!");
}
m_bLCDBacklight = true;
}
- 감사합니다.
=============== 답 변 ===============
알려주신 방법은 수동으로 화면을 껐을 때에만 적용 할 수 있는 방법인것 같은데요
60초 뒤 자동으로 화면이 꺼지게 해놓은 경우에 쓸만한 방법은 없을까요?
smartConfigs1.Display.BacklightControlSetTime(60);
이걸로 60초 뒤에 자동으로 꺼지게 해 두었거든요...
=============== 답 변 ===============
안녕하세요...
운영체제에서 지원하는 화면 보호 기능을 사용하실 경우 문제를 해결할 방법이 없어 이를 해결하고자 SmartScreensaver를 만들게 되었습니다. 다음과 같이 처리 하시면 됩니다.
(중요)SmartScreenSaver를 사용하실경우 반드시 제어판->디스플레이속성->조명에서 외부 전원을 사용할때 조명이 자동으로 꺼짐은 사용하시면 안됩니다.
private bool m_bLCDBacklight;
public Form1()
{
InitializeComponent();
m_bLCDBacklight = true;
}
private void butTest_Click(object sender, EventArgs e)
{
if (m_bLCDBacklight == true)
{
MessageBox.Show("TEST Button Click!!!");
}
m_bLCDBacklight = true;
}
private void smartScreenSaver1_ONScreenSaverTimeOut(object sender, EventArgs e)
{
smartConfigs1.Display.BacklightControl(SmartX.CDisplay.OnOff.OFF);
m_bLCDBacklight = false;
}
private void Form1_Load(object sender, EventArgs e)
{
smartScreenSaver1.ScreensaverActionMode = SmartX.SmartScreenSaver.SCREENSAVERACTIONCODE.EVENT_ONLY;
smartScreenSaver1.ScreenSaverTimeoutSec = 10;
smartScreenSaver1.Start();
}
- 감사합니다.