[Visual C++] UI tip

spring·2020년 11월 9일
0

[MFC] in Design

응용 프로그램 종류
└ 단일문서
└ MFC 표준
└ 문서/뷰 아키텍쳐 지원
└ 공유 DLL에서 MFC 사용
사용자 인터페이스 기능
└ 주 프레임스타일 모두 해제
└ 명령 모음
  └ 클래식 메뉴사용 (하위 메뉴 모두 해제)
고급 기능
└ 모두 해제

메뉴 없애기

MainFrame의 PreCreateWindow에 아래 코드 추가

Mainfrm.cpp

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs){
	/*...*/
    if (cs.hMenu!=NULL) { 
       ::DestroyMenu(cs.hMenu);
       cs.hMenu = NULL;
    }
 	return TRUE;
}

프레임 없애기

cs.style 을 WS_POPUP 으로 바꾼다.
그리고 크기를 직접 지정한다.

Mainfrm.cpp

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
	if( !CFrameWnd::PreCreateWindow(cs) )
		return FALSE;
	cs.style = WS_POPUP;
	cs.x = 10;
	cs.y = 10;
	cs.cx = 500;
	cs.cy = 500;
	if (cs.hMenu != NULL) {
		::DestroyMenu(cs.hMenu);
		cs.hMenu = NULL;
	}
	return TRUE;
}

3D테두리선 제거

View 헤더파일의 CView를 상속받은 클래스 정의 안에 아래의 멤버함수를 추가한다.
(클래스마법사로는 추가할수 없음)

[project name]View.h

virtual void OnUpdate(CView* view, LPARAM lParam, CObject* co);

[project name]View.cpp

void CBDMLView::OnUpdate(CView* view, LPARAM lParam, CObject* co) {
	ModifyStyleEx(WS_EX_CLIENTEDGE, 0, SWP_FRAMECHANGED);
}

만일 ChildView라면 OnCreate에서 스타일을 수정하면 된다.

프레임의 크기조정 가능 픽셀 범위는 8pixel 이다.

profile
Researcher & Developer @ NAVER Corp | Designer @ HONGIK Univ.

0개의 댓글