[CHAPTER 03] Visual C++ 2022 MFC 윈도우 프로그래밍 - 연습문제
2023. 5. 15. 00:56ㆍ기타(이론)/C++ MFC 윈도우 프로그래밍
1. 마우스와 키보드를 이용하여 스톱워치 기능을 하는 프로그램 작성하라.
BOOL CreateFont(
int nHeight,
int nWidth,
int nEscapement,
int nOrientation,
int nWeight,
BYTE bItalic,
BYTE bUnderline,
BYTE cStrikeOut,
BYTE nCharSet,
BYTE nOutPrecision,
BYTE nClipPrecision,
BYTE nQuality,
BYTE nPitchAndFamily,
LPCTSTR lpszFacename);
https://kwonkyo.tistory.com/94#gsc.tab=0
[C++/MFC] CString 다양한 기능들 정리
CString은 MFC에서 문자열을 처리를 아주 쉽게 처리할 수 있도록 제공해주는 클래스라서 내장된 기능이 어마어마 합니다. 사용법만 알면 간단히 사용할 수 있도록 만들어 두었는데 그 내부를 보면
kwonkyo.tistory.com
https://codingcoding.tistory.com/494
[MFC강좌] CreateFont(), CFont 사용 방법 (static 폰트 변경 방법 예제)
[MFC강좌] CreateFont(), CFont 사용 방법 (static 폰트 변경 방법 예제) 이번 MFC강좌에선 CFont의 CreateFont() 사용 방법을 알아보겠습니다. CreateFont를 사용하기 위해선 하나의 객체를 생성한 뒤, 폰트(CFont)를
codingcoding.tistory.com
https://blog.naver.com/0k00k0/222167075484
[ MFC 프로그램 ] Stop Watch 만들기
프로그램 설명 처음 프로그램 실행 시에는 작동 정지 상태이다. 왼쪽 마우스를 클릭하면 시작한다. 작동 중...
blog.naver.com
해냈뜨아!!!!!!!!!!!!
// CExercise31View 메시지 처리기
void CExercise31View::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
m_nMSec++;
if (m_nMSec == 60) {
m_nMSec = 0;
m_nSecond++;
}
if (m_nSecond == 60) {
m_nSecond = 0;
m_nMinute++;
}
m_strStopWatch.Format(_T("%02d: %02d. %02d"), m_nMinute, m_nSecond, m_nMSec);
Invalidate();
CView::OnTimer(nIDEvent);
}
void CExercise31View::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
if (m_bStopWatchRun == false)
{
m_bStopWatchRun = true;
SetTimer(0, 10, NULL);
}
else if (m_bStopWatchRun == true)
{
KillTimer(0);
m_bStopWatchRun = false;
}
CView::OnLButtonDown(nFlags, point);
}
void CExercise31View::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
if (m_bStopWatchRun && nChar == VK_SPACE) {
CString strRecord;
strRecord.Format(L"%2d. ", m_nCount + 1);
m_strRecord[m_nCount++] = strRecord + m_strStopWatch;
if (m_nCount == 30) m_nCount = 0;
}
Invalidate();
CView::OnKeyDown(nChar, nRepCnt, nFlags);
}
void CExercise31View::OnRButtonDown(UINT nFlags, CPoint point)
{
// TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
if (m_bStopWatchRun == false)
{
if (AfxMessageBox(_T("스톱워치를 초기화하시겠습니까?"),
MB_YESNO | MB_ICONQUESTION) == IDYES)
{
//모든 변수를 초기화
for (int i = 0; i < 30; i++) {
m_strRecord[i].Empty();
}
m_nCount = 0;
m_nMinute = 0;
m_nSecond = 0;
m_nMSec = 0;
m_strStopWatch = _T("00:00.00");
}
Invalidate();
}
else
{
AfxMessageBox(_T("작동 중에는 초기화 할 수 없습니다."),
IDOK | MB_ICONERROR) == IDYES;
}
CView::OnRButtonDown(nFlags, point);
}
'기타(이론) > C++ MFC 윈도우 프로그래밍' 카테고리의 다른 글
[CHAPTER 04] Visual C++ 2022 MFC 윈도우 프로그래밍 - 연습문제 (0) | 2023.05.17 |
---|---|
[CHAPTER 04] 대화상자 (0) | 2023.05.17 |
[CHAPTER 03] 메시지 처리 (0) | 2023.05.14 |
[CHAPTER 02] Visual C++ 2022 MFC 윈도우 프로그래밍 - 연습문제 (0) | 2023.05.12 |
[CHAPTER 02] MFC 개요 및 아키텍처 (0) | 2023.05.12 |