일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- win32
- 마이크로소프트
- 도움말
- ListBox
- Time
- MyTread
- 핵심 요약
- linux
- 유료강좌
- 충무창업큐브
- 별찍기
- 포트폴리오
- mysql
- 정처기 독학
- tips강좌
- do it c
- mfc 실습
- MFC 예제
- 김성엽
- C언어
- visual
- 미가공
- MFC
- MyThread
- 실습
- C++
- SSG
- C
- 정보처리기사
- Tipsware
- Today
- Total
목록김성엽 (65)
History
WindowFromPoint 함수는 자신의 윈도우가 아닌 다른 윈도우에서 마우스 위치에 있는 윈도우의 핸들 값을 얻는 함수이다. 이 함수를 이용하면 크롬이나 카카오톡 등 pc에서 실행중인 모든 프로그램의 핸들 값을 가지고 올 수 있다. 이 함수는 마우스 위치를 얻어야 하는 함수이기 때문에 매개 변수로 POINT 값이 들어간다. 윈도우가 없으면 NULL값을 반환하지만 화면 영역을 넘어가지 않는 이상 NULL이 반환될 일은 없다. HWND WindowFromPoint(POINT point); 그래서 이 함수는 마우스의 위치를 알아야 하기 때문에 GetCursorPos함수와 같이 사용하는 것이 일반적이다. POINT a_pos; ::GetCursorPos(&a_pos); //마우스의 위치를 윈도우 좌표계로 얻..

아래와 같이 쉼표로 구분된 문자열이 있습니다. "Hello~! ,My name is minki kim~ ,How are you today~? ,:)" 이 문자열을 쉼표 구분해서 아래와 같은 이미지처럼 나오게 하려면 어떻게 해야 할까? 정답은 간단하다. ','를 만나는 부분을 개행 문자(\n)로 바꾸면 해결된다. #include #pragma warning(disable:4996) int main() { char arr[100]="Hello~! ,My name is minki kim~ ,How are you today~? ,:)"; for (int i = 0; arr[i] !=NULL; i++){ if (arr[i]==','){ arr[i] ='\n'; } printf("%c", arr[i]); } ret..
보호되어 있는 글입니다.
앞으로 윈도우즈 프로그래밍을 하기 위해선 tcp통신은 의무적으로 해야 한다. 그러기 위해서 복습하는 느낌으로 글을 써보겠다. #include #pragma comment(lib, "WS2_32.lib") 소켓 관련 함수를 사용하기 위해서는 위의 헤더와 라이브러리를 같이 포함시켜줘야한다. #define _WINSOCK_DEPRECATED_NO_WARNINGS 위의 코드는 framework.h에 넣어주어야 한다. (Client, Sever 코드 둘 다 넣어줘야 한다.) 위의 오류코드를 적는 이유는 현재 소켓 함수들이 업데이트가 되어서 예전 함수를 쓰면 오류가 나기 때문이다. 현재는 공부하는 목적이기 때문에 예전 함수를 사용하기 위해서 위의 오류 코드를 적는 것이고 나중에 가면 위의 오류코드를 없앨 수 있도록..

아래와 같이 노란색 점들은 랜덤하게 뿌려져 있지만 특정 부분은 군집 형태의 모습을 띄고 있다. 이 군집 모양을 점과 점 사이의 거리가 짧은 곳이 군집이라고 판단하여 이 군집을 칠해보겠다. 다른 라이브러리 파일을 사용하는 것이 아닌 Visual Studio C++ MFC를 사용해서 칠해보는 것을 할 것이다. 위의 영상과 같이 체크 버튼을 눌렀을 때 점과 점 사이의 거리를 20이하이면 군집으로 구성된 점이라고 판단했다. 그렇기에 처음엔 빈 공간이 몇 있더라도 칠해졌다. 그리고 2번째 체크 버튼을 눌렀을 때는 PNG 비트맵을 한번 다시 탐색하고 이제 노란 선 및 점들 간 사이가 20 이하이면 더 칠하도록 구성했다. 3번째도 마찬가지이고 4번째부턴 더 이상 20 이하의 점들이 없기에 프로그램이 실행이 안된 것처..

1개의 CImage에 전부 그리는 것이 아닌 가상 dc를 만들고 각각의 CImage를 사용해서 배경과 사각형을 그릴 크기를 Create 했고, 마지막 물리 dc에 한 번에 출력하는 방향으로 작성했습니다. 이렇게 해야 나중에 배경 grid를 앞으로 빼내고 싶을 때 쉽게 작업할 수 있기 때문입니다.
이 예제는 MFC memory dc를 사용하여 끊김이나 깜빡임 없이 베이지어 곡선을 그리는 예제입니다. 베이지어를 구성하는 좌표를 사각형으로 표시하고 이 사각형을 움직이면 베이지어 곡선이 변경되도록 구성했습니다. POINT m_bezier_pos[4] = {{100, 100}, {200, 200}, {300, 50}, {400, 100}}; 베이지어를 구성하는 좌표는 위의 X Y 좌표로 설정했습니다.

이 프로그램은 Visual Studio 2022의 Visual C++에서 MFC를 사용해서 만들었습니다. 요즘 파이를 구매해서 라즈베리 프로그래밍을 해보고 싶은 사람들이 많습니다. 그러나 개발 공부를 한다고 장비를 사고 구석에 방치되는 것이 슬픈 현실이죠. 그래서 라즈베리 파이를 구매하기 전에 라즈베리 파이로 어떤 작업을 할 수 있는지 경험할 수 있게 해주는 프로그램을 같이 공부하는 사람들, 이끌어주시는 김성엽 선생님과 함께 만들어가고 있습니다. 이 프로그램은 라즈베리 파이를 단순히 흉내 내는 수준이 아니라 시뮬레이터에서 프로그램한 소스를 실제 라즈베리 파이로 옮겨서 컴파일만 시켜주면 사용 가능할 수 있게 만들고 있습니다. 지금은 기능 테스트를 진행중이기 때문에 인터페이스는 신경 쓰지 못하고 있습니다만 ..