LOWORD,HIWORD 32비트라는 운영체제 가정하에 WORD라는 건 unsigned short 이다. (typedef unsigned short WORD) unsigned short 는 2바이트이며 0부터 65535까지의 값을 나타낼 수 있다. #define LOWROD(I) ((WORD)(I)) #define HIWORD(I) ((WORD)(((DWORD)(I) >> 16 & 0FFFF)) LOWORD, HIWORD는 주로 DWORD (unsigned int_32) 를 두개로 나눌때(?) 사용합니다. 위에 보신대로 LOWORD는 워드형으로 형변환을 시킵니다. 즉.. 오른쪽 16자리의 값이 되겠지요 .. HIWORD는16자리 쉬프트후 워드형으로 형변환 시키므로 왼쪽의 16자리 값이 됩니다. ?? 먼소..
Cstring double로 변경하기 멀티바이트 환경 atof() 사용 CString thestring("13.37"); double d = atof(thestring). 유니코드 환경 _wtof() 사용 CString thestring(L"13.37"); double d = _wtof(thestring).
1. 컨트롤 변수의 경우 OnBnClickedRadioScaling70.EnableWindow(FALSE); // TRUE: 활성, FALSE: 비활성 // 컨트롤_변수_이름.EnableWindow(FALSE); 2. 버튼의 ID인 경우 GetDlgItem(IDC_RADIO_SCALING_70)->EnableWindow(true); 적용 예시 체크박스가 눌러져 있을 때 라디오 버튼 활성화/ 비활성화 코드 예시 void CDlgAdminSetting::OnBnClickedCheckSummaryDataAddSave() { UpdateData(true); // 라디오 버튼 활성/비활성화 if (m_bUseDataAddSave == true) { GetDlgItem(IDC_RADIO_SCALING_140)->E..

쓰레드 쓰레드 구문 #include detach()는 결과값을 기다리지 않고 다음 코드를 실행시키는 함수이다. join은 다른 쓰레드들이 끝날 때까지 기다려서 합친 후 실행시킨다. 쓰레드 개념을 공부하기 위해 따로 정리해 보았다. [C++] 멀티 쓰레드, 프로세스, 쓰레드 이해하기, C++ 예제 쓰레드 공부 공부 출처: 모두의 코드 C++ 쓰레드 https://modoocode.com/269 씹어먹는 C ++ - 모두의 코드 씹어먹는 C ++ - 작성일 : 2019-04-01 이 글은 115087 번 읽혔습니다. 에 대해 다룹니다. 안녕하세요 여러 giveme-happyending.tistory.com 전체 코드 함수 인클루드 #include "Process.h" // 프로세스 정보를 가져옴 #inclu..

쓰레드 공부 공부 출처: 모두의 코드 C++ 쓰레드 https://modoocode.com/269 씹어먹는 C ++ - 모두의 코드 씹어먹는 C ++ - 작성일 : 2019-04-01 이 글은 115087 번 읽혔습니다. 에 대해 다룹니다. 안녕하세요 여러분! 이번 강좌에서는 여태까지 modoocode.com 이 페이지를 스스로 공부하기 위해 요약한 것입니다. 자세한 내용은 위 링크를 참고하세요. 멀티 쓰레드 프로그램 작업 관리자 프로그램에는 여러 프로세스들이 실행되고 있는 모습을 확인할 수 있다. 프로세스란, 운영체계에서 실행되는 프로그램의 최소 단위라고 보면 된다. 즉, 우리가 1개의 프로그램을 가리킬 때 보통 1개의 프로세스를 의미하는 경우가 많다. 이 프로세스들은 컴퓨터의 두뇌라고 하는 CPU의 ..

라인에딧 값을 가져와서 검은 원을 그리는 코드를 그리며 공부해 보았다. 전체 코드 using namespace std; void CProDrawCircleDlg::OnBnClickedButton1() { CClientDC dc(this); // 라인에딧 값 가져오기 = 원의 반지름 가져오기 CString mText; mEdit.GetWindowText(mText); int r = _wtoi(mText.GetBuffer()); // 반지름 mText.ReleaseBuffer(); cout 0730(목) 강좌 리뷰~ 함수 vs 매크로 함수 : 함수는 분기(call)가 일어나서 실행된다.매크로 : 매크로에 지정된 루틴이 매크로가 사용된 지점(inline 키워드 사용)에 치환된다. 성능차이 - Size : Sp..
chrono 헤더 사용하여 c++ 함수 측정 시간을 측정하기 다음은 간단한 예제이다. #include #include // 시간 관련 기능을 포함하는 헤더 void someFunction() { // 이 함수에서는 1초 동안 멈춥니다. 실제 코드에서는 당신의 함수 로직을 넣어주세요. std::this_thread::sleep_for(std::chrono::seconds(1)); } int main() { // 시작 시간 측정 auto start = std::chrono::high_resolution_clock::now(); // 함수 실행 someFunction(); // 종료 시간 측정 auto stop = std::chrono::high_resolution_clock::now(); // 경과 시간 계..

참고 링크: https://www.youtube.com/watch?v=e6ivB-FQo_k&list=PLlIX4lkC1JdMx-vfK8I-J3-L-GL7TbMf9&index=11&pp=iAQB 초기값 어둡게 하기 변경한 부분 0으로 변경 memset(fm, 0, nWidth * nHeight); 밝기 부분 255로 나눠주기 // 점찍기 for (int k = 0; k < 100; k++) { int x = rand() % nWidth; int y = rand() % nHeight; fm[y * nPitch + x] = rand()%0xff; // 각각의 밝기에 대해서 255(0xff)로 나눠준다. } 좌표의 픽셀 값이 0이 아닐 경우로 바꿔주기 if (fm[j * nPitch + i] != 0) // 찍..

이미지 오버레이로 그림 그리기 메모리 릭 제거하기 메모리 릭을 막기 위해 새로 생성한 m_pDlgImgResult 에 대해서도 생성 후 삭제를 해 준다. 안전하게 존재하는지 if문을 걸어 작성해 준다. // 메모리 릭을 막기 위해 생성된 void CgPrjDlg::OnDestroy() { CDialogEx::OnDestroy(); if(m_pDlgImage) delete m_pDlgImage; if(m_pDlgImgResult) delete m_pDlgImgResult; } 타원 그리기 자식 다이얼로그에 타원을 그리는 코드를 만들어 볼 것이다. 먼저 헤더 폴더에 함수를 drawData를 정의해 주고 선언만 해 줬으니 cpp 파일에서 정의를 해 준다. CDlgImage 클래스 안에 있어야 하니 CDlgIm..

참고 링크: https://youtu.be/EoXP_PH0xzA?list=PLlIX4lkC1JdMx-vfK8I-J3-L-GL7TbMf9 github에서 중간단계 파일 받기 위 영상 출처) github에서 gLim-main/mfcExam 검색 후 다운받기 새 다이얼로그 이미지 만들기 헤더 이동 단축키 Ctrl + O + K DlgImage.h 파일에서 이미지 변수를 만들어 준다. CImage m_Image; // 이미지 변수를 만든 것 그리고 변수만 선언을 해준것이기 때문에 cpp 파일에서 실체를 만들어줘야 한다. ctrl + K + O 로 다시 cpp 파일로 돌아가서 initial dialog를 생성해 준다. 다이얼로그가 생성될 때는 항상 initial dialog를 콜(호출)하기 때문에 이 부분이 선행..