Main Page Class Hierarchy Compound List File List Compound Members File Members

# MNComboBox Class Reference

This class implements a generic combo box. More...

`#include <MNComboBox.h>`

Inheritance diagram for MNComboBox:

List of all members.

## Public Methods
| MNComboBox (MNComponent *parent, int x, int y, int w, int h, int style=CBS_DROPDOWN, LPSTR *data=NULL, int ndata=0)
| Creates a new Combo box.
void | AddString (LPSTR text, int index=END)
| Adds a string to the Combo at the given index.
void | AddStrings (LPSTR text[], int ntext, int index=END)
| Adds the ginven strings to the Combo at the given index.
void | RemoveString (int index)
| Removes the string at the given index.
LPSTR | GetString (int index)
| Gets the string at the given index.
LPSTR | operator[] (int index)
| Gets the string at the given index.
int | GetNumberOfItems ()
| Returns the number of items in the Combo box.
LPSTR | GetSelectedString ()
| Gets the selected string.
int | GetSelectedIndex ()
| Gets the index of the selected item.
virtual void | RegisterComponent (HWND *hwnd, MNComponent *com)
| Allows this component to recieve top level events.
virtual void | RegisterChild (HWND *hwnd, MNComponent *com)
| Allows this component to propagate an event to the given child.
virtual void | AddCallBack (BOOL(*callback)(MNComponent *, UINT, WPARAM, LPARAM))
| Adds a callback function.
virtual LRESULT | FireEvents (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
| Propagates events to all the callback functions.
virtual LRESULT | FireChildEvents (UINT message, WPARAM wParam, LPARAM lParam)
| Propagates the events to the appropriate child/children.
virtual LRESULT | SendEventToParent (UINT message, WPARAM wParam, LPARAM lParam)
| Transmits the given event to the parent.
virtual LRESULT | SendEventToChild (HWND child, UINT message, WPARAM wParam, LPARAM lParam)
| Transmits the given event to the child.
virtual LRESULT | SendEventToChild (MNComponent *child, UINT message, WPARAM wParam, LPARAM lParam)
| Transmits the given event to the child.
LRESULT | SendMessage (UINT msg, WPARAM wParam, LPARAM lParam)
| Sends a message to the underlying control.
virtual BOOL | Show ()
| Shows the component.
virtual BOOL | Hide ()
| Hides the component.
virtual HWND | GetHwnd ()
| Returns the window handle.
virtual HINSTANCE | GetInstance ()
| Returns the instance of the application.
virtual void | SetSize (int width, int height)
| Sets the size of the component.
virtual void | SetWidth (int width)
| Sets the width of the component.
virtual void | SetHeight (int height)
| Sets the height of the component.
virtual int | GetWidth ()
| Gets the width of the component.
virtual int | GetHeight ()
| Gets the height of the component.
virtual void | SetText (LPSTR label)
| Set the components text.
virtual void | GetText (LPSTR buf, int buf_len)
| Returns the component's text.
virtual int | GetX ()
| Returns the component's horizontal position.
virtual int | GetY ()
| Returns the component's vertical position.
virtual void | SetX (int x)
| Sets the component's horizontal position.
virtual void | SetY (int y)
| Sets the component's vertical position.
virtual void | SetPosition (int x, int y)
| Sets the component's position.
## Protected Methods
void | CreateControl (MNComponent *parent, LPSTR classname, LPSTR label, int width, int height, int x, int y, int style, int exstyle)
| Method that does the actual button creation.
void | GetCharSize ()
| Gets the average width of a character and the height of a character.
## Protected Attributes
MNComponent * | parent
| The parent of the component.
HWND | hwnd
| The handle to the component.
HINSTANCE | hInstance
| The instance of this application.
int | showstate
| The state of the window when hidden.
int | width
| The width of the component in pixels.
int | height
| The height of the component in pixels.
int | x
| The horizontal position of the panel.
int | y
| The vertical position of the panel.
vector< BOOL(*)(MNComponent *, UINT, WPARAM, LPARAM)> | listeners
| Stores the callbacks for this component. Stores the functions given to AddCallBack(). It is used by FireEvents() to notify the callbacks.
vector< CHILDCOMPONENT > | clisteners
| A list of the child components that events are to be passed to.
## Static Protected Attributes
TEXTMETRIC | finfo
| Information about the font used by the system.
## Friends
LRESULT CALLBACK | GlobalProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
| Is used to process all the callback functions.

## Detailed Description

This class implements a generic combo box.

Author:
  Micheal Nooner.

Combo box's understand the following messages:

- CB_ADDSTRING
- CB_DELETESTRING
- CB_DIR
- CB_FINDSTRING
- CB_FINDSTRINGEXACT
- CB_GETCOUNT
- CB_GETCURSEL
- CB_GETDROPPEDCONTROLRECT
- CB_GETDROPPEDSTATE
- CB_GETDROPPEDWIDTH
- CB_GETEDITSEL
- CB_GETEXTENDEDUI
- CB_GETHORIZONTALEXTENT
- CB_GETITEMDATA
- CB_GETITEMHEIGHT
- CB_GETLBTEXT
- CB_GETLBTEXTLEN
- CB_GETLOCALE
- CB_GETTOPINDEX
- CB_INITSTORAGE
- CB_INSERTSTRING
- CB_LIMITTEXT
- CB_RESETCONTENT
- CB_SELECTSTRING
- CB_SETCURSEL
- CB_SETDROPPEDWIDTH
- CB_SETEDITSEL
- CB_SETEXTENDEDUI
- CB_SETHORIZONTALEXTENT
- CB_SETITEMDATA
- CB_SETITEMHEIGHT
- CB_SETLOCALE
- CB_SETTOPINDEX
- CB_SHOWDROPDOWN
- WM_COMPAREITEM
- WM_DRAWITEM
- WM_MEASUREITEM

Combo boxes generate the following events:

- CBN_CLOSEUP
- CBN_DBLCLK
- CBN_DROPDOWN
- CBN_EDITCHANGE
- CBN_EDITUPDATE
- CBN_ERRSPACE
- CBN_KILLFOCUS
- CBN_SELCHANGE
- CBN_SELENDCANCEL
- CBN_SELENDOK
- CBN_SETFOCUS

## Constructor & Destructor Documentation

MNComboBox::MNComboBox | ( | MNComponent * | parent,
|  | int | x,
|  | int | y,
|  | int | w,
|  | int | h,
|  | int | style = CBS_DROPDOWN,
|  | LPSTR * | data = NULL,
|  | int | ndata = 0
| ) |

  | Creates a new Combo box. Parameters:
  parent | the parent of this component.
  x | how far left to place the control.
  y | how far down to place the control.
  w | the width of the component (in characters).
  h | the height of the component (in lines).
  style | the style of the control (see windows docs), the default WS_VSCROLL | CBS_NOTIFY | CBS_SORT.
  data | a pointer to an array of strings to use as the default strings to place in the Combo box.
  ndata | the size of the data array.

## Member Function Documentation

void MNComponent::AddCallBack | ( | BOOL(* | callback)(MNComponent *, UINT, WPARAM, LPARAM) | ) | `[virtual, inherited]`

  | Adds a callback function. Parameters:
  callback | the function to call when an event occurs
See also: FireEvents(), listeners

void MNComboBox::AddString | ( | LPSTR | text,
|  | int | index = END
| ) |

  | Adds a string to the Combo at the given index. Parameters:
  text | The string to add to the Combo box.
  index | The zero based position to add the string at (default bottom).

void MNComboBox::AddStrings | ( | LPSTR | text[],
|  | int | ntext,
|  | int | index = END
| ) |

  | Adds the ginven strings to the Combo at the given index. Parameters:
  text | The array of strings to add to the Combo box.
  ntext | Number of elements in the text array.
  index | The zero based position to add the string at (default bottom).

void MNComponent::CreateControl | ( | MNComponent * | parent,
|  | LPSTR | classname,
|  | LPSTR | label,
|  | int | width,
|  | int | height,
|  | int | x,
|  | int | y,
|  | int | style,
|  | int | exstyle
| ) | `[protected, inherited]`

  | Method that does the actual button creation. Parameters:
  parent | the parent of this component.
  label | the text to associate with the button.
  classname | the name of the registered class to use (see windows docs).
  width | how wide to make the button.
  height | how tall to make the button.
  x | how far left to place the button at.
  y | how far down to place the button at.
  style | the style of the button (see windows docs).
  exstyle | the extended window style (see windows docs).

LRESULT MNComponent::FireChildEvents | ( | UINT | message,
|  | WPARAM | wParam,
|  | LPARAM | lParam
| ) | `[virtual, inherited]`

  | Propagates the events to the appropriate child/children. Parameters:
  message | the windows message to pass to the callback
  wParam | the submessage (see windows docs).
  lParam | the subparameter (see windows docs).
Returns: 0 if the event was handled otherwise what DefWindowProc returns. See also: RegisterChild(), clisteners

LRESULT MNComponent::FireEvents | ( | HWND | hwnd,
|  | UINT | message,
|  | WPARAM | wParam,
|  | LPARAM | lParam
| ) | `[virtual, inherited]`

  | Propagates events to all the callback functions. Parameters:
  hwnd | the window handle to the window the events go to.
  message | the windows message to pass to the callback.
  wParam | the submessage (see windows docs).
  lParam | the subparameter (see windows docs).
Returns: 0 if the event was handled otherwise what DefWindowProc returns. See also: AddCallBack(), listeners

int MNComponent::GetHeight | ( |  | ) | `[virtual, inherited]`

| Gets the height of the component. Returns: The height of the component. Reimplemented in MNPanel.

HWND MNComponent::GetHwnd | ( |  | ) | `[virtual, inherited]`

| Returns the window handle. Returns: the window handle.

HINSTANCE MNComponent::GetInstance | ( |  | ) | `[virtual, inherited]`

| Returns the instance of the application. Returns: the instance of the application.

int MNComboBox::GetNumberOfItems | ( |  | ) |

| Returns the number of items in the Combo box. Returns: The number of rows in the Combo box.

int MNComboBox::GetSelectedIndex | ( |  | ) |

| Gets the index of the selected item. Returns: The zero based index of the selected string, or CB_ERR if nothing is selected.

LPSTR MNComboBox::GetSelectedString | ( |  | ) |

| Gets the selected string. Returns: The string selected by the user, or NULL if no string is selected.

LPSTR MNComboBox::GetString | ( | int | index | ) |

  | Gets the string at the given index. Parameters:
  index | The zero based index of the string to get.
Returns: The string found at index.

void MNComponent::GetText | ( | LPSTR | buf,
|  | int | buf_len
| ) | `[virtual, inherited]`

  | Returns the component's text. Parameters:
  buf | Where to place the components text.
  buf_len | the length of the buffer.
Returns: The components text

int MNComponent::GetWidth | ( |  | ) | `[virtual, inherited]`

| Gets the width of the component. Returns: The width of the component. Reimplemented in MNPanel.

int MNComponent::GetX | ( |  | ) | `[virtual, inherited]`

| Returns the component's horizontal position. Returns: The component's horizontal position.

int MNComponent::GetY | ( |  | ) | `[virtual, inherited]`

| Returns the component's vertical position. Returns: The component's vertical position.

BOOL MNComponent::Hide | ( |  | ) | `[virtual, inherited]`

| Hides the component. It still may not be hidden if MNWindow::BeginMessageLoop() has not been called yet, or some callback negates this methods effect. Returns: whether the component was hidden.

LPSTR MNComboBox::operator[] | ( | int | index | ) |

  | Gets the string at the given index. Parameters:
  index | The zero based index of the string to get.
Returns: The string found at index.

void MNComponent::RegisterChild | ( | HWND * | hwnd,
|  | MNComponent * | com
| ) | `[virtual, inherited]`

  | Allows this component to propagate an event to the given child. Parameters:
  hwnd | the window handle of the component to register.
  com | the component to register.
See also: CHILDCOMPONENT, clisteners

void MNComponent::RegisterComponent | ( | HWND * | hwnd,
|  | MNComponent * | com
| ) | `[virtual, inherited]`

  | Allows this component to recieve top level events. Parameters:
  hwnd | the window handle of the component to register.
  com | the component to register.
See also: AddCallBack(), FireEvents(), GlobalProc()

void MNComboBox::RemoveString | ( | int | index | ) |

  | Removes the string at the given index. Parameters:
  index | The zero based index of the string to remove.

LRESULT MNComponent::SendEventToChild | ( | MNComponent * | child,
|  | UINT | message,
|  | WPARAM | wParam,
|  | LPARAM | lParam
| ) | `[virtual, inherited]`

  | Transmits the given event to the child. Parameters:
  child | the child component to send the event to.
  message | the windows message to pass to the callback
  wParam | the submessage (see windows docs).
  lParam | the subparameter (see windows docs).
Returns: what is returned by the childs FireEvent(). See also: FireEvents()

LRESULT MNComponent::SendEventToChild | ( | HWND | child,
|  | UINT | message,
|  | WPARAM | wParam,
|  | LPARAM | lParam
| ) | `[virtual, inherited]`

  | Transmits the given event to the child. Parameters:
  child | the child component to send the event to.
  message | the windows message to pass to the callback
  wParam | the submessage (see windows docs).
  lParam | the subparameter (see windows docs).
Returns: what is returned by the childs FireEvent(). See also: FireEvents()

LRESULT MNComponent::SendEventToParent | ( | UINT | message,
|  | WPARAM | wParam,
|  | LPARAM | lParam
| ) | `[virtual, inherited]`

  | Transmits the given event to the parent. Parameters:
  message | the windows message to pass to the callback
  wParam | the submessage (see windows docs).
  lParam | the subparameter (see windows docs).
Returns: 0 if the event was handled otherwise what DefWindowProc returns.

LRESULT MNComponent::SendMessage | ( | UINT | msg,
|  | WPARAM | wParam,
|  | LPARAM | lParam
| ) | `[inherited]`

| Sends a message to the underlying control. See the components docs.

void MNComponent::SetHeight | ( | int | height | ) | `[virtual, inherited]`

  | Sets the height of the component. Parameters:
  height | the new height of the component.

void MNComponent::SetPosition | ( | int | x,
|  | int | y
| ) | `[virtual, inherited]`

  | Sets the component's position. This method is most often used by layout managers to set a control's position without affecting wether x or y's value is AUTOPOS. Parameters:
  x | the horizontal position to place the control.
  y | the vertical position to place the control.
Reimplemented in MNPanel.

void MNComponent::SetSize | ( | int | width,
|  | int | height
| ) | `[virtual, inherited]`

  | Sets the size of the component. Parameters:
  width | the new width of the component.
  height | the new height of the component.

void MNComponent::SetText | ( | LPSTR | label | ) | `[virtual, inherited]`

  | Set the components text. Parameters:
  label | the text to associate with the button.
Reimplemented in MNAbstractButton.

void MNComponent::SetWidth | ( | int | width | ) | `[virtual, inherited]`

  | Sets the width of the component. Parameters:
  width | the new width of the component.

void MNComponent::SetX | ( | int | x | ) | `[virtual, inherited]`

  | Sets the component's horizontal position. Parameters:
  x | what to set the component's horizontal position to.

void MNComponent::SetY | ( | int | y | ) | `[virtual, inherited]`

  | Sets the component's vertical position. Parameters:
  y | what to set the component's vertical position to.

BOOL MNComponent::Show | ( |  | ) | `[virtual, inherited]`

| Shows the component. It still may not be shown if MNWindow::BeginMessageLoop() has not been called yet, or some callback negates this methods effect. Returns: whether the component was shown.

## Friends And Related Function Documentation

LRESULT CALLBACK GlobalProc | ( | HWND | hwnd,
|  | UINT | message,
|  | WPARAM | wParam,
|  | LPARAM | lParam
| ) | `[friend, inherited]`

  | Is used to process all the callback functions. Parameters:
  hwnd | the window handle to the window the events go to
  message | the windows message to pass to the callback
  wParam | the submessage (see windows docs).
  lParam | the subparameter (see windows docs).
Returns: what the appropriate component's FireEvent() method returns otherwise if returns what DefWindowProc() returns. See also: MNComponent::FireEvents

## Member Data Documentation

vector< CHILDCOMPONENT > MNComponent::clisteners`[protected, inherited]`

| A list of the child components that events are to be passed to. Stores the children who wish to recieve events. See also: FireChildEvents(), CHILDCOMPONENT

vector<BOOL (*)(MNComponent* , UINT, WPARAM, LPARAM)> MNComponent::listeners`[protected, inherited]`

| Stores the callbacks for this component. Stores the functions given to AddCallBack(). It is used by FireEvents() to notify the callbacks. See also: AddCallBack(), FireEvents()

The documentation for this class was generated from the following files:

- MNComboBox.h
- MNComboBox.cpp