void Window::SetCapture() { AssertNoneLocked(); AssertThread(); if (parent != nullptr) parent->SetChildCapture(this); else EnableCapture(); capture = true; }
LRESULT CDlgImgView::OnToolbarCmd(WPARAM wParam, LPARAM lParam) { LPSLANTTOOLBARINFO psti = (LPSLANTTOOLBARINFO)lParam; if ( psti == NULL ) return 0; switch ( wParam ) { case 1 : OnOK(); break; case 2 : { // Toggle topmost state DWORD exstyle = GetWindowLong( GetSafeHwnd(), GWL_EXSTYLE ); if ( ( exstyle & WS_EX_TOPMOST ) != 0 ) ::SetWindowPos( GetSafeHwnd(), HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOACTIVATE | SWP_NOSIZE ); else ::SetWindowPos( GetSafeHwnd(), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOACTIVATE | SWP_NOSIZE ); } break; case 3 : EnableCapture( !m_bCapture ); break; case 4 : SaveImg(); break; case 6 : { POINT pt = { psti->rect.left, psti->rect.bottom }; POINT pt2 = { psti->rect.right, psti->rect.bottom }; ClientToScreen( &pt ); ClientToScreen( &pt2 ); ShowFxMenu( pt.x, pt.y + 2, pt2.x - m_tb.GetButtonSlant() + 2, pt2.y + 2 ); } break; case 7 : // Toggle zoomed state if ( IsZoomed() ) ShowWindow( SW_SHOWNORMAL ); else ShowWindow( SW_SHOWMAXIMIZED ); break; } // end switch return 1; }