MFC C/C++ zoom control

Lukket Opslået Mar 27, 2006 Betalt ved levering
Lukket Betalt ved levering

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

Ingeniørarbejde Microsoft MySQL PHP Software Arkitektur Software Testning Windows Skrivebord

Projekt ID: #3385163

Om projektet

1 bud Remote projekt Aktiv Apr 10, 2006

1 freelancer byder i gennemsnit $255 på dette job

johnxliuvw

See private message.

$255 USD in 3 dage
(23 bedømmelser)
5.3