C/C++
-
-
[API]MessageBoxC/C++ 2015. 3. 12. 23:51
int MessageBox(HWND,IpText,IpCaption,uType); MessageBox는 프로그래밍을 접하면 많이 쓰이게되는 함수이다. IpText는 메세지박스내용이고, IpCaption은 메세지박스의 타이틀을 나타낸다. 소스는 간단하다. 메세지루프에서 WM_LBUTTONDOWN 이벤트가 생기면 메세지박스를 띄우는역할을한다. 메세지박스타입은 간단하게 MB_OK로, 확인버튼만 있는 메세지박스를 생성할것이다. 창을 클릭하게되면 위와같이 메세지박스가 뜬다
-
[API]TextOutC/C++ 2015. 3. 12. 23:36
TextOut함수는 문자열을 출력해주는 함수이다. BOOL TextOut(HDC hdc,int nXStart,int nYStart,LPCTSTR lpString, int cbString); TextOut원형이다. DC의 팬들인 hdc, 출력할 XY좌표, 출력할문자혹은 문자열, 출력할문자열의 길이 ex)TextOut(hdc,100,100,TEXT("HELLO WORLD"),11);ex2)TCHAR *str = TEXT("HELLO WORLD");TextOut(hdc,100,100,str,lstrlen(str)); 이렇게하면 문자열의 길이를 신경쓰지않아도된다. 소스코드를 보자 #include LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); HINSTANCE g..
-
[API]WndProcC/C++ 2015. 3. 12. 23:10
WndProc은 전에도 설명했듯이 메세지를 처리하는 함수이다. WndProc의 기본구조는 아래와같다. switch(iMessage) {case MSG:처리return 0;case MSG2:처리return 0;...default:return DefWindowProc(..);} 윈도우즈 프로시저함수로 메세지가 전달되면 case문에서 해당 메세지를 찾아 그 부분에서 처리한다. 예를들어 WM_LBUTTONDOWN이 전달되면 case WM_LBUTTONDOWN에서 처리하게된다. DefWindowProc함수는 WndProc에서 처리하지 않은 나머지 메시지들을 처리한다.시스템메뉴같은 switch-case문에서 처리하지못하는것은 해당함수에서 처리한다. 정리하자면 아래와같다. 1.GetMessage에서 메세지를 꺼낸다2..
-
[API]Message LoopC/C++ 2015. 3. 12. 23:04
메세지루프- 윈도우즈 프로그램에서 메시지를 처리하는 부분 WinMain함수 끝에 존재하며, 메인윈도우를 만든후 메인함수는 메세지 루프를 실행한다. while (GetMessage(&Message, NULL, 0, 0)) { TranslateMessage(&Message); DispatchMessage(&Message); 해당부분이 메세지루프이다. BOOL GetMessage() - 해당함수는 메시지 큐에서 메세지를 읽어들인다. 메세지큐란 시스템이나 ㅏ용자로부터 발생된 메세지가 잠시 대기하는 메시지 임시 저장영역이다.읽어들인 메세지는 GetMessage함수의 인자인 MSG구조체에 저장된다. 읽어들인 메세지가 WM_QUIT라면 FALSE를 리턴하며 다른메세지일경우 TRUE를 리턴한다.QUIT가아니면 루프가 ..