일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- C++
- tips강좌
- 핵심 요약
- SSG
- linux
- 유료강좌
- visual
- MFC
- 도움말
- 실습
- C
- do it c
- mysql
- win32
- 포트폴리오
- 마이크로소프트
- 정보처리기사
- C언어
- 충무창업큐브
- Time
- 별찍기
- 정처기 독학
- Tipsware
- ListBox
- 김성엽
- MyTread
- 미가공
- MyThread
- mfc 실습
- MFC 예제
- Today
- Total
목록MFC (65)
History
1. FTP에 접속하기 위해서는 아래의 헤더파일과 lib를 포함시켜야 한다. #include #pragma comment(lib,"wininet.lib") #include "direct.h" 2. 멤버 변수 선언 HINTERNET mh_ftp_session; //세션 생성을 위한 멤버 변수 HINTERNET mh_ftp_connection; //세션과 연결하기 위한 멤버 변수 3. 세션 생성하기 Win32 인터넷 함수를 사용하려면 세션을 생성해야 합니다. 세션은 InternetOpen 함수를 사용해서 생성할 수 있으며 다른 인터넷 함수를 사용할 때 사용됩니다. FTP 클라이언트를 만들기 위해서는 아래와 같이 InternetOpen 함수를 호출하여 세션을 생성하면 된다. mh_ftp_session = ::..
- Heap Memory는 프로그램에서 동적으로 할당된 메모리를 관리하는 데 사용되는 영역이다. - 운영체제는 프로그램이 실행될 때 프로그램에 메모리 공간을 할당한다. 이 공간은 stack과 heap으로 구분된다. - stack은 지역 변수와 함수 호출 시 생성되는 변수들을 저장하는 영역이고, heap은 동적으로 할당되는 메모리를 저장하는 영역이다. - heap Memory는 프로그램에서 필요한 만큼 동적할당해서 사용한다. 대표적으로 malloc, calloc, realloc, new와 같은 함수(new는 연산자)로 heap 영역에 메모리 할당이 가능하며 메모리 주소를 반환한다. - 반환된 주소는 포인터 변수에 저장되며, 이 포인터 변수를 통해 할당된 메모리에 접근 가능하다. - heap 메모리는 sta..

1. 운영체제 - 하드웨어는 여러 장치들로 구성되어 있다. - 각 장치는 사용 한계치가 있기 때문에 개별적인 관리가 필요하다. 위와 같은 이유로 컴퓨터를 구성하는 하드웨어를 공부하거나 이해할 필요 없이 각 장치들을 제어할 수 있도록 도와주고 장치의 한계치를 관리하고 보호하는 소프트웨어가 필요하다. 이것이 운영체제(Operating system O/S)이다. 위 그림처럼 운영체제가 컴퓨터 유저와 하드웨어 사이에서 끼어있는 모습이다. 2. 응용 프로그램과 API - 개발자들이 해당 운영체제에서 동작하는 프로그램을 개발 할 수 있는데 이것을 응용 프로그램이라고 한다. - 개발자들은 일반 사용자보다 효과적으로 하드웨어와 운영체제가 관리하는 정보에 접근할 수 있다.(일반 사용자는 제어판 혹은 탐색기로 접근 가능)..
UpdateData(true); //컨트롤의 값을 변수로 전달 UpdateData(false); //변수의 값을 컨트롤로 전달 UpdataData는 컨트롤과 변수의 값이 변경되면 갱신해 주는 함수이다. 기본값은 TRUE로 설정되어있다. MFC는 컨트롤과 값을 사용자가 고쳤다고 해서 스스로 판단하여 갱신시켜주지 않기 때문에 UpdataData와 같은 함수를 사용하는 것인데, 이때 사용자가 값이 변화가 생겨서 갱신시켜줘야 하는 컨트롤이 DoDataExchange에 컨트롤과 변수가 연결된 상태여야 한다. 사용 예시는 아래 내가 쓴 링크를 보고 참고하면 된다. https://hard-go-head.tistory.com/entry/MFC-STATIC-%EC%BB%A8%ED%8A%B8%EB%A1%A4-%ED%85%..

처음 프로젝트를 만들면 다이어로그 기본 세팅이 위 이미지와 같을 것이다. "TODO: 여기에 대화 상자 컨트롤을 배치합니다." 이 문구는 기본적으로 STATIC 컨트롤로 되어있는데 속성은 아래와 같다. ID부분을 보면 IDC_STATIC이라고 되어있다. IDC_STATIC은 해당 STATIC의 ID를 나타내는 것으로 문자열을 변경하려면 아래 코드를 이용해서 바꿀 수 있다. BOOL CtestStaticStringDlg::OnInitDialog() { CDialogEx::OnInitDialog(); // 이 대화 상자의 아이콘을 설정합니다. 응용 프로그램의 주 창이 대화 상자가 아닐 경우에는 // 프레임워크가 이 작업을 자동으로 수행합니다. SetIcon(m_hIcon, TRUE);// 큰 아이콘을 설정합..

이 프로그램은 파이썬이나 OpenCV를 활용하지 않고, Visual Studio 2022에서 제공하는 Visual C++에서 MFC를 사용하여 만들었습니다. 1번째로 현재 가용가능한 카메라 장치를 찾습니다. 저는 데스크탑 환경에서 작업을 하기 때문에 캠을 연결했습니다. 2번째로 영상보기 버튼을 눌러서 프로그램에서 캠을 동작시킵니다. 3번째로 빨간점 추적 버튼을 눌러서 실시간으로 나오는 영상을 캡쳐하여 영상에 빨간색이 출력되면 빨간색만 보여주도록 기능을 구현했습니다. 객체는 빅파이 과자로 테스트 했습니다. 아래는 실행 화면입니다.

이번 실습은 저번에 이어서 진행한다. 우선 파일 복사 기능은 오른쪽 목록에 있는 파일을 선택해서 왼쪽으로 복사하는 기능과 함께 파일을 삭제하는 기능을 구현했다. 또한 현재 작업 경로를 파일탐색기로 열어서 작업에 파일이 제대로 들어갔을 때 확인이 가능하도록 기능을 추가했다. 디렉토리를 옮기거나 삭제하는 코드는 추후에 작업하도록 하겠다. 그렇기 때문에 이번 실습에서는 디렉토리를 복사하거나 삭제하려고 할 때 MessageBox로 경고 메시지를 띄우고 있다. 아래는 실행 화면이다.

이번 실습은 현재 작업 경로에 있는 파일과 디렉토리 목록을 리스트 박스에 추가, 경로 이동, 원하는 파일 경로에 디렉토리 생성하는 실습을 진행했다. 경로 이동은 아래 사진과 같이 폴더와 파일이 존재한다. 폴더는 []로 둘러쌓인 디렉토리 항목을 마우스로 더블클릭하면 해당 디렉토리로 이동하는 기능을 구현하였다. 현재 작업경로를 얻을 때 사용하는 함수는 아래와 같다. DWORD GetCurrentDirectoryW( DWORD nBufferLength, LPWSTR lpBuffer ); GetCurrentDirectory 함수는 현재 프로그램의 작업 경로를 얻을 때 사용한다. 이 함수는 Window API 함수이기 때문에 일반 콘솔 환경에서도 windows.h 헤더 파일만 include 시키면 된다. 첫 번째..