본문 바로가기

분류 전체보기

(41)
[MFC] 키보드 입력, 키보드 이벤트 keybd_event() keybd_event() 함수는 Windows API에서 키보드 이벤트를 시뮬레이션하기 위해 사용되는 함수이다. 이 함수는 특정 키의 눌림 또는 놓임 동작을 시뮬레이션하여 운영 체제에 전달한다.  형태: void keybd_event( BYTE bVk, BYTE bScan, DWORD dwFlags, ULONG_PTR dwExtraInfo); 1. bVk: 가상 키 코드(Virtual-Key Code). 이 값은 눌리거나 놓일 키를 지정.  2. bScan: 하드웨어 스캔 코드. 일반적으로 0을 사용하며, 특정 키의 하드웨어 스캔 코드를 지정하려면 해당 값을 사용할 수 있다. 3. dwFlags: 동작 플래그를 지정. 이 플래그는 키 이벤트의 유형을 나타낸다. KEYEVENTF_EXTENDEDKEY: 확..
[MFC] 마우스 이동, 클릭, 휠 스크롤 / 마우스 이벤트 mouse_event() mouse_event() 함수는 Windows API 함수로, 마우스 이벤트를 시뮬레이션할 때 사용된다. 이 함수는 특정한 마우스 입력을 생성하여 운영 체제에 전달한다. 이를 통해 프로그램 내에서 마우스 클릭, 이동, 휠 스크롤 등의 동작을 자동화할 수 있다. 형태 : void mouse_event( DWORD dwFlags, DWORD dx, DWORD dy, DWORD dwData, ULONG_PTR dwExtraInfo); 1. dwFlags: 시뮬레이션할 마우스 동작을 지정하는 플래그.  MOUSEEVENTF_MOVE: 마우스 이동 (상대 좌표 이동)MOUSEEVENTF_LEFTDOWN: 왼쪽 버튼 눌림MOUSEEVENTF_LEFTUP: 왼쪽 버튼 놓음MOUSEEVENTF_RIGHTDOWN: 오른..
[MFC] 외부파일 가져오기 이미지 파일일 경우 :  CFileDialog fileDlg(TRUE, NULL, NULL, OFN_READONLY, _T("image file(*.jpg;*.bmp;*.png;)|*.jpg;*.bmp;*.png;|All Files(*.*)|*.*||")); if (fileDlg.DoModal() == IDOK) { CString path = fileDlg.GetPathName(); CT2CA pszString(path); std::string strPath(pszString); m_image = cv::imread(strPath),cv::IMREAD_UNCHANGED);} 문서 파일일 경우 :  CFileDialog fileDlg(TRUE, NULL, NULL, OFN_READONLY, _T("Docu..
[MFC]다이얼로그 배경색 변경 //WM_ERASEBKGND 추가//방법 : 프로젝트 -> 클래스 마법사 -> 클래스 이름 : (다이얼로그 클래스 이름) -> 메시지 -> WM_ERASEBKGND 추가 -> 적용 BOOL CUITestDlg::OnEraseBkgnd(CDC* pDC) { // TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.CRect rect; GetClientRect(rect); pDC->FillSolidRect(rect, RGB(110, 110, 110)); //원하는 색상 넣으면 끝!return TRUE; }
[MFC]XOR 모드를 사용하여 선택 영역 그리기 XOR 모드는 두 번 그리면 원래 상태로 돌아가기 때문에 선택 영역을 지우고 다시 그리기. 과정 프로젝트 - 클래스마법사 - 클래스 이름 : (해당클래스Dlg) - 메시지 WM_LBUTTONDOWNWM_LBUTTONUPWM_MOUSEMOVE추가.  해당클래스.h 에CPoint m_ptStart;CPoint   m_ptEnd;bool  m_bDragging;추가.  해당클래스.cpp에 void CMyView::OnLButtonDown(UINT nFlags, CPoint point) {       m_ptStart = point;      m_ptEnd = point;  //이게 없으면 최초 클릭시 좌표(0,0)에서 사각형 나옴 ㅎ       m_bDragging = true;       SetCapture..
Visual studio에 OpenCV 연동하기 OpenCV를 연동하기 위해서 이것 저것 찾아 봤지만 계속 오류가 발생했다. ㅠㅠ문제를 해결하기 위해서 찾아보다가 해결된 방법을 기록해두려 한다. ㅎ  https://nepersica.tistory.com/13  1. OpenCV 홈페이지에서 필요한 버전에 맞는 OpenCV를 원하는 위치에 설치 2. Visual studio에서 프로젝트 생성 후, ‘프로젝트’ -> ‘속성’ 클릭 3. 구성: 모든 구성, 플랫폼: x64로 변경  4. C/C++ → 추가 포함 디렉터리에 OpenCV가 설치된 경로에 포함된 build\include 추가 ex) D:\opencv\build\include 5. 링커 → 추가포함 디렉터리에 OpenCV가 설치된 경로에 포함된 x64\vc15\lib 추가 ex) D:\opencv..
MFC_ & 는 왜 사용할까?(&연산자) & 연산자는 C++에서 변수의 주소를 얻기 위해 사용된다. 이 연산자는 변수의 주소를 반환한다.  ex)   temp.Send(&value, sizeof(int));  &value는 value 변수의 메모리 주소를 의미한다. 따라서, temp.Send(&value, sizeof(int)); 코드는 value 변수에 저장된 int 타입 데이터를 네트워크를 통해 전송하라는 의미한다.   MFC 예제에서 &를 사용하는 이유 설명.  포인터와 주소:  1) 주소 연산자 &:& 연산자는 변수의 메모리 주소를 반환한다. 예를 들어, int value = 10;이라고 선언하면, value는 10이라는 값을 저장한다. 그러나 &value는 value가 저장된 메모리 위치의 주소를 반환한다.  2) 포인터:포인터는 다른..
MFC_서버(Server), 클라이언트(Client), 소켓(Socket)의 기본 개념과 예제. MFC를 사용하여 서버와 클라이언트 소켓 프로그램을 작성할 수 있다. 소켓 프로그래밍은 네트워크 상에서 데이터를 송수신하기 위한 기법으로, 서버와 클라이언트가 서로 데이터를 주고받을 수 있게 한다. 1. 기본 개념  1) 서버(Server) 클라이언트의 요청을 기다리고, 요청을 처리하는 프로그램. 서버는 특정 포트에서 클라이언트의 연결을 기다린다.  2) 클라이언트(Client) 서버에 연결하여 데이터를 요청하거나 서버로 데이터를 보내는 프로그램.  3) 소켓(Socket) 네트워크 상에서 통신을 하기 위한 끝점. 서버와 클라이언트는 각각 소켓을 통해 데이터를 주고받는다. 2. MFC에서의 소켓 클래스 종류 MFC에서는 소켓 프로그래밍을 쉽게 하기 위해 CSocket 클래스와 CAsyncSocket 클래..