2014년 10월 26일 일요일

MFC 프로젝트를 다이얼로그 기반으로 작성했을 때, 작업표시줄을 클릭해서 최소화나 최대화가 안될 경우.

메인 다이얼로그 클래스에서 WM_CREATE를 오버로딩하고, 아래의 코드를 집어 넣는다.

SetWindowLong(m_hWnd, GWL_STYLE, WS_SYSMENU | WS_MINIMIZEBOX );

아주 잘~~~된다.



A. GetWindowlong
   1. 특성
   주어진 윈도우에 관해 저장된 정보로부터 32비트 값을 얻어낸다.
   2. 구문
 GetWindowLong(hwnd : HWND ; nIndex : integer) : boolean;
   hwnd -> 윈도우의 핸들
  nIndex -> 추출해낼 정보의 타입을 결정한다. 타입은 아래 속성 표를 참조할것.
   GWL_EXSTYLE : 확장 윈도우 스타일
  GWL_HINSTANCE : 이 윈도우를 생성한 응용 프로그램의 인스턴스 핸들
  GWL_HWNDPARENT : 부모 윈도우의 핸들
  GWL_ID : 윈도우 컨트롤의 ID
  GWL_STYLE : 윈도우 스타일
  GWL_USERDATA : 응용 프로그램에서 정의한 값으로 이 윈도우와 연관된 32비트 값
  GWL_WNDPROC : 윈도우 프로시저(WndProc) 의 주소
  DWL_DLGPROC : 대화상자 프로시저(DlgProc) 의 주소
  DWL_MSGRESULT : dlgProc이 처리한 메세지의 반환값
  DWL_USER : 응용 프로그램 나름대로의 가외 정보
   B. SetWindowlong
 1. 특성
   윈도우에 연관된 32비트 값을 변경한다.
   2. 구문
   SetWindowlong(hwnd : HWND ; nIndex : integer; dwNewLong : integer) : boolean;
  hwnd -> 윈도우의 핸들
  nIndex -> 추출해낼 정보의 타입을 결정한다. 타입은 아래 속성 표를 참조할것.
  dwNewLong -> 새로운 32비트 값.
  GWL_EXSTYLE : 확장 윈도우 스타일을 바꾼다.
  GWL_HINSTANCE : 이 윈도우를 생성한 응용 프로그램의 인스턴스 핸들을 바꾼다.
  GWL_HWNDPARENT : 부모 윈도우의 핸들을 바꾼다.
  GWL_ID : 윈도우 컨트롤의 ID를 바꾼다.
  GWL_STYLE : 윈도우 스타일을 바꾼다.
  GWL_USERDATA : 응용 프로그램에서 정의한 값으로 이 윈도우와 연관된 32비트 값을 바꾼다.
  GWL_WNDPROC : 윈도우 프로시저(WndProc) 의 주소를 바꾼다.
  DWL_DLGPROC : 대화상자 프로시저(DlgProc) 의 주소를 바꾼다.
  DWL_MSGRESULT : dlgProc이 처리한 메세지의 반환값을 바꾼다.
  DWL_USER : 응용 프로그램 나름대로의 가외 정보를 바꾼다.

댓글 없음: