Example #1
0
LRESULT CMainFrame::OnNotify(WPARAM wParam, LPARAM lParam)
{
	// Notification from our dropdown button is recieved if Comctl32.dll version
	// is 4.70 or later (IE v3 required).
    switch(((LPNMHDR)lParam)->code)
	{
 		//Menu for dropdown toolbar button
		case TBN_DROPDOWN:
		{
			if (((LPNMHDR)lParam)->hwndFrom == GetToolBar())
				DoPopupMenu();
		}

	} //switch LPNMHDR

	return CFrame::OnNotify(wParam, lParam);
}
Example #2
0
BOOL CMainFrame::OnViewMenu()
{
	// This Command is recieved if Comctl32.dll version is below 4.7
	DoPopupMenu();
	return TRUE;
}
Example #3
0
static LRESULT CALLBACK WndProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
	switch(uMsg)
	{
	default:
		if(uMsg==g_controlMsg)
		{
			if(wParam==CONTROL_NEXT_LAYOUT||wParam==CONTROL_PREV_LAYOUT)
			{
				Layout *pFirstLayout,*pActiveLayout;

				pFirstLayout=CreateLayoutsList();
				pActiveLayout=FindActiveLayout(pFirstLayout);

				if(pActiveLayout)
				{
					Layout *pNewLayout;

					LOG("Active layout: \"%S\"\n",pActiveLayout->pDisplayName);
					LOG("wParam=%d\n",(int)wParam);

					if(wParam==CONTROL_NEXT_LAYOUT)
					{
						pNewLayout=pActiveLayout->pNextLayout;
						if(!pNewLayout)
							pNewLayout=pFirstLayout;
					}
					else
					{
						Layout *pNextLayout;
						if(pActiveLayout==pFirstLayout)
							pNextLayout=NULL;
						else
							pNextLayout=pActiveLayout;

						for(pNewLayout=pFirstLayout;pNewLayout;pNewLayout=pNewLayout->pNextLayout)
						{
							if(pNewLayout->pNextLayout==pNextLayout)
								break;
						}
					}

					if(pNewLayout)
					{
						LOG("New layout: \"%S\"\n",pNewLayout->pDisplayName);
						SetLayoutByHandle(pNewLayout->hkl,TRUE);
					}
				}

				DeleteLayoutList(pFirstLayout);
				pFirstLayout=NULL;
			}
			else if(wParam==CONTROL_SET_LAYOUT)
			{
				SetLayoutByHandle((HKL)lParam,TRUE);
			}
		}
		break;

	case WM_PAINT:
		{
			RECT client;
			PAINTSTRUCT ps;
			HDC dc=BeginPaint(hWnd,&ps);

			SaveDC(dc);

			GetClientRect(hWnd,&client);
			FillRect(dc,&client,GetStockObject(WHITE_BRUSH));

			SelectObject(dc,GetStockObject(DEFAULT_GUI_FONT));
			SetTextColor(dc,RGB(0,0,0));
			SetTextAlign(dc,TA_CENTER|VTA_CENTER);
			TextOutA(dc,client.right/2,client.bottom/2,RIGHT_CLICK_MESSAGE,RIGHT_CLICK_MESSAGE_LEN);

			RestoreDC(dc,-1);

			EndPaint(hWnd,&ps);
		}
		return 0;

	case WM_INPUTLANGCHANGEREQUEST:
		UpdateToolTip(FALSE);
		break;

	case WM_RBUTTONUP:
		// avoid injecting the DLL into explorer...
		DoPopupMenu();
		return 0;

	case SHOWTIP_MSG:
		UpdateToolTip(TRUE);
		return 0;

	case NOTIFY_MSG:
		{
			switch(lParam)
			{
			case WM_RBUTTONDOWN:
				DoPopupMenu();
				return 0;
			}
		}
		break;

	case WM_CLOSE:
		PostQuitMessage(0);
		return 0;
	}

	return DefWindowProc(hWnd,uMsg,wParam,lParam);
}