DEV/C++
-
일반적으로 헤더파일의 중복 포함을 방지하기 위한 방법으로1. #pragma once 와 2. include Guard 의 2가지 방법을 사용하며 큰 결과물(헤더가 중복 컴파일 되지 않음)은 동일하다. 하지만 세부적으로 구현 및 동작에 차이가 있고 각 상황마다 권장되는 방식이 다르기 때문에 차이점을 알고 구분해서 사용하는것이 좋다.1. #pragma once 구현 Header 파일 최상단에 위치함.( Include 선언 전에) Visual Studio 에서 자체 생성되는 Class 의 헤더 파일에 자동으로 추가되는 형태. #pragma once// 헤더 파일 내용class CustomClass { // 클래스 정의}; 특장점 코드의 간결함: 한 줄로 중복 포함 방지를 설정해서 코드가 간결해짐.빠른 ..
헤더 중복 방지 #pragma once 와 Include Guard 차이일반적으로 헤더파일의 중복 포함을 방지하기 위한 방법으로1. #pragma once 와 2. include Guard 의 2가지 방법을 사용하며 큰 결과물(헤더가 중복 컴파일 되지 않음)은 동일하다. 하지만 세부적으로 구현 및 동작에 차이가 있고 각 상황마다 권장되는 방식이 다르기 때문에 차이점을 알고 구분해서 사용하는것이 좋다.1. #pragma once 구현 Header 파일 최상단에 위치함.( Include 선언 전에) Visual Studio 에서 자체 생성되는 Class 의 헤더 파일에 자동으로 추가되는 형태. #pragma once// 헤더 파일 내용class CustomClass { // 클래스 정의}; 특장점 코드의 간결함: 한 줄로 중복 포함 방지를 설정해서 코드가 간결해짐.빠른 ..
2024.05.20 -
JAN Code는 쉽게 말해서 일본에서 사용되는 바코드의 형태이다. (JAN 자체가 Japanese Article Numbering 의 약자) 바코드와 같이 각 Index별로 의미하는 값이 정해진다 (참조 :https://www.gs1jp.org/code/jan/procedure.html) 실제 구현 코드보면 글보다 더 쉽다.. #C++/QT 사용 #include #include #include bool validateCode(const QString& code, int length) { QRegularExpression regex("^[0-9]{" + QString::number(length) + "}$"); QRegularExpressionMatch match = regex.match(code); r..
JAN(Bar)Code 생성 QT Sample SourceJAN Code는 쉽게 말해서 일본에서 사용되는 바코드의 형태이다. (JAN 자체가 Japanese Article Numbering 의 약자) 바코드와 같이 각 Index별로 의미하는 값이 정해진다 (참조 :https://www.gs1jp.org/code/jan/procedure.html) 실제 구현 코드보면 글보다 더 쉽다.. #C++/QT 사용 #include #include #include bool validateCode(const QString& code, int length) { QRegularExpression regex("^[0-9]{" + QString::number(length) + "}$"); QRegularExpressionMatch match = regex.match(code); r..
2023.11.02 -
기본 다이얼로그에 Static Control 올리면 그 컨드롤 영역만큼 기본 배색(회색)으로 보이는데, 이렇게 그 영역만큼 보여서 해당 부분을 투명화 하는 처리가 필요하다. 다이얼로그에 WM_CTLCOLOR 이벤트 추가 한뒤, 해당 이벤트 함수(OnCtlColor) 수정 HBRUSH CStaticTest::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor); int nRet = pWnd->GetDlgCtrlID(); if (nRet == IDC_STATIC ) //여기에 투명화 처리할 Static ID추가 { pDC->SetBkMode(TRANSPARENT); hb..
[MFC] Static Control 배경 투명화기본 다이얼로그에 Static Control 올리면 그 컨드롤 영역만큼 기본 배색(회색)으로 보이는데, 이렇게 그 영역만큼 보여서 해당 부분을 투명화 하는 처리가 필요하다. 다이얼로그에 WM_CTLCOLOR 이벤트 추가 한뒤, 해당 이벤트 함수(OnCtlColor) 수정 HBRUSH CStaticTest::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor); int nRet = pWnd->GetDlgCtrlID(); if (nRet == IDC_STATIC ) //여기에 투명화 처리할 Static ID추가 { pDC->SetBkMode(TRANSPARENT); hb..
2021.07.07 -
Dialog 에 UPDATE_COMMAND_UI 가 적용 안되는 증상 아래는 토글flag에 따라 메뉴UI 활성/비활성 화 하기 위한 소스인데, 1.초기 버튼토글 위한 전역 변수생성, 초기화. _bstart = TRUE; 2. 버튼 컨트롤의 COMMAND, UPDATE_COMMAND_UI 만들어서 함수내용 작성한다. //ID_STRAT버튼의 COMMAND 이벤트함수 void CMenuTestDlg::OnStrat() { _bstart = !_bstart; //토글 } //ID_STRAT버튼의 UPDATE_COMMAND_UI void CMenuTestDlg::OnUpdateStrat(CCmdUI* pCmdUI) { if (_bstart == TRUE) pCmdUI->Enable(FALSE); //메뉴 비활성..
[MFC]Dialog UPDATE_COMMAND_UI 안먹는 문제Dialog 에 UPDATE_COMMAND_UI 가 적용 안되는 증상 아래는 토글flag에 따라 메뉴UI 활성/비활성 화 하기 위한 소스인데, 1.초기 버튼토글 위한 전역 변수생성, 초기화. _bstart = TRUE; 2. 버튼 컨트롤의 COMMAND, UPDATE_COMMAND_UI 만들어서 함수내용 작성한다. //ID_STRAT버튼의 COMMAND 이벤트함수 void CMenuTestDlg::OnStrat() { _bstart = !_bstart; //토글 } //ID_STRAT버튼의 UPDATE_COMMAND_UI void CMenuTestDlg::OnUpdateStrat(CCmdUI* pCmdUI) { if (_bstart == TRUE) pCmdUI->Enable(FALSE); //메뉴 비활성..
2021.07.05 -
MFC에서 체크박스나 라디오버튼 체크 옵션 SetCheck(TRUE); 함수 사용한다 CButton* pButton; pButton = (CButton*)GetDlgItem(IDC_RADIOBUTTON); pButton->SetCheck(TRUE); 하거나, IDC_RADIOBUTTON 의 컨트롤 멤버변수 설정해서 멤버변수가 m_radiobutton 이라면, m_radiobutton.SetCheck(TRUE);
[MFC] CheckBox, RadioButton 체크 옵션MFC에서 체크박스나 라디오버튼 체크 옵션 SetCheck(TRUE); 함수 사용한다 CButton* pButton; pButton = (CButton*)GetDlgItem(IDC_RADIOBUTTON); pButton->SetCheck(TRUE); 하거나, IDC_RADIOBUTTON 의 컨트롤 멤버변수 설정해서 멤버변수가 m_radiobutton 이라면, m_radiobutton.SetCheck(TRUE);
2021.07.05 -
BOOL DestroyWindow(HWND hWnd); 윈도우를 파괴 BOOL CloseWindow(HWND hWnd); 윈도우를 최소화 BOOL GetWindowRect(HWND hWnd, LPRECT lpRect); 윈도우의 위치와 좌표 BOOL GetClientRect(HWND hWnd, LPRECT lpRect); 대상 윈도우의 작업영역의 크기를 구함 BOOL MoveWindow(HWND hWnd, int X, int Y, int nWidth, int nHeight, BOOL bRepaint); 윈도우의 위치와 크기를 동시에 변경하는 기본적인 함수 BOOL SetWindowPos(HWND hWnd, HWND hWndInsertAfter, int X, int Y, int cx, int cy, UIN..
Win32 Window관리 함수들BOOL DestroyWindow(HWND hWnd); 윈도우를 파괴 BOOL CloseWindow(HWND hWnd); 윈도우를 최소화 BOOL GetWindowRect(HWND hWnd, LPRECT lpRect); 윈도우의 위치와 좌표 BOOL GetClientRect(HWND hWnd, LPRECT lpRect); 대상 윈도우의 작업영역의 크기를 구함 BOOL MoveWindow(HWND hWnd, int X, int Y, int nWidth, int nHeight, BOOL bRepaint); 윈도우의 위치와 크기를 동시에 변경하는 기본적인 함수 BOOL SetWindowPos(HWND hWnd, HWND hWndInsertAfter, int X, int Y, int cx, int cy, UIN..
2021.06.25