コード例 #1
0
void CImageView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
	// TODO: Add your message handler code here and/or call default
	if (!m_pImage || m_pImage->empty())
	{
		return;
	}

	switch(nChar) 
	{
	case VK_HOME:
		OnVScroll(SB_TOP,0,NULL);
		OnHScroll(SB_LEFT,0,NULL);
		break;
	case VK_END:
		OnVScroll(SB_BOTTOM,0,NULL);
		OnHScroll(SB_RIGHT,0,NULL);
		break;
	case VK_UP:
		OnVScroll(SB_LINEUP,0,NULL);
		break;
	case VK_DOWN:
		OnVScroll(SB_LINEDOWN,0,NULL);
		break;
	case VK_LEFT:
		OnHScroll(SB_LINELEFT,0,NULL);
		break;
	case VK_RIGHT:
		OnHScroll(SB_LINERIGHT,0,NULL);
		break;
	case VK_SPACE:
		if (m_pMVSDoc->m_imgHandled.empty())
		{
			return;
		}
		if (!m_bShowHandled)
		{
			m_pImage = &m_pMVSDoc->m_imgHandled;
			m_bShowHandled = TRUE;
		} 
		else
		{
			m_pImage = &m_pMVSDoc->m_image;
			m_bShowHandled = FALSE;
		}
		Invalidate(TRUE);
		break;
	default:
		break;
	}

	CScrollView::OnKeyDown(nChar, nRepCnt, nFlags);
}
コード例 #2
0
ファイル: GoodPlayer.cpp プロジェクト: vincent0629/GoodMedia
static LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	switch (uMsg)
	{
		case WM_CREATE:
			OnCreate(hwnd);
			break;
#ifndef WINCE
		case WM_DROPFILES:
			OnDropFiles((HDROP)wParam);
			break;
#endif
		case WM_COMMAND:
			OnCommand((HWND)lParam);
			break;
		case WM_HSCROLL:
			OnHScroll(hwnd, LOWORD(wParam), HIWORD(wParam));
			break;
		case WM_SIZE:
			OnSize(hwnd);
			break;
		case WM_TIMER:
			OnTimer(hwnd);
			break;
		case WM_CLOSE:
			OnClose(hwnd);
			delete g_pPlayer;
			delete g_pGoodlayer;
			break;
		case WM_DESTROY:
			PostQuitMessage(0);
			return 0;
	}
	return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
コード例 #3
0
ファイル: Scrollbar.cpp プロジェクト: quinsmpang/Tools
LRESULT CMyScrollBar::OnMessageReflect(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	UNREFERENCED_PARAMETER(lParam);

	switch (uMsg)
	{
	case WM_HSCROLL:	return OnHScroll(wParam, lParam);
	}

	return 0L;
}
コード例 #4
0
ファイル: View.cpp プロジェクト: quinsmpang/Tools
LRESULT CView::WndProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	switch (uMsg)
	{
	case WM_DROPFILES:			return OnDropFiles(wParam, lParam);
	case WM_HSCROLL:			return OnHScroll(wParam, lParam);
	case WM_VSCROLL:			return OnVScroll(wParam, lParam);
	case WM_WINDOWPOSCHANGED:	return OnWindowPosChanged(wParam, lParam);
	}

	// Pass unhandled messages on for default processing
	return WndProcDefault(uMsg, wParam, lParam);
}
コード例 #5
0
ファイル: ScrollBars.cpp プロジェクト: the-reverend/Win32xx
/*============================================================================*/
	LRESULT WScrollBars::
ScrollProc(UINT uMsg, WPARAM wParam, LPARAM lParam)         		/*

	Process the system message uMsg from the view's message loop. All
	scroll request messages pass through this procedure.  Return 0 if
	the message was handled, -1 otherwise.
*-----------------------------------------------------------------------------*/
{
	switch (uMsg)
	{
	    case WM_VSCROLL: 	// received when the v-scrollbar is clicked
                if (OnVScroll(wParam, lParam) == 0)
                        return 0;

                break;

	    case WM_HSCROLL: 	// received when the v-scrollbar is clicked
                if (OnHScroll(wParam, lParam) == 0)
                        return 0;

                break;

	    case WM_KEYDOWN:  // received when a key is pressed
                if (OnKeyScroll(wParam, lParam) == 0)
                        return 0;

		break;

	    case WM_MOUSEWHEEL:  // rotation detected
		if (OnMouseWheel(wParam, lParam) == 0)
			return 0;

		break;
	}
	  // message was not one for scrolling: notify caller no processing
	  // took place
	return -1;
}
コード例 #6
0
ファイル: ConfigSound.cpp プロジェクト: zeroCoder1/nesicide
void CConfigSound::bassFreq_valueChanged(int value)
{
   OnHScroll(SB_HORZ,value,dynamic_cast<CScrollBar*>(GetDlgItem(IDC_BASS_FREQ)));
}
コード例 #7
0
ファイル: ConfigSound.cpp プロジェクト: zeroCoder1/nesicide
void CConfigSound::bufLength_valueChanged(int value)
{
   OnHScroll(SB_HORZ,value,dynamic_cast<CScrollBar*>(GetDlgItem(IDC_BUF_LENGTH)));
}
コード例 #8
0
INT_PTR CMessageForwarder::ForwardMessage(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
	m_hwnd = hwnd;
	m_uMsg = uMsg;
	m_wParam = wParam;
	m_lParam = lParam;

	/* Private message? */
	if(uMsg > WM_APP && uMsg < 0xBFFF)
	{
		return OnPrivateMessage(uMsg,wParam,lParam);
	}

	switch(uMsg)
	{
		case WM_INITDIALOG:
			return OnInitDialog();
			break;

		case WM_CTLCOLORSTATIC:
			return OnCtlColorStatic(reinterpret_cast<HWND>(lParam),
				reinterpret_cast<HDC>(wParam));
			break;

		case WM_CTLCOLOREDIT:
			return OnCtlColorEdit(reinterpret_cast<HWND>(lParam),
				reinterpret_cast<HDC>(wParam));
			break;

		case WM_HSCROLL:
			return OnHScroll(reinterpret_cast<HWND>(lParam));
			break;

		case WM_APPCOMMAND:
			return OnAppCommand(reinterpret_cast<HWND>(wParam),
				GET_APPCOMMAND_LPARAM(lParam),
				GET_DEVICE_LPARAM(lParam),
				GET_KEYSTATE_LPARAM(lParam));
			break;

		case WM_TIMER:
			return OnTimer(static_cast<int>(wParam));
			break;

		case WM_MBUTTONUP:
			return OnMButtonUp(&MAKEPOINTS(lParam));
			break;

		case WM_COMMAND:
			return OnCommand(wParam,lParam);
			break;

		case WM_NOTIFY:
			return OnNotify(reinterpret_cast<LPNMHDR>(lParam));
			break;

		case WM_GETMINMAXINFO:
			return OnGetMinMaxInfo(reinterpret_cast<LPMINMAXINFO>(lParam));
			break;

		case WM_SIZE:
			return OnSize(static_cast<int>(wParam),
				LOWORD(lParam),HIWORD(lParam));
			break;

		case WM_CLOSE:
			return OnClose();
			break;

		case WM_DESTROY:
			return OnDestroy();
			break;

		case WM_NCDESTROY:
			return OnNcDestroy();
			break;


		case EM_SETSEL:
			OnEMSetSel(wParam,lParam);
			break;
	}

	return GetDefaultReturnValue(hwnd,uMsg,wParam,lParam);
}
コード例 #9
0
BOOL CQueuePropertiesDlg::OnInitDialog()
{
	CSkinDialog::OnInitDialog();

	SkinMe( _T("CQueuePropertiesDlg"), ID_VIEW_UPLOADS );

	m_wndTransfersMin.SetRange( 1, 128 );
	m_wndTransfersMax.SetRange( 1, 512 );
	m_wndRotateTimeSpin.SetRange( 30, 15 * 60 );

	CoolInterface.LoadIconsTo( m_gdiProtocols, protocolIDs );
	m_wndProtocols.SetImageList( &m_gdiProtocols, LVSIL_SMALL );

	m_wndProtocols.SetExtendedStyle( LVS_EX_CHECKBOXES );
	m_wndProtocols.InsertItem( LVIF_TEXT|LVIF_IMAGE|LVIF_PARAM, 0, _T("HTTP"), 0, 0, PROTOCOL_HTTP, PROTOCOL_HTTP );
	m_wndProtocols.InsertItem( LVIF_TEXT|LVIF_IMAGE|LVIF_PARAM, 1, _T("ED2K"), 0, 0, PROTOCOL_ED2K, PROTOCOL_ED2K );
	m_wndProtocols.InsertItem( LVIF_TEXT|LVIF_IMAGE|LVIF_PARAM, 2, _T("DC++"), 0, 0, PROTOCOL_DC, PROTOCOL_DC );
	m_wndProtocols.InsertItem( LVIF_TEXT|LVIF_IMAGE|LVIF_PARAM, 3, _T("BitTorrent"), 0, 0, PROTOCOL_BT, PROTOCOL_BT );

	CSingleLock pLock( &UploadQueues.m_pSection, TRUE );

	if ( ! UploadQueues.Check( m_pQueue ) )
	{
		PostMessage( WM_CLOSE );
		return TRUE;
	}

	m_sName = m_pQueue->m_sName;

	m_nFileStatusFlag = m_pQueue->m_nFileStateFlag;

	if ( m_nFileStatusFlag == CUploadQueue::ulqPartial )
	{
		m_wndPartialOnly.SetCheck(BST_CHECKED);
		m_wndLibraryOnly.SetCheck(BST_UNCHECKED);
		m_wndBoth.SetCheck(BST_UNCHECKED);
	}
	else if ( m_nFileStatusFlag == CUploadQueue::ulqLibrary )
	{
		m_wndPartialOnly.SetCheck(BST_UNCHECKED);
		m_wndLibraryOnly.SetCheck(BST_CHECKED);
		m_wndBoth.SetCheck(BST_UNCHECKED);
	}
	else
	{
		m_wndPartialOnly.SetCheck(BST_UNCHECKED);
		m_wndLibraryOnly.SetCheck(BST_UNCHECKED);
		m_wndBoth.SetCheck(BST_CHECKED);
	}

	m_bMinSize = m_pQueue->m_nMinSize > 0;
	m_sMinSize = Settings.SmartVolume( m_bMinSize ? m_pQueue->m_nMinSize : 0 );

	m_bMaxSize = m_pQueue->m_nMaxSize < SIZE_UNKNOWN;
	m_sMaxSize = Settings.SmartVolume( m_bMaxSize ? m_pQueue->m_nMaxSize : 0 );

	m_bMarked = ( ! m_pQueue->m_sShareTag.IsEmpty() );
	m_sMarked = m_pQueue->m_sShareTag;

	m_bMatch = ( ! m_pQueue->m_sNameMatch.IsEmpty() );
	m_sMatch = m_pQueue->m_sNameMatch;

	m_bProtocols = ( m_pQueue->m_nProtocols != 0 );

	if ( ! m_bProtocols || ( m_pQueue->m_nProtocols & (1<<PROTOCOL_HTTP) ) )
		m_wndProtocols.SetItemState( 0, INDEXTOSTATEIMAGEMASK(2), LVIS_STATEIMAGEMASK );
	if ( ! m_bProtocols || ( m_pQueue->m_nProtocols & (1<<PROTOCOL_ED2K) ) )
		m_wndProtocols.SetItemState( 1, INDEXTOSTATEIMAGEMASK(2), LVIS_STATEIMAGEMASK );
	if ( ! m_bProtocols || ( m_pQueue->m_nProtocols & (1<<PROTOCOL_DC) ) )
		m_wndProtocols.SetItemState( 2, INDEXTOSTATEIMAGEMASK(2), LVIS_STATEIMAGEMASK );
	if ( ! m_bProtocols || ( m_pQueue->m_nProtocols & (1<<PROTOCOL_BT) ) )
		m_wndProtocols.SetItemState( 3, INDEXTOSTATEIMAGEMASK(2), LVIS_STATEIMAGEMASK );

	m_bEnable		= m_pQueue->m_bEnable || m_bEnableOverride;

	m_nCapacity		= max( m_pQueue->m_nCapacity, m_pQueue->m_nMaxTransfers );
	m_nTransfersMin	= m_pQueue->m_nMinTransfers;
	m_nTransfersMax	= m_pQueue->m_nMaxTransfers;

	m_bRotate		= m_pQueue->m_bRotate;
	m_nRotateTime	= m_pQueue->m_nRotateTime;

	m_bReward		= m_pQueue->m_bRewardUploaders;

	//DWORD nTotal = Settings.Connection.OutSpeed * 1024 / 8;
	//DWORD nLimit = Settings.Bandwidth.Uploads;
	//if ( nLimit == 0 || nLimit > nTotal ) nLimit = nTotal;

	int nOtherPoints = (int)UploadQueues.GetTotalBandwidthPoints( !( m_pQueue->m_nProtocols & (1<<PROTOCOL_ED2K) ) )
						- (int)m_pQueue->m_nBandwidthPoints;
	if ( nOtherPoints < 0 ) nOtherPoints = 0;

	m_wndBandwidthSlider.SetRange( 1, max( 100, nOtherPoints * 3 ) );
	m_wndBandwidthSlider.SetPos( m_pQueue->m_nBandwidthPoints );

	UpdateData( FALSE );

	m_wndPartialOnly.EnableWindow(TRUE);
	m_wndLibraryOnly.EnableWindow(TRUE);
	m_wndBoth.EnableWindow(TRUE);

	m_wndMinSize.EnableWindow( m_bMinSize );
	m_wndMaxSize.EnableWindow( m_bMaxSize );
	m_wndMarked.EnableWindow( m_bMarked );
	m_wndMatch.EnableWindow( m_bMatch );
	m_wndProtocols.EnableWindow( m_bProtocols );
	m_wndRotateTime.EnableWindow( m_bRotate );
	m_wndRotateTimeSpin.EnableWindow( m_bRotate );
	m_wndCapacity.SetRange32( static_cast< int >( m_nTransfersMax ), 4096 );
	OnHScroll( 0, 0, NULL );

	if ( Settings.General.GUIMode == GUI_BASIC &&
		 !( Settings.eDonkey.EnableAlways | Settings.eDonkey.Enabled ) )
	{
		m_bProtocols = FALSE;
		m_wndProtocols.EnableWindow( FALSE );
		m_wndProtocols.ShowWindow( FALSE );

		(GetProtocolCheckbox())->EnableWindow( FALSE );
		(GetProtocolCheckbox())->ShowWindow( FALSE );
	}

	return TRUE;
}
コード例 #10
0
LRESULT CMultiLineEditCanvasWnd::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    LRESULT lRes = 0;
    BOOL bHandled = TRUE;
    if ( uMsg == WM_CTLCOLOREDIT )
    {
        ::DefWindowProc(m_hWnd, uMsg, wParam, lParam);
        HDC hDC = (HDC) wParam;
        ::SetTextColor(hDC,RGB(0,0,0));
        ::SetBkColor(hDC, RGB(255,255,255));
        lRes = (LRESULT) ::CreateSolidBrush(RGB(255,255,255));
    }
    else if( uMsg == WM_COMMAND && GET_WM_COMMAND_CMD(wParam, lParam) == EN_CHANGE ) lRes = OnEditChanged(uMsg, wParam, lParam, bHandled);
    else if( uMsg == WM_COMMAND && GET_WM_COMMAND_CMD(wParam, lParam) == EN_HSCROLL ) lRes = OnHScroll(uMsg, wParam, lParam, bHandled);
    else if( uMsg == WM_COMMAND && GET_WM_COMMAND_CMD(wParam, lParam) == EN_VSCROLL ) lRes = OnVScroll(uMsg, wParam, lParam, bHandled);
    else bHandled = FALSE;
    if( !bHandled ) return CWindowWnd::HandleMessage(uMsg, wParam, lParam);
    return lRes;
}
コード例 #11
0
ファイル: TssEdit.cpp プロジェクト: FieldDB/FieldWorks
/*----------------------------------------------------------------------------------------------
	This processes Windows messages on the window. In general, it normally calls the
	appropriate method on the edit class.
----------------------------------------------------------------------------------------------*/
bool TssEdit::FWndProc(uint wm, WPARAM wp, LPARAM lp, long & lnRet)
{
	bool fRet;

	switch (wm)
	{
	case WM_GETDLGCODE:
		// This is essential when embedded in a dialog to tell the dialog manager that it
		// wants to get key strokes. (We could try DLGC_WANTALLKEYS but I think we would then
		// get the Tab and Return keys...we may get them anyway with this combination...)
		// The last value tells Windows that when tabbing to this control we should use
		// EM_SETSEL to select all the text.
		lnRet = DLGC_WANTCHARS | DLGC_WANTARROWS | DLGC_HASSETSEL;
		return true;
	case EM_GETLINE:	// Use FW_EM_GETLINE.
	case EM_REPLACESEL:	// Use FW_EM_REPLACESEL.
		// We don't support these methods. Use the replacement TsString versions instead.
		Assert(false);
		lnRet = LB_ERR;
		return true;

	// NOTE: DO NOT send this message to a TssEdit if you want the actual text. Send the
	// FW_EM_GETTEXT message instead. This method is required for TssEdit controls on a
	// dialog because Windows will send the message to the control anytime the user hits a
	// key.
	case WM_GETTEXT:
		{
			ITsStringPtr qtss;
			GetText(&qtss);
			const wchar * pwrgch;
			int cch;
			HRESULT hr;
			IgnoreHr(hr = qtss->LockText(&pwrgch, &cch));
			if (FAILED(hr))
				return true;
			StrApp str(pwrgch, cch);
			qtss->UnlockText(pwrgch);
			lnRet = Min(cch + 1, (int)wp);
			achar * psz = reinterpret_cast<achar *>(lp);
			StrCpyN(psz, str.Chars(), lnRet);
		}
		return true;

	// NOTE: You should be sending an FW_EM_SETTEXT message instead of this.
	case WM_SETTEXT:
		{
			achar * psz = reinterpret_cast<achar *>(lp);
			StrUni stu(psz);
			ITsStrFactoryPtr qtsf;
			qtsf.CreateInstance(CLSID_TsStrFactory);
			ITsStringPtr qtss;
			CheckHr(qtsf->MakeStringRgch(stu.Chars(), stu.Length(), m_wsBase, &qtss));
			SetText(qtss);
		}
		return true;

	case EM_CANUNDO:
	case EM_CHARFROMPOS:
	case EM_EMPTYUNDOBUFFER:
	case EM_FMTLINES:
	case EM_GETFIRSTVISIBLELINE:
	case EM_GETHANDLE:
	case EM_GETMODIFY:
	case EM_GETPASSWORDCHAR:
	case EM_GETRECT:
	case EM_GETTHUMB:
	case EM_GETWORDBREAKPROC:
	case EM_POSFROMCHAR:
	case EM_SETHANDLE:
	case EM_SETMODIFY:
	case EM_SETPASSWORDCHAR:
	case EM_SETRECT:
	case EM_SETRECTNP:
	case EM_SETTABSTOPS:
	case EM_SETWORDBREAKPROC:
	case EM_UNDO:
	case WM_GETFONT:
	case WM_SETFONT:
		// We don't support these methods.
		Assert(false);
		lnRet = LB_ERR;
		return true;

	case EM_GETLIMITTEXT:
		lnRet = GetLimitText();
		return true;

	case FW_EM_GETLINE:
		lnRet = GetLine(wp, (ITsString **)lp);
		return true;

	case EM_GETLINECOUNT:
		lnRet = GetLineCount();
		return true;

	case EM_GETMARGINS:
		lnRet = GetMargins();
		return true;

	case FW_EM_GETSTYLE:
		GetStyle((StrUni *)lp, (COLORREF *)wp);
		return true;

	case EM_GETSEL:
		lnRet = GetSel((int *)wp, (int *)lp);
		return true;

	case EM_LINEFROMCHAR:
		lnRet = LineFromChar(wp);
		return true;

	case EM_LINEINDEX:
		lnRet = LineIndex(wp);
		return true;

	case EM_LINELENGTH:
		lnRet = LineLength(wp);
		return true;

	case EM_LINESCROLL:
		LineScroll(lp, wp);
		return true;

	case FW_EM_REPLACESEL:
		ReplaceSel((ITsString *)lp);
		return true;

	case EM_SCROLL:
		lnRet = ::SendMessage(m_hwnd, WM_VSCROLL, LOWORD(wp), 0);
		return true;

	case EM_SCROLLCARET:
		ScrollCaret();
		return true;

	case EM_SETLIMITTEXT:
		SetLimitText(wp);
		return true;

	case EM_SETMARGINS:
		SetMargins(wp, LOWORD(lp), HIWORD(lp));
		return true;

	case EM_SETREADONLY:
		SetReadOnly(wp);
		return true;

	case EM_SETSEL:
		SetSel(wp, lp);
		return true;

	case FW_EM_SETSTYLE:
		SetStyle((StrUni *)lp, (COLORREF)wp);
		return true;

	case WM_GETTEXTLENGTH:
		lnRet = GetTextLength();
		return true;

	case FW_EM_GETTEXT:
		GetText((ITsString **)lp);
		return true;

	case FW_EM_SETTEXT:
		SetText((ITsString *)lp);
		return true;

	case WM_COPY:
		Copy();
		return true;

	case WM_CUT:
		Cut();
		return true;

	case WM_PASTE:
		Paste();
		return true;

	case WM_HSCROLL:
		if (!OnHScroll(LOWORD(wp), HIWORD(wp), (HWND)lp))
		{
			::SendMessage(::GetParent(m_hwnd), WM_COMMAND,
				MAKEWPARAM(::GetDlgCtrlID(m_hwnd), EN_HSCROLL), (LPARAM)m_hwnd);
		}
		return true;

	case WM_VSCROLL:
		if (!OnVScroll(LOWORD(wp), HIWORD(wp), (HWND)lp))
		{
			::SendMessage(::GetParent(m_hwnd), WM_COMMAND,
				MAKEWPARAM(::GetDlgCtrlID(m_hwnd), EN_VSCROLL), (LPARAM)m_hwnd);
		}
		return true;

	case WM_KILLFOCUS:
		if (!OnKillFocus((HWND)wp))
		{
			::SendMessage(::GetParent(m_hwnd), WM_COMMAND,
				MAKEWPARAM(::GetDlgCtrlID(m_hwnd), EN_KILLFOCUS), (LPARAM)m_hwnd);
		}
		return true;

	case WM_SETFOCUS:
		if (!OnSetFocus((HWND)wp))
		{
			::SendMessage(::GetParent(m_hwnd), WM_COMMAND,
				MAKEWPARAM(::GetDlgCtrlID(m_hwnd), EN_SETFOCUS), (LPARAM)m_hwnd);
		}
		return true;
		// Calling SuperClass here causes two OnSetFocus calls for each OnKillFocus.
		//return SuperClass::FWndProc(wm, wp, lp, lnRet);

	case WM_CHAR:
		fRet = false;
		if (wp == VK_TAB)  // '\t'
		{
			fRet = OnCharTab();
		}
		else if (wp == VK_RETURN) // '\r'
		{
			fRet = OnCharEnter();
		}
		else if (wp == VK_ESCAPE) // '\33'
		{
			fRet = OnCharEscape();
		}
		if (fRet)
			return fRet;
		else
			return SuperClass::FWndProc(wm, wp, lp, lnRet);

	case WM_LBUTTONDOWN:
	case WM_LBUTTONUP:
	case WM_MBUTTONDOWN:
	case WM_MBUTTONUP:
	case WM_RBUTTONDOWN:
	case WM_RBUTTONUP:
	case WM_MOUSEMOVE:
		if (HasToolTip())
		{
			// Notify the tooltip belonging to the parent toolbar of the mouse message.
			Assert(m_hwndToolTip);
			MSG msg;
			msg.hwnd = m_hwnd; // ::GetParent(m_hwnd);
			msg.message = wm;
			msg.wParam = wp;
			msg.lParam = lp;
			::SendMessage(m_hwndToolTip, TTM_RELAYEVENT, 0, (LPARAM)&msg);
		}
		break;

	default:
		break;
	}
	return SuperClass::FWndProc(wm, wp, lp, lnRet);
}
コード例 #12
0
ファイル: ConfigSound.cpp プロジェクト: zeroCoder1/nesicide
void CConfigSound::trebleDamp_valueChanged(int value)
{
   OnHScroll(SB_HORZ,value,dynamic_cast<CScrollBar*>(GetDlgItem(IDC_TREBLE_DAMP)));
}
コード例 #13
0
ファイル: PredView.cpp プロジェクト: chao-ma/LiCABEDS
LRESULT CPredView::OnFindCompound(WPARAM wParam, LPARAM lParam)
{
	//lParam=0 means the message is sent from "Find" dialog lParam=1 means the message is sent from LButtonDown without CTRL pressed. 
	//lParam=2 means the message is sent from LBUttonDown and CTRL is pressed 
	CFCCDoc* pDoc=(CFCCDoc*)GetDocument();
	if(pDoc->list_CompoundTest.IsEmpty())
		return LRESULT();
	bool flag=false;
	if(wParam==FINDNEXT)
	{
		POSITION pos;
		CCompound* pTmpCompound=NULL;
		bool bFound=false;
		pos=pDoc->list_CompoundTest.GetTailPosition();
		while(pos)
		{
			pTmpCompound=(CCompound*)pDoc->list_CompoundTest.GetAt(pos);
			if(pTmpCompound->bSelect)
				break;
			pDoc->list_CompoundTest.GetPrev(pos);
		}
		if(pos)
			pDoc->list_CompoundTest.GetNext(pos);
		if(!pos)
			pos=pDoc->list_CompoundTest.GetHeadPosition();
		while(pos)
		{
			pTmpCompound=(CCompound*)pDoc->list_CompoundTest.GetAt(pos);
			if(pTmpCompound->strCompoundName.Find(dlg.strMessage)>=0)
			{
				bFound=true;
				break;
			}
			pDoc->list_CompoundTest.GetNext(pos);
		}
		if(bFound)
		{
			int index=1;
			POSITION posa=pDoc->list_CompoundTest.GetHeadPosition();
			while(posa)
			{
				if(posa==pos)
				{
					break;
				}
				pDoc->list_CompoundTest.GetNext(posa);
				index++;
			}
			dlg.nIndex=index;
			flag=true;
			pDoc->strMessage="Matching item is found.";
			pDoc->MessageCenter(IDS_MESSAGE_FINDCOMPOUND);
		}
		else
		{
			pDoc->strMessage="No matching item is found.";
			pDoc->MessageCenter(IDS_MESSAGE_FINDCOMPOUND);
		}
	}
	if(wParam==FINDPREV)
	{
		POSITION pos;
		CCompound* pTmpCompound=NULL;
		bool bFound=false;
		pos=pDoc->list_CompoundTest.GetHeadPosition();
		while(pos)
		{
			pTmpCompound=(CCompound*)pDoc->list_CompoundTest.GetAt(pos);
			if(pTmpCompound->bSelect)
				break;
			pDoc->list_CompoundTest.GetNext(pos);
		}
		if(pos)
			pDoc->list_CompoundTest.GetPrev(pos);
		if(!pos)
			pos=pDoc->list_CompoundTest.GetHeadPosition();
		while(pos)
		{
			pTmpCompound=(CCompound*)pDoc->list_CompoundTest.GetAt(pos);
			if(pTmpCompound->strCompoundName.Find(dlg.strMessage)>=0)
			{
				bFound=true;
				break;
			}
			pDoc->list_CompoundTest.GetPrev(pos);
		}
		if(bFound)
		{
			int index=1;
			POSITION posa=pDoc->list_CompoundTest.GetHeadPosition();
			while(posa)
			{
				if(posa==pos)
				{
					break;
				}
				pDoc->list_CompoundTest.GetNext(posa);
				index++;
			}
			dlg.nIndex=index;
			flag=true;
			pDoc->strMessage="Matching item is found.";
			pDoc->MessageCenter(IDS_MESSAGE_FINDCOMPOUND);
		}
		else
		{
			pDoc->strMessage="No matching item is found.";
			pDoc->MessageCenter(IDS_MESSAGE_FINDCOMPOUND);
		}
	}
	if(wParam==GOTOPAGE)
	{
		if(dlg.nIndex<1)
			dlg.nIndex=1;
		if(dlg.nIndex>wnd_navi.nTotalPage)
			dlg.nIndex=wnd_navi.nTotalPage;
		wnd_navi.nCurPage=dlg.nIndex;
		wnd_navi.Invalidate();
		Invalidate();
		pDoc->strMessage.Format("Page No. %d",dlg.nIndex);
		pDoc->MessageCenter(IDS_MESSAGE_FINDCOMPOUND);
	}
	if(wParam==GOTOLINE || flag)
	{
		int curCol;
		int curRow;
		int subLine;
		POSITION pos;
		int nTotalLine=pDoc->list_CompoundTest.GetCount();
		if(dlg.nIndex<1)
			dlg.nIndex=1;
		if(dlg.nIndex>nTotalLine)
			dlg.nIndex=nTotalLine;
		wnd_navi.nCurPage=(dlg.nIndex-1)/(nCol*nItemPage)+1;
		subLine=dlg.nIndex-(wnd_navi.nCurPage-1)*(nCol*nItemPage);
		curCol=(subLine-1)/nItemPage+1;
		curRow=subLine-(curCol-1)*nItemPage;
		if(lParam==0)
		{
			ScrollToPosition(CPoint((curCol-1)*(80+widthCompoundName+widthYhat+widthClassName+widthID),(curRow-1)*20));
			OnHScroll(SB_LINELEFT,0,0);
			OnHScroll(SB_LINERIGHT,0,0);
			OnVScroll(SB_LINEUP,0,0);
			OnVScroll(SB_LINEDOWN,0,0);
			wnd_navi.SetWindowPos(&CWnd::wndTop,1,1,0,0,SWP_NOSIZE|SWP_SHOWWINDOW);
			wnd_navi.Invalidate();
			pDoc->strMessage.Format("Line No. %d",dlg.nIndex);
			pDoc->MessageCenter(IDS_MESSAGE_FINDCOMPOUND);
		}
		if(lParam==0 || lParam==1)
		{
			pos=pDoc->list_CompoundTest.GetHeadPosition();
			while(pos)
			{
				pCompound=pDoc->list_CompoundTest.GetNext(pos);
				((CCompound*)pCompound)->bSelect=false;
			}
		}
		/*pos=pDoc->list_CompoundTest.Find(pCompound);
		if(pos)
			((CCompound*)pCompound)->bSelect=false;*/
		pos=pDoc->list_CompoundTest.FindIndex(dlg.nIndex-1);
		pCompound=pDoc->list_CompoundTest.GetAt(pos);
		((CCompound*)pCompound)->bSelect=true;
		if(wnd_navi.nCurPage==wnd_navi.nTotalPage)
			Invalidate(1);
		else
			Invalidate(0);
	}
	
	return LRESULT();
}
コード例 #14
0
ファイル: TextViewBase.cpp プロジェクト: aronsoyol/MnView
bool TextViewBase::HandleWndProc(UINT msg, WPARAM wParam, LPARAM lParam, LONG *pResult)
{
	HIMC hIMC = NULL;
	switch (msg)
	{
		// Draw contents of TextView whenever window needs updating
	case WM_ERASEBKGND:
		*pResult = 1;
		return true;
		// Need to custom-draw the border for XP/Vista themes
	case WM_NCPAINT:
		*pResult = OnNcPaint((HRGN)wParam);
		return true;

	case WM_PAINT:
		*pResult = OnPaint();
		return true;
		// Set a new font 
	case WM_SETFONT:
		*pResult = OnSetFont((HFONT)wParam);
		return true;

	case WM_SIZE:
		*pResult = OnSize(wParam, LOWORD(lParam), HIWORD(lParam));
		return true;

	case WM_VSCROLL:
		*pResult = OnVScroll(LOWORD(wParam), HIWORD(wParam));
		return true;

	case WM_HSCROLL:
		*pResult = OnHScroll(LOWORD(wParam), HIWORD(wParam));
		return true;

	case WM_MOUSEACTIVATE:
		*pResult = OnMouseActivate((HWND)wParam, LOWORD(lParam), HIWORD(lParam));
		return true;

		//case WM_CONTEXTMENU:
		//	return OnContextMenu((HWND)wParam, (short)LOWORD(lParam), (short)HIWORD(lParam));

	case WM_MOUSEWHEEL:
		if (IsKeyPressed(VK_CONTROL))
			return false;
		else
			*pResult = OnMouseWheel((short)HIWORD(wParam));
		return true;

	case WM_SETFOCUS:
		*pResult = OnSetFocus((HWND)wParam);
		return true;

	case WM_KILLFOCUS:
		*pResult = OnKillFocus((HWND)wParam);
		return true;

		// make sure we get arrow-keys, enter, tab, etc when hosted inside a dialog
	case WM_GETDLGCODE:
		*pResult = DLGC_WANTALLKEYS;//DLGC_WANTMESSAGE;//DLGC_WANTARROWS;
		return true;

	case WM_LBUTTONDOWN:
		*pResult = OnLButtonDown(wParam, (short)LOWORD(lParam), (short)HIWORD(lParam));
		return true;

	case WM_LBUTTONUP:
		*pResult = OnLButtonUp(wParam, (short)LOWORD(lParam), (short)HIWORD(lParam));
		return true;

	case WM_LBUTTONDBLCLK:
		*pResult = OnLButtonDblClick(wParam, (short)LOWORD(lParam), (short)HIWORD(lParam));
		return true;

	case WM_RBUTTONDOWN:
		*pResult = OnRButtonDown(wParam, (short)LOWORD(lParam), (short)HIWORD(lParam));
		return true;
	case WM_MOUSEMOVE:
		*pResult = OnMouseMove(wParam, (short)LOWORD(lParam), (short)HIWORD(lParam));
		return true;

	case WM_KEYDOWN:
		*pResult = OnKeyDown(wParam, lParam);
		return true;

	case WM_UNDO: case TXM_UNDO: case EM_UNDO:
		*pResult = Undo();
		return true;

	case TXM_REDO : case EM_REDO:
		*pResult = Redo();
		return true;

	case TXM_CANUNDO: case EM_CANUNDO:
		*pResult = CanUndo();
		return true;

	case TXM_CANREDO: case EM_CANREDO:
		*pResult = CanRedo();
		return true;

	case WM_CHAR:
		OutputDebugString(L"WM_CHAR\n");
		*pResult = OnChar(wParam, lParam);
		return true;

	case WM_SETCURSOR:

		if (LOWORD(lParam) == HTCLIENT)
		{
			*pResult = TRUE;
			return true;
		}
		else
			return false;
	case WM_COPY:
		*pResult = OnCopy();
		return true;

	case WM_CUT:
		*pResult = OnCut();
		return true;

	case WM_PASTE:
		*pResult = OnPaste();
		return true;

	case WM_CLEAR:
		*pResult = OnClear();
		return true;
	
	case WM_GETTEXT:
		*pResult = GetText((WCHAR*)lParam, 0, (ULONG)wParam);
		return true;

	case WM_SETTEXT:
		*pResult = OnSetText((WCHAR*)lParam, lstrlen((WCHAR*)lParam));
		return true;
		//case TXM_SETTEXT:
		//	{
		//		ClearFile();
		//		EnterText((WCHAR*)lParam, (LONG)wParam);
		//		return 0;
		//	}
	case WM_TIMER:
		*pResult = OnTimer(wParam);
		return true;

	case WM_IME_STARTCOMPOSITION:
		OutputDebugString(L"WM_IME_STARTCOMPOSITION\n");
		*pResult = OnStartComposition(wParam, lParam);
		return true;
		//return DefWindowProc(m_hWnd, WM_IME_STARTCOMPOSITION, wParam, lParam);

	case WM_IME_COMPOSITION:
		OutputDebugString(L"WM_IME_COMPOSITION\n");
		*pResult = DefWindowProc(m_hWnd, WM_IME_COMPOSITION, wParam, lParam);
		return true;
		//return OnComposition(wParam, lParam);

	case WM_IME_ENDCOMPOSITION:
		OutputDebugString(L"WM_IME_ENDCOMPOSITION\n");
		*pResult = DefWindowProc(m_hWnd, WM_IME_ENDCOMPOSITION, wParam, lParam);
		return true;
		//return OnEndComposition(wParam, lParam);

	case WM_IME_CHAR:
		OutputDebugString(L"WM_IME_CHAR\n");
		*pResult = DefWindowProc(m_hWnd, WM_IME_CHAR, wParam, lParam);
		return true;

	case WM_IME_CONTROL:
		OutputDebugString(L"WM_IME_CONTROL\n");
		*pResult = DefWindowProc(m_hWnd, WM_IME_CONTROL, wParam, lParam);
		return true;


	case WM_IME_NOTIFY:
		OutputDebugString(L"WM_IME_NOTIFY\n");
		*pResult = DefWindowProc(m_hWnd, WM_IME_NOTIFY, wParam, lParam);
		return true;
		//return HandleImeNotify(wParam, lParam);

	case WM_IME_REQUEST:
		OutputDebugString(L"WM_IME_REQUEST\n");
		*pResult = DefWindowProc(m_hWnd, WM_IME_REQUEST, wParam, lParam);
		return true;
	case WM_INPUTLANGCHANGE:
		*pResult = OnInputLanChange(wParam, lParam);
		return true;

	case TXM_PRINT:
		*pResult = OnPrint((HDC)wParam, (int)lParam);
		return true;

		//
	case TXM_OPENFILE:
		*pResult = OpenFile((TCHAR *)lParam);
		return true;


	case TXM_SAVEFILE:
		*pResult = SaveFile((TCHAR *)lParam);
		return true;

	case TXM_IMPORTFILE:
		*pResult = ImportFile((TCHAR *)lParam, (int)wParam);
		return true;

	case TXM_EXPORTFILE:
	{
		int convertype = LOWORD(wParam);
		int utf_type = HIWORD(wParam);
		*pResult = ExportFile((TCHAR *)lParam, convertype, utf_type);
		return true;
	}

	case TXM_CLEAR:
		*pResult = ClearFile();
		return true;

	case TXM_GETFORMAT:
		*pResult = m_pTextDoc->getformat();
		return true;

	case TXM_SETFORMAT:
		*pResult = m_pTextDoc->setformat((int)wParam);
		return true;

	case TXM_GETSELSIZE:
		*pResult = SelectionSize();
		return true;

	case TXM_SETSELALL:
		*pResult = SelectAll();
		return true;

	case TXM_GETCURPOS:
		*pResult = m_CurrentCharPos.get();
		return true;

	case TXM_GETCURLINE_D:
		*pResult = m_nCurrentLine_D;
		return true;

	case TXM_GETCURLINE_V:
		*pResult = OnGetCurLineV();
		return true;

	case TXM_GETCURCOL:
		*pResult = OnGetCurCol();
		return true;

	case TXM_GETEDITMODE:
		*pResult = m_nEditMode;
		return true;

	case TXM_SETEDITMODE:
		lParam = m_nEditMode;
		m_nEditMode = wParam;
		*pResult = lParam;
		return true;
	case TXM_FIND_INIT:
		FindInitial((WCHAR*)lParam);
		*pResult = 0;
		return true;
	case TXM_FIND:
	{
		BOOL m = (BOOL)LOWORD(wParam);
		BOOL b = (BOOL)HIWORD(wParam);
		//FindText()
		if (b)
			*pResult = FindBackward(m, NULL);
		else
			*pResult = FindForward(m, NULL);
		return true;
	}
	case TXM_FIND_TEXT:
	{
		FIND_OPTION* fp = (FIND_OPTION*)(lParam);
		*pResult = Find_Text(fp->text, lstrlen(fp->text), fp->fBackward, fp->fMachCase, fp->fWarp);
		return true;
	}
	case TXM_REPLACE_TEXT:
	{
		*pResult = Replace_Text((REPLACE_OPTION*)(lParam));
		return true;
	}
	case TXM_SETRESMODULE:
	{
		*pResult = OnSetResModule((HMODULE)lParam);
		return true;
	}
	case WM_GETTEXTLENGTH:
	case TXM_GETTEXTLEN:
	{
		*pResult = OnGetTextLen();
		return true;
	}
	case TXM_REPLACE:
	{
		BOOL ra = (BOOL)LOWORD(wParam);
		WORD mb = (WORD)HIWORD(wParam);
		BOOL m = (BOOL)LOBYTE(mb);
		BOOL b = (BOOL)HIBYTE(mb);
		if (b)
			*pResult = FindBackward(m, (WCHAR*)lParam, ra);
		else
			*pResult = FindForward(m, (WCHAR*)lParam, ra);
		return true;
	}
	case TXM_FIND_GETTEXTLENGTH:
		*pResult = m_pFndIterator->find_text_length();
		return true;
	case TXM_GETSELSTART:
		*pResult = m_nSelectionStart;
		return true;
	case TXM_GETSELEND:
		*pResult = m_nSelectionEnd;
		return true;
	case TXM_GETSELTEXT:
		*pResult = OnGetSelText((WCHAR*)wParam, ULONG(lParam));
		return true;
	case TXM_SETTESTERMODE:
		OnTesterMode((bool)wParam);
		*pResult = 0;
		return true;
	case TXM_SETCONTEXTMENU:
		m_hUserMenu = (HMENU)wParam;
		*pResult = 0;
		return true;
	case TXM_STATISTIC:
		*pResult = OnDoStatistic((STATISTIC*)(lParam));
		return true;
	case TXM_GETCONVERTTYPES:
		*pResult = OnGetConvertTypes((convert_type*)(lParam));
		return true;
	case EM_GETSEL:
		*pResult = OnMsg_EM_GETSEL((ULONG*)wParam, (ULONG*)lParam);
		return true;
	case EM_SETSEL:
		*pResult = OnMsg_EM_SETSEL((LONG)wParam, (LONG)lParam);
		return true;
	default:
		return false;
	}
}
コード例 #15
0
void CModulePropertiesDlg::channels_valueChanged(int value)
{
    OnHScroll(SB_HORZ,value,dynamic_cast<CScrollBar*>(GetDlgItem(IDC_CHANNELS)));
}
コード例 #16
0
BOOL CQueuePropertiesDlg::OnInitDialog()
{
	CSkinDialog::OnInitDialog();

	SkinMe( _T("CQueuePropertiesDlg"), ID_VIEW_UPLOADS );

	m_wndTransfersMin.SetRange( 1, 128 );
	m_wndTransfersMax.SetRange( 1, 512 );
	m_wndRotateTimeSpin.SetRange( 30, 15 * 60 );

	CBitmap bmProtocols;
	bmProtocols.LoadBitmap( IDB_PROTOCOLS );
	if ( theApp.m_bRTL ) 
		bmProtocols.m_hObject = CreateMirroredBitmap( (HBITMAP)bmProtocols.m_hObject );

	m_gdiProtocols.Create( 16, 16, ILC_COLOR32|ILC_MASK, 7, 1 );
	m_gdiProtocols.Add( &bmProtocols, RGB( 0, 255, 0 ) );

	m_wndProtocols.SendMessage( LVM_SETEXTENDEDLISTVIEWSTYLE, LVS_EX_CHECKBOXES, LVS_EX_CHECKBOXES );
	m_wndProtocols.SetImageList( &m_gdiProtocols, LVSIL_SMALL );
	m_wndProtocols.InsertItem( LVIF_TEXT|LVIF_IMAGE|LVIF_PARAM, 0, _T("HTTP"), 0, 0, PROTOCOL_HTTP, PROTOCOL_HTTP );
	m_wndProtocols.InsertItem( LVIF_TEXT|LVIF_IMAGE|LVIF_PARAM, 1, _T("ED2K"), 0, 0, PROTOCOL_ED2K, PROTOCOL_ED2K );

	CSingleLock pLock( &UploadQueues.m_pSection, TRUE );

	if ( ! UploadQueues.Check( m_pQueue ) )
	{
		PostMessage( WM_CLOSE );
		return TRUE;
	}

	m_sName = m_pQueue->m_sName;

	m_bPartial = m_pQueue->m_bPartial;

	if ( m_bMinSize = ( m_pQueue->m_nMinSize > 0 ) )
	{
		m_sMinSize = Settings.SmartVolume( m_pQueue->m_nMinSize, FALSE );
	}
	else
	{
		m_sMinSize = Settings.SmartVolume( 0, FALSE );
	}

	if ( m_bMaxSize = ( m_pQueue->m_nMaxSize < SIZE_UNKNOWN ) )
	{
		m_sMaxSize = Settings.SmartVolume( m_pQueue->m_nMaxSize, FALSE );
	}
	else
	{
		m_sMaxSize = Settings.SmartVolume( 0, FALSE );
	}

	m_bMarked = ( m_pQueue->m_sShareTag.GetLength() > 0 );
	m_sMarked = m_pQueue->m_sShareTag;

	m_bMatch = ( m_pQueue->m_sNameMatch.GetLength() > 0 );
	m_sMatch = m_pQueue->m_sNameMatch;

	m_bProtocols = ( m_pQueue->m_nProtocols != 0 );

	if ( ! m_bProtocols || ( m_pQueue->m_nProtocols & (1<<PROTOCOL_HTTP) ) )
		m_wndProtocols.SetItemState( 0, INDEXTOSTATEIMAGEMASK(2), LVIS_STATEIMAGEMASK );
	if ( ! m_bProtocols || ( m_pQueue->m_nProtocols & (1<<PROTOCOL_ED2K) ) )
		m_wndProtocols.SetItemState( 1, INDEXTOSTATEIMAGEMASK(2), LVIS_STATEIMAGEMASK );

	m_bEnable		= m_pQueue->m_bEnable || m_bEnableOverride;

	m_nCapacity		= max( m_pQueue->m_nCapacity, m_pQueue->m_nMaxTransfers );
	m_nTransfersMin	= m_pQueue->m_nMinTransfers;
	m_nTransfersMax	= m_pQueue->m_nMaxTransfers;

	m_bRotate		= m_pQueue->m_bRotate;
	m_nRotateTime	= m_pQueue->m_nRotateTime;

	m_bReward		= m_pQueue->m_bRewardUploaders;

	DWORD nTotal = Settings.Connection.OutSpeed * 1024 / 8;
	DWORD nLimit = Settings.Bandwidth.Uploads;

	if ( nLimit == 0 || nLimit > nTotal ) nLimit = nTotal;
	int nOtherPoints = UploadQueues.GetTotalBandwidthPoints( !( m_pQueue->m_nProtocols & (1<<PROTOCOL_ED2K) ) ) - m_pQueue->m_nBandwidthPoints;

	if ( nOtherPoints < 0 ) nOtherPoints = 0;

	m_wndBandwidthSlider.SetRange( 1, max( 100, nOtherPoints * 3 ) );
	m_wndBandwidthSlider.SetPos( m_pQueue->m_nBandwidthPoints );

	UpdateData( FALSE );

	m_wndMinSize.EnableWindow( m_bMinSize );
	m_wndMaxSize.EnableWindow( m_bMaxSize );
	m_wndMarked.EnableWindow( m_bMarked );
	m_wndMatch.EnableWindow( m_bMatch );
	m_wndProtocols.EnableWindow( m_bProtocols );
	m_wndRotateTime.EnableWindow( m_bRotate );
	m_wndRotateTimeSpin.EnableWindow( m_bRotate );
	m_wndCapacity.SetRange32( m_nTransfersMax, 4096 );
	OnHScroll( 0, 0, NULL );


	if ( Settings.General.GUIMode == GUI_BASIC )
	{
		if ( !( Settings.eDonkey.EnableAlways | Settings.eDonkey.EnableToday ) )
		{
			m_bProtocols = FALSE;
			m_wndProtocols.EnableWindow( FALSE );
			m_wndProtocols.ShowWindow( FALSE );

			(GetProtocolCheckbox())->EnableWindow( FALSE );
			(GetProtocolCheckbox())->ShowWindow( FALSE );
		}
	}

	return TRUE;
}
コード例 #17
0
ファイル: tomEdit.cpp プロジェクト: baogechen/foundit
BOOL tomEdit::OnWndMsg(UINT message, WPARAM wParam, LPARAM lParam, LRESULT * pResult) 
{
    BOOL consumed = FALSE ;

    switch (message)
    {
    case WM_SETCURSOR :
        {
            POINT pt ;
            ::GetCursorPos(&pt) ;
            ::ScreenToClient(GetCenter()->GetHost(), &pt) ;
            //RECT bound_in_host ;
            //GetRectInHost(&bound_in_host) ;
            RECT client_bound ;
            GetClientBound(client_bound) ;

            if (::PtInRect(&client_bound, pt))
            {
                HDC hdc = ::GetDC(GetCenter()->GetHost()) ;

                m_services->OnTxSetCursor(
                    DVASPECT_CONTENT,	
                    -1,
                    NULL,
                    NULL,
                    hdc,
                    NULL,
                    //&bound_in_host,
                    NULL,
                    pt.x, 
                    pt.y
                    );

                ::ReleaseDC(GetCenter()->GetHost(), hdc) ;
                consumed = TRUE ;
            }
        }
        break ;

    case WM_MOUSEWHEEL :
        {
            UINT flags = LOWORD(wParam) ;
            short zDelta = HIWORD(wParam) ;
            if (flags == 0)
            {
                // 1. 缺省的滚轮操作
                /*if (zDelta > 0)
                {
                    m_services->TxSendMessage(WM_VSCROLL, SB_LINEUP, 0, pResult) ;
                }
                else
                {
                    m_services->TxSendMessage(WM_VSCROLL, SB_LINEDOWN, 0, pResult) ;
                }*/

                // 2. 平滑滚动,即每次滚动固定像素,而不是滚动一整行
                // 获得当前位置
                LONG min, max, pos, page ;
                BOOL enable = FALSE ;
                m_services->TxGetVScroll(&min, &max, &pos, &page, &enable) ;
                LONG line_height = page / 4 ;
                if (enable)
                {
                    if (zDelta > 0)
                    {
                        if (pos <= line_height)
                            pos = 0 ;
                        else
                            pos -= line_height ;
                    }
                    else
                    {
                        pos += line_height ;
                        if (pos >= max)
                            pos = max - 1 ;
                    }
                    WPARAM cmb_wParam = MAKEWPARAM(SB_THUMBPOSITION, pos) ;
                    m_services->TxSendMessage(WM_VSCROLL, cmb_wParam, 0, NULL) ;
                }
            }
            else
            {
                /*hr = */m_services->TxSendMessage(WM_MOUSEWHEEL, wParam, lParam, pResult) ;
            }
            consumed = TRUE ;
        }
        break ;

    case WM_VSCROLL :
        {
            OnVScroll((LPSCROLLMSGINFO)wParam, (WLScrollBar*)lParam) ;
            consumed = TRUE ;
        }
        break ;

    case WM_HSCROLL :
        {
            OnHScroll((LPSCROLLMSGINFO)wParam, (WLScrollBar*)lParam) ;
            consumed = TRUE ;
        }
        break ;

        // 允许输入字符,才能允许启用输入法
    case WM_GETDLGCODE :
        {
            *pResult |= (DLGC_WANTCHARS | DLGC_HASSETSEL) ;
            consumed = TRUE ;
        }
        break ;

    case WM_TIMER :
        {
            if (!m_caret.OnTimer(wParam))
                m_services->TxSendMessage(message, wParam, lParam, pResult) ;
            consumed = TRUE ;
        }
        break ;

    case WM_KILLFOCUS :
        {
            m_caret.DestroyCaret() ;
            m_services->TxSendMessage(message, wParam, lParam, pResult) ;
            consumed = TRUE ;
        }
        break ;

    default :
        if (S_FALSE != (m_services->TxSendMessage(message, wParam, lParam, pResult)))
        {
            consumed = TRUE ;
        }
    }

    return consumed ;
}
コード例 #18
0
ファイル: window.cpp プロジェクト: AllegianceZone/Allegiance
DWORD Window::WndProc(
    UINT message,
    WPARAM wParam,
    LPARAM lParam
) {
    switch (message) {
        case WM_CLOSE:
            OnClose();
            return 0;

        case WM_DESTROY:
            OnDestroy();
            return 0;

        case WM_PAINT:
            PAINTSTRUCT paint;
            BeginPaint(GetHWND(), &paint);
            OnPaint(paint.hdc, paint.rcPaint);
            EndPaint(GetHWND(), &paint);
            return 0;

        case WM_MOVE:
        case WM_SIZE:
            UpdateRect();
            RectChanged();
            break;

        case WM_TIMER:
            if (OnTimer())
                return 0;
            break;

        case WM_HSCROLL:
            if (OnHScroll((int)LOWORD(wParam), (short int) HIWORD(wParam), (HWND)lParam))
                return 0;
            break;

        case WM_VSCROLL:
            if (OnVScroll((int)LOWORD(wParam), (short int) HIWORD(wParam), (HWND)lParam))
                return 0;
            break;

        case WM_COMMAND:
            if (OnCommand(wParam, lParam))
                return 0;
            break;

        case WM_SYSCOMMAND:
            if (OnSysCommand(wParam & 0xFFF0, MakePoint(lParam)))
                return 0;
            break;

        case WM_ACTIVATE:
            if (OnActivate(LOWORD(wParam), HIWORD(wParam) != 0))
                return 0;
            break;

        case WM_ACTIVATEAPP:
            if (OnActivateApp(wParam != 0))
                return 0;
            break;

        case WM_CHAR:
            {
                KeyState ks;
                ks.vk = wParam;
                ks.bShift = (GetKeyState(VK_SHIFT) & 0x8000) != 0;
                ks.bControl = (GetKeyState(VK_CONTROL) & 0x8000) != 0;
                ks.countRepeat = LOWORD(lParam);

                return !OnChar(ks);
            }
            break;

        case WM_KEYDOWN:
        case WM_SYSKEYDOWN:
        case WM_KEYUP:
        case WM_SYSKEYUP:
            {
                KeyState ks;
                ks.vk = wParam;
                ks.bShift = (GetKeyState(VK_SHIFT) & 0x8000) != 0;
                ks.bControl = (GetKeyState(VK_CONTROL) & 0x8000) != 0;
                ks.bAlt = (message == WM_SYSKEYUP || message == WM_SYSKEYDOWN) 
                    && (lParam & (1 << 29)); // See help for WM_SYSKEYDOWN
                ks.bDown = (message == WM_KEYDOWN || message == WM_SYSKEYDOWN);
                ks.countRepeat = LOWORD(lParam);

                return !OnKey(ks);
            }
            break;
		
		case WM_MOUSEWHEEL: //imago 8/13/09
		case WM_XBUTTONDOWN:
		case WM_XBUTTONUP: 
        case WM_MOUSEHOVER: // imago --^
        case WM_LBUTTONDOWN:
        case WM_RBUTTONDOWN:
        case WM_MBUTTONDOWN:
        case WM_LBUTTONUP:
        case WM_RBUTTONUP:
        case WM_MBUTTONUP:
        case WM_MOUSEMOVE:
        case WM_MOUSELEAVE:
		case WM_NCMOUSEHOVER: //Imago 7/10
		case WM_NCMOUSELEAVE: //<--^
            {
                WinPoint pointMouse;
                if (message != WM_MOUSEWHEEL) {
                    WinPoint point(MakePoint(lParam));
                    pointMouse = WinPoint(point.X(),m_rectClient.YSize() - 1 - point.Y());
                    m_lastPointMouse = pointMouse;
                } else {
                    pointMouse = m_lastPointMouse;
                }

                //
                // Handle mouse leave
                //

                if (message == WM_MOUSELEAVE || message == WM_NCMOUSELEAVE) {
                    if (m_bMouseInside) {
                        m_bMouseInside = false;
                        OnMouseMessage(WM_MOUSELEAVE, 0, pointMouse);
                    }
                } else {
                    //
                    // Handle mouse enter
                    //

                    if (!m_bMouseInside && (message != WM_NCMOUSEHOVER && message != WM_MOUSEHOVER && message != 0)) {
                        m_bMouseInside = true;
                        OnMouseMessage(0, 0, pointMouse);

                        if (s_pfnTrackMouseEvent) {
                            TRACKMOUSEEVENT tme;

                            tme.cbSize      = sizeof(TRACKMOUSEEVENT);
                            tme.dwFlags     = TME_LEAVE;
                            tme.hwndTrack   = m_hwnd;
                            tme.dwHoverTime = HOVER_DEFAULT;

                            ZVerify(s_pfnTrackMouseEvent(&tme));
                        }
                    }

                    //
                    // Handle the mouse message
                    //

                    DWORD ret = 
                          OnMouseMessage(message, wParam, pointMouse)
                        ? 0
                        : 1;
                }

                return true;
            }
            break;

        case WM_SETCURSOR:
            //
            // use the custom cursor for the client area
            //

            if (LOWORD(lParam) == HTCLIENT) {
                ::SetCursor(NULL);
            } else {
                ::SetCursor(GetCursor());
            }

            break;

        case WM_WINDOWPOSCHANGING:
            if (OnWindowPosChanging((LPWINDOWPOS)lParam)) 
                return 0;
            break;
    }

    return m_pfnWndProc(m_hwnd, message, wParam, lParam);
}
コード例 #19
0
ファイル: ConfigSound.cpp プロジェクト: zeroCoder1/nesicide
void CConfigSound::volume_valueChanged(int value)
{
   OnHScroll(SB_HORZ,value,dynamic_cast<CScrollBar*>(GetDlgItem(IDC_VOLUME)));
}
コード例 #20
0
LRESULT COXScrollTipOwner::ScrollTipOwnerProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
// --- In  : hWnd : 
//			 uMsg : 
//			 wParam : 
//			 lParam :
// --- Out : 
// --- Returns : The result of the message
// --- Effect : This is the member function called by the windows procedure of the 
//				COXScrollTipOwner object
{
#if defined (_WINDLL)
#if defined (_AFXDLL)
	AFX_MANAGE_STATE(AfxGetAppModuleState());
#else
	AFX_MANAGE_STATE(AfxGetStaticModuleState());
#endif
#endif

	ASSERT_VALID(this);
	ASSERT(hWnd == m_hWnd);

	BOOL bHandled = FALSE;

	// Let the correct function handle the message
	switch (uMsg)
	{
	case WM_HSCROLL:
		{
			UINT nSBCode = LOWORD(wParam);
			int nPos = (signed short)HIWORD(wParam);
			HWND hScrollBar = (HWND)lParam;
			bHandled = OnHScroll(nSBCode, nPos, hScrollBar);
			break;
		}
	case WM_VSCROLL:
		{
			UINT nSBCode = LOWORD(wParam);
			int nPos = (signed short)HIWORD(wParam);
			HWND hScrollBar = (HWND)lParam;
			bHandled = OnVScroll(nSBCode, nPos, hScrollBar);
			break;
		}
	default:
		// Just fall through
		break;
	}

	if (bHandled)
		// ... Return that we handled the message
		return 0;
	else
	{
		// ... Let the next window procedure handle the other messages
		if (m_pNextHandler != NULL)
		{
			// Let the next in the chain handle it
			ASSERT_VALID(m_pNextHandler);
			return m_pNextHandler->ScrollTipOwnerProc(hWnd, uMsg, wParam, lParam);
		}
		else
		{
			// Let the original message procedure handle it
			ASSERT(m_pfnSuper != NULL);
			ASSERT(m_pfnSuper != GlobalScrollTipOwnerProc);
			return CallWindowProc(m_pfnSuper, hWnd, uMsg, wParam, lParam);
		}
	}
}