소연의_개발일지
[C++ MFC] CTime 클래스 시간 형식 예시
개발공부/C++ 2024. 11. 12. 15:16

CTime 클래스는 MFC(Microsoft Foundation Class) 라이브러리에서 날짜와 시간을 관리하는 데 사용된다.CTime 객체를 특정 형식으로 포맷하려면 Format 함수를 사용하면 된다.(문자열로 변환해 줌) 주요 형식 코드는 다음과 같다.%a : 요일 이름의 축약형 (예: Mon, Tue)%A : 요일 이름 (예: Monday, Tuesday)%b : 월 이름의 축약형 (예: Jan, Feb)%B : 월 이름 (예: January, February)%d : 일 (01 ~ 31)%m : 월 (01 ~ 12)%y : 연도의 마지막 두 자리 (00 ~ 99)%Y : 연도 (예: 2024)%H : 24시간 형식의 시간 (00 ~ 23)%I : 12시간 형식의 시간 (01 ~ 12)%M : 분..

article thumbnail
[C++ MFC] 다이얼로그 창 항상 앞으로 띄우기, 주기적으로 창 앞으로 띄우기
개발공부/C++ 2024. 11. 5. 11:36

다이얼로그 창 항상 앞으로 띄우기 다이얼로그 속성에서 "System Modal" 를 "True""Topmost"를 "True" 로 설정한다.     주기적으로 창 앞으로 띄우기작업자들이 다른 창 띄우고 사용하다가 자리를 뜨면.. 현장에서 사용하는 메인화면을 가리기 때문에 필요했던 기능이다.다른 방법도 있겠지만 난 타이머를 사용해서 구현했다. 1. 헤더에 타이머 타이머에 쓸 define정의#define TIMER_DIALOG_ON_TOP 20241105 2. OninitDialog에 타이머 선언(필요시 여기서 들어가는 5 단위를 에딧박스로 만들면 된다)SetTimer(TIMER_DIALOG_ON_TOP, 5 * 1000 * 60, nullptr); // 5분에 한번씩 주기적으로 타이머 실행1초는 100..

article thumbnail
[Visual Studio c++] region 및 endregion / pragma 코드블럭 지정하기
개발공부/C++ 2024. 9. 27. 15:38

#pragma region에서는 Visual Studio 편집기의 개요 기능을 사용할 때 확장하거나 축소할 수 있는 코드 블록을 지정할 수 있습니다. 구문#pragma region이름 #pragma endregion주석#pragma region 이름#pragma endregion 주석  예시  이렇게 시작할 지점, 종료 지점에 이름과 주석을 각각 표시해 준다. 그럼 이렇게 접을 수 있다!  마이크로소프트에서 제시한 예시 👇// pragma_directives_region.cpp#pragma region Region_1void Test() {}void Test2() {}void Test3() {}#pragma endregion Region_1int main() {}  출처https://learn.micr..

article thumbnail
[C++ MFC] DeleteFile로 파일 삭제, Deletefile로 삭제 안 될때 오류코드
개발공부/C++ 2024. 9. 10. 13:53

DeleteFile() 함수는 Windows API에서 파일을 삭제할 때 사용하는 함수입니다.이 함수는 지정된 파일을 삭제하고 성공 여부를 반환합니다. 주요 요소인자 (Parameters):DeleteFile() 함수는 하나의 인자를 받습니다. 이는 삭제할 파일의 경로를 나타내는 문자열(LPCWSTR 또는 LPCTSTR)입니다.경로는 절대 경로 또는 상대 경로일 수 있으며, 유니코드 문자열(L"")로 표현해야 합니다.반환값 (Return Value):성공 시: TRUE를 반환.실패 시: FALSE를 반환하며, GetLastError()를 통해 오류 정보를 확인할 수 있습니다. 사용 예시#include #include int main() { // 삭제할 파일 경로 (예: "C:\\path\\to\\f..

article thumbnail
[C++ MFC] 창 최소화/최대화/작업표시줄로 내리기
개발공부/C++ 2024. 8. 5. 13:33

최소화 하기 1. 다이얼로그 우클릭 - 속성 클릭 2. 속성 창 - 모양 - minimize box 를 True로 바꿔줌실행시켜도 최소화 창만 활성화~~  최대화 하기1. 다이얼로그 우클릭 - 속성 클릭 2. 속성 창 - 모양 - maximize box 를 True로 바꿔줌  끝!!

[C++] csv 파일 쓰기
개발공부/C++ 2024. 7. 22. 14:05

추가 예정   예시 코드// 헤더에 작성// 헤더에 추가할 파일CFileManager m_FileManager  // cpp 원하는 함수에 추가CString strTime;CStdioFile file;CString strpath;CString strFile;CString strData;// 로컬 타임 가져오기SYSTEMTIME cur_time;GetLocalTime(&cur_time);strTime.Format(_T("%04d%02d%02d%02d%02d%02d%03ld"), cur_time.wYear, cur_time.wMonth, cur_time.wDay, cur_time.wHour, cur_time.wMinute, cur_time.wSecond, cur_time..

article thumbnail
[C++ MFC] Tray 기능 사용하기, 예제코드
개발공부/C++ 2024. 5. 28. 14:23

Tray 기능이란?윈도우의 트레이 영역(우측 하단)에 아이콘을 등록하여 백그라운드작업의 상태를 확인하거나 간단하게 컨트롤 할 수 있다. Tray 주요 함수와 속성 -  Shell_NotifyIcon(DWORD dwMessage, PNOTIFYICONDATA pnid )매개변수로 속성ID와 NOTIFYICONDATA 구조체를 가진다. -  DWORD dwMessage속성 ID내 용NIM_ADDTray영역에 등록NIM_DELETETray영역에서 제거NIM_MODIFY상태를 수정 -  PNOTIFYICONDATA pnid구조체 멤버내 용DWORD cbSize구조체의 크기HWND hWnd해당 Tray를 소유한 핸들UINT uIDTray의 IDUINT uFlagsTray가 가지는 속성UINT uCallbackMe..

article thumbnail
[C++ MFC] 다이얼로그 배경색 변경
개발공부/C++ 2024. 4. 16. 15:38

다이얼로그 배경색 변경 ctrl + shift + X 로 클래스 마법사에 들어간다. 해당 클래스 → 메세지 → WM_ERASEBKGND 를 더블클릭하여 추가한다. 아래 코드를 추가한다. // 다이얼로그 색 변경 BOOL CMultiClientChart::OnEraseBkgnd(CDC* pDC) { CRect rect; GetClientRect(rect); pDC->FillSolidRect(rect, RGB(0, 0, 0));// 변경하고 싶은 색상 RGB색 return TRUE; return CDialogEx::OnEraseBkgnd(pDC); } 끝~~~

[C++] 템플릿 공부하기
개발공부/C++ 2024. 4. 9. 14:11

템플릿에 대해 더 자세히 공부해보기로 함 참고 사이트 모드의 코드 - 씹어먹는 C++ https://modoocode.com/219 씹어먹는 C++ - 모두의 코드 씹어먹는 C++ - 작성일 : 2017-04-07 이 글은 79760 번 읽혔습니다. 에 대해서 배웁니다. 안녕하세요 여러분! 지난번 강좌 생각해보기는 잘 modoocode.com 템플릿이란? 우리가 함수를 사용하는 이유는 동일로직을 여러번 반복할 때, 그 반복을 줄이기 위해 생성한다. 함수 사용 예시) 1, 2를 입력하면 12 출력 std::string concatenateNumbers(int num1, int num2) { // Convert integers to strings std::string strNum1 = std::to_stri..

[C++] 하위 폴더 자동 생성 코드
개발공부/C++ 2024. 1. 16. 16:12

코드 void CDBAgentDlg::checkExistenceFolder(char* Path) { char DirName[256]; // 생성할 디렉토리 이름 char* p = Path; // 매개변수로 받은 디렉토리 char* q = DirName; while (*p) { if (('\\' == *p) || ('/' == *p)) // 디렉토리 혹은 서브 디렉터리 { if (':' != *(p - 1)) { CreateDirectory(DirName, NULL); } } *q++ = *p++; *q = '\0'; } CreateDirectory(DirName, NULL); } 사용 예시 /////////////////////////////////////// // CSV 값 가져오는 THREAD // ..