반응형
윈도우 캡션(타이틀)을 깜빡거리게 만드는 방법에 대해서 알아보겠습니다.
// 사용하고자하는 클래스 헤더파일에 아래의 코드를 추가한다.
private:
BOOL m_flag;
private:
BOOL m_flag;
// 클래스의 객체 생성자에 아래의 코드를 추가한다.
m_flag = TRUE;
// ClassWizard를 이용하여 WM_SYSCOMMAND 메시지를 등록하고 해당 메시지 핸들러에
// 아래의 코드를 추가한다.
// 일반적인 ClassWizard 설정에서 대화상자의 경우 WM_SYSCOMMAND 메시지가 목록에
// 없을 때는 아래와 같이 설정하면 된다.
// 해당 대화상자에 최소화 버튼이 없을 경우에는 아래와 같이 설정하면 된다.
// 최소화 버튼이 눌러졌는지 체크하여 최소화 버튼이 눌렸다면 Timer를 생성하고
// 윈도우가 RESTROE 되었을 때 윈도우의 깜빡임을 멈추기 위해 생성한 Timer를 종료한다.
void 클래스명::OnSysCommand(UINT nID, LPARAM lParam)
{
if((nID & 0xFFF0) == SC_MINIMIZE) SetTimer(1, 1000, NULL);
else if((nID & 0xFFF0) == SC_RESTORE) KillTimer(1);
CDialog::OnSysCommand(nID, lParam);
}
// 윈도우가 RESTROE 되었을 때 윈도우의 깜빡임을 멈추기 위해 생성한 Timer를 종료한다.
void 클래스명::OnSysCommand(UINT nID, LPARAM lParam)
{
if((nID & 0xFFF0) == SC_MINIMIZE) SetTimer(1, 1000, NULL);
else if((nID & 0xFFF0) == SC_RESTORE) KillTimer(1);
CDialog::OnSysCommand(nID, lParam);
}
// ClassWizard를 이용하여 WM_TIMER 메시지를 등록하고 해당 메시지 핸들러에
// 아래의 코드를 추가한다.
// 아래의 코드를 추가한다.
void 클래스명::OnTimer(UINT nIDEvent)
{
if(nIDEvent == 1){
// m_flag 값에 따라 윈도우 캡션이 반전되게 된다.
FlashWindow(m_flag);
m_flag = !m_flag;
}
{
if(nIDEvent == 1){
// m_flag 값에 따라 윈도우 캡션이 반전되게 된다.
FlashWindow(m_flag);
m_flag = !m_flag;
}
CDialog::OnTimer(nIDEvent);
}
}
<< 실행화면 >>
반응형
'C & C++ > MFC 컨트롤' 카테고리의 다른 글
특정 색상을 제외한 투명한 다이얼로그 (0) | 2013.05.07 |
---|---|
다이얼로그 최대화 하는 2가지 방법 (0) | 2012.11.28 |
분할 윈도우(Splitter) (0) | 2012.09.03 |
Tree 와 List 가 합쳐진 트리 (0) | 2012.08.31 |
스크롤바 꾸미기(색상표) (0) | 2012.08.21 |
댓글