MFC C/C++ zoom control

Encerrado Postado Mar 27, 2006 Pago na entrega
Encerrado Pago na entrega

The project is to create a windows (MFC) control that takes mouse input (no keyboard input) to set a “zoom?? value ??" basically a custom drawn slide control (range selector). It will be written in C/C++, ideally using Visual Studio 2005. An example of what is needed is the zoom control used by Google Maps, see

<[url removed, login to view]>

In the Google example the panning part of the control is not needed. Examples of approaches that can be taken are available at:

<http://www.thecodeproject.com/miscctrl/#Range+Selectors>

## Deliverables

1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done. Ideally visual studion 2005 format.

2) The control will only be a member of a view class, so it does not need to have IDE selectable properties.

3) The tricky part is that the control will have transparent background ??" the underlying view may change from inputs other than the zoom control.

4) Ideally the control will draw itself using GDI commands, however the use of bitmaps will be considered. The deciding factor will be whether there is noticeable flicker when the background view is changing.

5) The control will query the system for the current display resolution. If the display is low resolution (640x480) it will draw itself using small graphics. If the resolution is high (1024x768 or greater) it would use larger graphics.

6) When the mouse is over the control, the cursor will change to the Hand mouse pointer (IDC_HAND). When the user presses the left mouse button, the pointer will change to another pointer to indicate the control is active (an up/down type arrow).

7) The number of ticks will be automatically calculated based on the dimensions of the control. It will be drawn to be aesthetically pleasing.

8) The minimum zoom value will be 1.0. The maximum will be programmatically selectable. It can be set by calling a member function SetZoomValue(double value). It can also be set during the Create call, the default will be 10.0.

9) The control will scale linearly. So if the minimum zoom is 1.0 and the maximum is 10.0, the midpoint would be 4.5.

10) The control will inform its parent that the user has changed the zoom value. Two types of messages will be sent. 1 ??" that the zoom value has changed (the mouse button is still down). 2 ??" that the user has released the left mouse button (zoom change has ended).

11) It is acceptable to utilize an existing control and simply subclass it. A vertical CSliderCtrl looks promising, you would use custom drawing.

12) The control will only exist as a vertical slider.

13) A simple “hello world?? project has been created utilizing CsliderCtrl as the basis for the zoom control. Please use this as the basis for your solution. You will modifiy the CzoomCtrl class. The project is a basic SDI application. The view has a timer associated with it, changing part of the backround color from black to white. This is because the control must handle that the background image will be changing, so the transparent sections of the control must update correctly as the view cycles.

## Platform

Windows XP

Engenharia Microsoft MySQL PHP Arquitetura de software Teste de Software Área de trabalho do Windows

ID do Projeto: #3385163

Sobre o projeto

1 proposta Projeto remoto Ativo em Apr 10, 2006

1 freelancer está oferecendo em média $255 para esse trabalho

johnxliuvw

See private message.

$255 USD in 3 dias
(23 Comentários)
5.3