목록STUDY (137)
개발자 '쑥말고인절미'
간단 정리Invalidate() 메소드는 무효화된 영역을 설정하여 화면을 생긴하는 WM_PAINT 메시지를 발생시키는 함수UpdateWindow() 메소드는 갱신할 영역이 있으면 시스템의 상태와 상관없이 즉각 갱신하라고 명령하는 함수 InvalidateRect()와 UpdateWindow()를 같이 쓰는 이유WM_PAINT는 우선순위가 가장 낮기 때문에 메시지가 발생했다 해도 즉각적으로 화면을 갱신해주지 않는다.일반적인 경우에는 InvalidateRect() 메소드만 사용해도 갱신이 정상적으로 잘 되지만, 화면을 즉각적으로 갱신하거나 CPU에 부담을 주는 작업이 진행되면서 InvalidateRect() 메소드를 사용하면 생각보다 갱신이 느려질 수 있다.그래서 시스템의 상태에 상관없이 즉각적으로 갱신이 필..
간단 요약두 메소드 모두 윈도우의 위치와 크기를 설정할 수 있지만, SetWindowPos()는 더 많은 옵션을 제공, MoveWindow()는 좀 더 단순한 작업에 적합하다.SetWindowPos() : 윈도우의 위치, 크기, Z 순서, 기타 속성까지 세부적으로 제어할 수 있는 유연한 함수이고, 다양한 플래그를 통해 동작을 세밀하게 제어할 수 있다.MoveWindow() : 윈도우의 위치와 크기만 설정하는데 사용되며, 다른 속성은 변경하지 않는다. 상대적으로 간단한 작업에 적합하다.SetWindowPos()윈도우의 위치와 크기를 설정하며, 윈도우의 Z 순서(Z-order)와 같은 추가 속성도 제어할 수 있다.위치, 크기 외에도 Z 순서, 윈도우 스타일 등의 속성을 변경할 수 있다.윈도우가 보이는지, 보..
간단 요약세 메소드 모두 윈도우 컨트롤의 위치와 크기를 다루는 함수이다.GetWindowRect() : 윈도우의 전체 영역을 화면 좌표로 가져온다.GetClientRect() : 클라이언트 영역의 크기만을 가져오며, 좌표는 (0, 0)에서 시작하는 클라이언트 좌표이다.ScreenToClient() : 화면 좌표를 클라이언트 좌표로 변환한다.GetWindowRect()윈도우의 외부 직사각형(전체 영역)의 좌표를 가져온다.화면(Screen) 좌표계. 즉, 화면의 왼쪽 위 모서리를 (0, 0)으로 하는 절대좌표윈도우의 전체 크기와 위치를 반환하는데 타이틀바, 테두리, 메뉴 등 모든 외부 요소가 포함된다.GetClientRect()클라이언트 영역(클라이언트 직사각형)의 좌표를 가져온다.클라이언트(Client) ..
요약nullptr은 C++11 표준에서 도입된 키워드이다.C++ 이전 버전에서는 포인터가 아무것도 가리키지 않음을 나타내기 위해 NULL을 사용했지만, NULL은 0 으로 정의된 매크로였기 때문에 몇 가지 문제가 있었다nullptr 도입 이전의 문제점타입 안정성NULL은 본질적으로 정수형 0과 동일했기 때문에, 포인터와 정수를 구분하기 어려운 경우가 있었다. 예를 들어, 함수 오버로딩이나 템플릿에서 NULL을 사용하는 경우 애매한 상황이 발생할 수 있었다.함수 오버로딩함수 오버로딩 시 NULL 을 전달할 때 어떤 오버로드를 선택할지 명확하지 않은 경우가 있었다. 예를 들어, 정수와 포인터를 매개변수로 받는 두 함수가 있을 때, NULL을 전달하면 정수 오버로드를 선택할 수도 있었다.nullptr의 장점타..
간단 설명MFC에서 메인 윈도우(CMainFrame 클래스)를 가져와서 pMain이라는 포인터에 저장하는 코드MFC 애플리케이션에서 메인 프레임 윈도우에 대한 포인터를 얻고, 이를 통해 메인 프레임 윈도우의 기능이나 상태를 제어하기 위해 사용된다.MFC 애플리케이션에서 메인 윈도우에 접근하고자 할 때 매우 유용한 패턴이다.CMainFrame* pMain = (CMainFrame*)AfxGetMainWnd();각 구문의 의미AfxGetMainWnd()해당 함수는 현재 애플리케이션의 메인 윈도우에 대한 포인터를 반환한다.이 함수는 MFC의 CWnd* 타입의 포인터를 반환하며, MFC 애플리케이션에서 메인 윈도우를 참조하는 데 자주 사용한다.CMainFrame*MFC 애플리케이션에서 메인 프레임 윈도우를 나타..
클래스 전방 선언전방 선언을 사용하면 헤더 파일에서 클래스의 이름만 알려주고, 실제 클래스 정의는 해당 클래스가 필요한 구현 파일에서 포함하도록 할 수 있다.전방 선언 사용 방법클래스 전방 선언 (Forward Declaration)헤더 파일에서 다른 클래스에 대한 포인터나 참조를 사용하려면 해당 클래스의 전방 선언을 사용할 수 있다. 전방 선언은 클래스의 정의가 아닌 클래스의 이름만 알려준다.구현 파일에서 클래스 정의 포함실제 클래스 정의가 필요한 구현 파일에서 헤더 파일을 포함한다.//--------------------------- A.h(헤더)#ifndef A_H#define A_Hclass A {public: void setValue(int val); int getValue() con..
요약'ON_MESSAGE()'는 MFC 애플리케이션에서 사용자 정의 메시지를 처리할 때 사용하는 매크로이다. 이 매크로를 사용하여 특정 사용자 정의 메시지가 발생할 때 호출할 함수와 메시지를 연결할 수 있다. 이를 통해 개발자는 표준 윈도우 메시지 외에 자신만의 메시지를 정의하고 처리할 수 있다.ON_MESSAGE()사용자 정의 메시지 핸들러를 클래스에 연결하는데 사용한다. 사용자 정의 메시지랑 애플리케이션에서 사용자가 정의한 메시지로, 주로 윈도우 시스템 표준 메시지 외에 추가적으로 필요할 때 사용된다.사용목적'WM_COMMAND', 'WM_PAINT' 등의 표준 윈도우 메시지와 관련된 핸들러 함수를 클래스에 연결하기 위해 메시지 맵(message map)이라는 매커니즘을 사용한다. 이 메시지 맵은 '..
한 줄 요약ini 파일은 간단한 설정 정보를 저장하는 데 주로 사용되며, 더 복잡한 설정이나 구조를 필요로 하는 경우에는 JSON, XML, YAML과 같은 다른 형식이 사용되기도 한다..ini 파일설정 파일 형식 중 하나로, 주로 SW 애플리케이션의 초기화 및 구성 설정을 저장하는 데 사용된다.일반 텍스트 형식이며, 간단한 구조를 가지고 있어 사람이 쉽게 읽고 편집할 수 있다.ini는 initialization의 약어.ini 파일의 구조와 내용섹션 (Section)대괄호('[]')로 감싸진 텍스트로, 관련된 키-값 쌍을 그룹화하는 데 사용된다.키-값 쌍(Key-Value Paris)각 섹션 내에서 특정 설정 항목을 정의하는 키와 해당 값으로 이루어져 있다.키와 값은 등호('=')나 콜론(';')으로 구..