API/MFC

CDockablePane 버튼 비활성화 문제

by MoA posted Jul 17, 2013
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄

CDockablePane 에서 버튼을 만들면 ON_BN_CLICKED 메세지 맵을 만들고 EnableWindow(TRUE) 함수를 이용해도 버튼이 활성화 되지 않는다.

버튼 활성화를 위해서는 ON_UPDATE_COMMAND_UI 메세지 맵을 만든 후 pCmdUI->Enable(TRUE)를 이용한다.

 

//Resource.h 

#define  IDC_BT_TEST  150 

//FileView.h  

CButton m_btnTest;

afx_msg void OnBtnTest(); 
afx_msg void OnUpdateButton(CCmdUI *pCmdUI); 

//FileView.cpp 
BEGIN_MESSAGE_MAP(CFileView, CDockablePane) 
ON_BN_CLICKED(IDC_BT_TEST, OnBtnTest) 

ON_UPDATE_COMMAND_UI(IDC_BT_TEST, OnUpdateButton)
END_MESSAGE_MAP() 

CFileView::OnCreate(LPCREATESTRUCT lpCreateStruct) 

    m_btnTest.Create(_T("OK"), WS_VISIBLE | WS_CHILD, rectDummy, this, IDC_BT_TEST) 
    m_btnTest.EnableWindow(TRUE); 


void CFileView::OnBtnTest() 

    TRACE0("OKn"); 


void CFileView::OnUpdateButton(CCmdUI *pCmdUI)
{
    pCmdUI->Enable(TRUE);
}

 

http://blog.naver.com/PostView.nhn?blogId=agebreak&logNo=60145877957&parentCategoryNo=26&viewDate=&currentPage=1&listtype=0