MFC/Microsoft Foundation Class 2011. 1. 5. 12:26

어떤 컨트롤을 사용자의 요구에 맞게 함수를 추가하거나 새로운 특성을 추가하여 사용하기 위해서는 기본컨트롤로부터 클래스를 파생시켜 새로운 컨트롤을 만들어야 한다.
만약 CButton에서 파생하여 새로운특성을 갖는 CXButton클래스를 만들었지만 MFC에서 메세지가 발생하였을때 베이스 클래스가아닌 사용자가 원하는 클래스로 연결되어야 한다.
이때 사용자가 원하는 클래스로 메세지를 발생하게 하는 함수이다

BOOL CWnd::SubclassDlgItem(UINT nID,CWnd* pParent);

[리턴]
실패시 0 / 성공시 0이 아닌 값

[인수]
nID : 컨트롤의 ID
pParent : 컨트롤의 부모핸들

ex)
BOOL CDEnT_UI_CONTROLDlg::OnInitDialog()
{
led = new CLed;
led->Init();	
led->SubclassDlgItem(IDC_STT_LED,this);	
}
:
MFC/Microsoft Foundation Class 2010. 12. 20. 09:33

서브클래싱이란 윈도우 프로시저로 보내지는 메시지를 중간에 가로채는 기법이다.

 

중간에서 메시지를 조작함으로써 윈도우의 메시지를 감시하고 변경할 수 있다.

 

서브클래스 프로시저에서는 정해놓은 메시지만 처리하고 다른 메시지일 경우에는 윈도우 프로시저로 메시지를 보내고 자신이 정해놓은 메시지일 경우 메시지를 처리하고 윈도우 프로시저로 메세지를 보내지 않고 리턴 해 버리거나 메시지를 변경하여 윈도우 프로시저로 보낼 수 있다.

 

[리턴 할 경우]

다이얼로그 기반의 프로젝트일 경우 다이얼로그는 윈도우상에서 사용자의 입출력을 처리하기 위해 만들어진 것으로 Enter ESC를 종료 디폴트 이벤트로 갖고있다. Enter ESC가 눌러지면 프로그램이 종료되도록 되어있는데 서브클래싱을 통하여 Enter ESC메시지를 처리하고 리턴하면

종료되지 않는다.

::메신저에서 엔터를 누르면 대화가 전송되도록 만든 서브클래싱

BOOL CDENT_MSG_CLIENTDlg::PreTranslateMessage(MSG* pMsg) 
{
	if( pMsg->message == WM_KEYDOWN )
	{
		if( pMsg->wParam == VK_RETURN )   
		{
			OnMSG();
			return TRUE;
			
		}
	}
	return CDialog::PreTranslateMessage(pMsg);
}
:
Vehicle/Tosca Premium6 2010. 12. 20. 00:48

요즘 눈이 좀 와서 스프레이 체인을 뿌렸더니 휀다쪽에 송진 같은게 덕지덕지.....


타르제거제 & 컴파운드 모두 실패해서 긁어낼 생각으로 사용한 성에제거제!!

의외로 성에제거제 한방에 싹~~지워짐 ㅋ

스프레이체인 사용하시는 분들은 꼭 성에제거제도 필수
: