본문 바로가기

programing/MFC10

항상 위에 (TopMost) ::SetWindowPos(this->m_hWnd, HWND_TOPMOST, nX, nY, nWidth, nHeight, NULL); 함수를 사용하면된다 풀려면 ::SetWindowPos(this->m_hWnd, HWND_NOTOPMOST, nX, nY, nWidth, nHeight, NULL); 2017. 5. 23.
다이알 로그 활성화 확인 void Dialog::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized) { __super::OnActivate(nState, pWndOther, bMinimized); // TODO: 여기에 메시지 처리기 코드를 추가합니다. switch (nState) { case WA_INACTIVE:// 비 활성 했을 때 break; case WA_ACTIVE:// 활성 했을 때(마우스 클릭 제외) break; case WA_CLICKACTIVE:// 마우스 클릭으로 활성 했을 때 break; } cf. api에서는 LOWORD(wParam)로 알아냄 cf. focus는 다이알로그 안 컨트롤에 대한 것으로 의미하므로 activate와 다르다. 2017. 5. 22.
간단한 Popup Menu 만들기 CMenu cMenu; // 팝업 메뉴 생성cMenu = CreatePopupMenu(); // 팝업 메뉴 항목 추가cMenu.AppendMenu(MF_STRING, 메시지, L"팝업 항목 내용"); // 팝업 메뉴 출력cMenu.TrackPopupMenu(속성, x좌표, y좌표, pWnd );기본적으로 메시지 호출하여 콜백함속성에 TPM_RETURNCMD|TPM_NONOTIFY를 이용하면 리턴 값으로 메시지 값을 받아 사용할 수 있다. (선택을 안할 경우 0값 리턴) 보통 좌표는 GetCursorPos()로 마우스 좌표 받아옴 pWnd 는 AfxGetApp()->GetMainWnd(); 에서 받아오거나 대화상자에서 호출시 this // 팝업 메뉴 제거cMenu.DestroyMenu(); 2017. 5. 10.
슬라이드 컨트롤 사용시에 빈번하게 업데이트 할 경우 컨트롤이 안 될 경우에 해당 컨트롤러가 있는 Dialog의 OnHScroll()이나 OnVScroll()을 이용하면 된다. 어느 슬라이더인지 구분은 변수 pScrollBar->m_hWnd로 구분 하고 단, 행동 마다 불러 오므로 nSBCode로 구분해야 함 https://msdn.microsoft.com/ko-kr/library/e14hhbe6.aspx SB_LEFT 맨 왼쪽으로 스크롤합니다. SB_ENDSCROLL 스크롤 끝. SB_LINELEFT 왼쪽 스크롤. SB_LINERIGHT 오른쪽으로 스크롤합니다. SB_PAGELEFT 한 페이지 왼쪽으로. SB_PAGERIGHT 오른쪽 스크롤 한 페이지. SB_RIGHT 맨 오른쪽으로 스크롤합니다. SB_THUMBPOSITION .. 2017. 3. 29.