본문 바로가기

프로그래밍/시스템11

윈도우 어플의 종료 윈도우는 통상적으로 ALT+F4 / 받기버튼가 눌린경우 (1) WM_CLOSE 발생 (2) DestroyWindow() 호출 (3) WM_DESTROY 발생 와 같은 순서로 동작 하게 된다. (1) 일반적으로 처리할 필요가 없으며 DefWindowProc() 함수가 처리하게 두면 DestroyWindow() 를 호출하여 윈도우를 파괴하도록 한다. (2) WM_DESTROY 메세지를 발생시켜 종료 처리를 할 기회를 주며 키보드 포커스 버리고 메뉴를 파괴하고 메세지 큐를 완전히 비운다. 동작중인 타이머가 있으면 파괴하고 클립보드 소유권을 제거 한다. Child 윈도우가 존재하면 WM_DESTROY가 후손에게도 차례로 전달된다. (3) 메인 윈도우일 경우 반드시 PostQuitMessage() 함수를 호출하여.. 2010. 9. 26.
Win32 API 어플리케이션이 시작하고 종료할 때 발생하는 메세지들 0x0024 : WM_GETMINMAXINFO 0x0081 : WM_NCCREATE 0x0083 : WM_NCCALCSIZE 0x0001 : WM_CREATE 0x0018 : WM_SHOWWINDOW 0x0046 : WM_WINDOWPOSCHANGING 0x000D : WM_GETTEXT 0x0046 : WM_WINDOWPOSCHANGING 0x001C : WM_ACTIVATEAPP 0x0086 : WM_NCACTIVATE 0x007F : WM_GETICON 0x007F : WM_GETICON 0x007F : WM_GETICON 0x0006 : WM_ACTIVATE 0x0281 : WM_IME_SETCONTEXT 0x0282 : WM_IME_NOTIFY 0x0007 : WM_SETFOCUS 0x0085 .. 2010. 9. 26.
Win32 API로 프로그램을 작성할 때에.. 1. WM_PAINT 메세지 처리루틴에 Begin/EndPaint() 함수를 꼭 넣어주자. 안 그러면 WM_PAINT 메세지가 무한히 발생한다. 결국은 CPU 사용율 증가.. 오래전에 알았던 내용인데 까먹고 있다가 코드 테스트중 CPU 사용율이 증가해서 한참을 삽질함.. - DefWindowProc() 함수 호출로 해결 가능하군.. 2. CreateWindow() 함수는 리턴 되기도 전에 WM_CREATE 메세지를 발생시키며 WndProc을 호출하여 처리까지 해버린다. 이 때, WndProc() 함수는 리턴도 안된 윈도우 핸들을 인자로 넘겨 받는다. 이것 때문에 얼마나 골머리를 앓았나... Win32 API를 class화 하던 도중 Child 윈도우가 생성되지 않아 골머리를 앓고 있었는데 디버깅을 해보니.. 2010. 9. 23.
[WinCE BSP] 스트림 인터페이스 드라이버 * Registration HANDLE RegisterDevice( LPCWSTR lpszType, DWORD dwIndex, LPCWSTR lpszLib, DWORD dwInfo ) BOOL DeregisterDevice( HANDLE hDevice ) HANDLE ActivateDevice( LPCWSTR lpszDevKey, DWORD dwClientInfo ) HANDLE ActivateDeviceEx( LPCWSTR lpszDevKey, LPPCVOID lpRegEnts, DWORD cRegEnts, DWORD lpvParam ) BOOL DeactivateDevice( HANDLE hDevice ) * Interface DWORD xxx_Init( LPCTSTR pContext, DWORD d.. 2008. 2. 6.