본문 바로가기

전체 글

API 리소스 리소스는 사전적 의미로 자원이란 의미를 가지고 있다. 소스코드는 개발자가, 리소스는 디자이너가 하는 식으로 분담 작업을 한다. 또한 리소스를 수정하더라도 프로그램을 다시 컴파일하지 않아도 되므로 개발 속도가 빨라진다. 소스코드와 리소스가 어떤 과정을 거처서 어느 시점에 결합이 되는 모식도를 보도록 한다. 소스 코드와 리소스는 각각 컴파일되어서 소스 코드는 *obj 파일이 되고, 리소스는 *.rc 파일이 되어 최종 실행 파일이 만들어지기 전 링크 단계에서 결합된다. 메뉴 만들기 솔루션 탐색기에서 리소스 파일을 클릭하고 마우스 오른쪽 버튼을 누르면 아래와 같이 나타난다. 여기서 리소스메뉴를 클릭한다. 대화상자에서 "Menu"선택하고 새로만들기 버튼을 클릭한다. 솔루션 탐색기의 리소스 파일에 Win32Proj.. 더보기
API 그리기 모드(Draw Mode) 래스터 연산 클라이언트 영역에 출력한 문자/그림의 색은 펜, 브러시의 색 자체이다. 클라이언트 영역에 그려저 있는 기존 도형의 색에 따라 출력하는 문자/그림의 색이 달라지게 하려면 다음 한수를 사용한다. SetROP2(hdc, nDrawMode); 그리기 모드를 구할 때 사용하는 함수이다. P : 펜 또는 브러시의 색, D : 화면 색 값 nDrawMode 연산식 그리는 방식(그려지는 색) 2 R2_NOTMERGEPEN ~(P|D) 펜과 화면의 색을 합한 색을 반전시킨 색 3 R2_NOT ~D 화면색의 반전색 4 R2_XORPEN P^D 펜과 화면색을 XOR 시킨 색 5 R2_MASKPEN P&D 펜과 화면색의 공통색 6 R2_COPYPEN P 펜의 색, 내정값 SetROP2(hdc, R2_XORPEN).. 더보기
API 마우스 기본적인 마우스 메시지 마우스메시지의 종류 메시지 설명 WM_LBUTTONDOWN 마우스 왼쪽 버튼을 눌렀을 때 WM_LBUTTONUP 마우스 왼쪽 버튼을 뗏을 때 WM_LBUTTONDBLCLK 마우스 왼쪽 버튼을 더블클릭 했을 때 WM_RBUTTONDOWN 마우스 오른쪽 버튼을 눌렀을 때 WM_RBUTTONUP 마우스 오른쪽 버튼을 뗏을 때 WM_RBUTTONDBLCLK 마우스 오른쪽 버튼을 더블클릭 했을 때 WM_MBUTTONDOWN 마우스 가운데 버튼을 눌렀을 때 WM_MBUTTONUP 마우스 가운데 버튼을 뗏을 때 WM_MBUTTONDBLCLK 마우스 가운데 버튼을 더블클릭 했을 때 WM_MOUSEMOVE 마우스가 움직일 때 마우스 클릭시 좌표정보( lParam ) lParam 매개변수는 32비트.. 더보기
API 타이머 WM_TIMER 메시지 윈도우는 타이머를 한 번 설정하면 종료하기 전까지 주기적으로 타이머 메시지를 발생 시킨다. 타이머를 시작하는 함수는 SetTimer이고 타이머를 종료하는 함수는 KillTimer이다. SetTimer() 함수 UINT_PTR SetTimer ( HWND hWnd, // 윈도우 핸들 UINT_PTR nIDEvent, // 타이머 ID로 정수값 UINT uElapse, // 시간 간격으로 단위는 밀리초(1000은 1초) TIMERPROC lpTimerFunc // 타이머가 보내는 WM_TIMER 메시지를 받을 함수 이름 ); KillTimer() 함수 BOOL KillTimer { HWND hWnd, UINT_PTR nIDEvent // 종료할 ID 입력 ); 오른쪽 방향키를 누르면 .. 더보기
API 키도드 입력로 도형제어 시작 #include #include LRESULT CALLBACK WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow) { HWND hwnd; MSG msg; WNDCLASS WndClass; WndClass.style = CS_HREDRAW | CS_VREDRAW; // 출력 형태 WndClass.lpfnWndProc = WndProc; // 프로시저 함수 WndClass.cbClsExtra = 0; // 클래스 여분 메모리 WndClass.cbWndExtra = 0; //.. 더보기
클래스를 배열로 선언하기 클래스의 오브젝트를 생성하여 배열에 초기값으로 지정하고 출력해보자. class Menu { int num; String fname; int price; Menu(int a, String b, int c) { num = a; fname = b; price = c; } } public class t1 { public static void main(String[] args) { Menu[] test = { new Menu(1, "사과", 1000), new Menu(2, "배", 1500), new Menu(3, "자두", 500), new Menu(4, "복숭아", 800), new Menu(5, "살구", 1000) }; System.out.println("\n####### 메뉴 리스트 #######");.. 더보기
실행파일 실행시 인자 삽입 int main(int argc, char* argv[]) 메인 함수에서 int main(int argc, char* argv[]) argc argument count argv argument vector 속성창에서 [디버깅] - 명령 인수에 인자값 삽입 더보기
파일 입출력 파일 입출력은 fstream의 ifstream 을 이용하여 파일을 입력하고 ofstream 을 이용하여 파일을 출력합니다. 파일 읽기 - ifstream 객체명("파일명"); 파일 쓰기 - ofstream 객체명("파일명"); ifstream 함수 함수 설명 close 파일 닫기 is_open 파일이 열러 있는지 확인 open 파일 열기 rdbuf 저장된 스트림 버퍼 주소를 반환 swap 이 basic_ifstream의 콘텐츠를 제공된 basic_ifstream의 콘텐츠로 교환 ofstream 함수 함수 설명 close 파일 닫기 is_open 파일이 열러 있는지 확인 open 파일 열기 rdbuf 저장된 스트림 버퍼 주소를 반환 swap 이 basic_ifstream의 콘텐츠를 제공된 basic_ifs.. 더보기