102 lines
3.5 KiB
C
102 lines
3.5 KiB
C
|
/*++ BUILD Version: 0001
|
||
|
*
|
||
|
* WOW v1.0
|
||
|
*
|
||
|
* Copyright (c) 1991, Microsoft Corporation
|
||
|
*
|
||
|
* COMBCOM.H
|
||
|
*
|
||
|
* History:
|
||
|
* Created 28-May-1991 by Jeff Parsons (jeffpar)
|
||
|
* Copied from WIN31 and edited (as little as possible) for WOW16
|
||
|
--*/
|
||
|
|
||
|
/*
|
||
|
* combcom.h - Common include file for combo boxs. This include file is used
|
||
|
* in the combo box code, the single line edit control code, listbox code, and
|
||
|
* static control code.
|
||
|
*/
|
||
|
|
||
|
/* ID numbers (hMenu) for the child controls in the combo box */
|
||
|
#define CBLISTBOXID 1000
|
||
|
#define CBEDITID 1001
|
||
|
#define CBBUTTONID 1002
|
||
|
|
||
|
typedef struct tagCBox
|
||
|
{
|
||
|
HWND hwnd; /* Window for the combo box */
|
||
|
HWND hwndParent; /* Parent of the combo box */
|
||
|
RECT comboDownrc; /* Rectangle used for the "dropped"
|
||
|
(listbox visible) combo box */
|
||
|
RECT editrc; /* Rectangle for the edit control/static text
|
||
|
area */
|
||
|
RECT buttonrc; /* Rectangle where the dropdown button is */
|
||
|
HWND editHwnd; /* Edit control window handle */
|
||
|
HWND listboxHwnd; /* List box control window handle */
|
||
|
WORD CBoxStyle; /* Combo box style */
|
||
|
WORD OwnerDraw; /* Owner draw combo box if nonzero. value
|
||
|
* specifies either fixed or varheight
|
||
|
*/
|
||
|
WORD fFocus:1; /* Combo box has focus? */
|
||
|
WORD fNoRedraw:1; /* Stop drawing? */
|
||
|
WORD fNoEdit:1; /* True if editing is not allowed in the edit
|
||
|
* window.
|
||
|
*/
|
||
|
WORD fButtonDownClicked:1;/* Was the popdown button just clicked and
|
||
|
mouse still down? */
|
||
|
WORD fButtonInverted:1; /* Is the dropdown button in an inverted state?
|
||
|
*/
|
||
|
WORD fLBoxVisible:1; /* Is list box visible? (dropped down?) */
|
||
|
WORD fKeyboardSelInListBox:1; /* Is the user keyboarding through the
|
||
|
* listbox. So that we don't hide the
|
||
|
* listbox on selchanges caused by the
|
||
|
* user keyboard through it but we do
|
||
|
* hide it if the mouse causes the
|
||
|
* selchange.
|
||
|
*/
|
||
|
WORD fExtendedUI:1; /* Are we doing TandyT's UI changes on this
|
||
|
* combo box?
|
||
|
*/
|
||
|
HANDLE hFont; /* Font for the combo box */
|
||
|
LONG styleSave; /* Save the style bits when creating window.
|
||
|
* Needed because we strip off some bits and
|
||
|
* pass them on to the listbox or edit box.
|
||
|
*/
|
||
|
} CBOX;
|
||
|
|
||
|
typedef CBOX NEAR *PCBOX;
|
||
|
typedef CBOX FAR *LPCBOX;
|
||
|
|
||
|
/*
|
||
|
* For CBOX.cBoxType field, we define the following combo box styles. These
|
||
|
* numbers are the same as the CBS_ style codes as defined in windows.h.
|
||
|
*/
|
||
|
#define SSIMPLE 1
|
||
|
#define SDROPDOWN 2
|
||
|
#define SDROPDOWNLIST 3
|
||
|
|
||
|
/* Owner draw types */
|
||
|
#define OWNERDRAWFIXED 1
|
||
|
#define OWNERDRAWVAR 2
|
||
|
|
||
|
/*
|
||
|
* Special styles for static controls, edit controls & listboxes so that we
|
||
|
* can do combo box specific stuff in their wnd procs.
|
||
|
*/
|
||
|
#define ES_COMBOBOX 0x0200L
|
||
|
#define LBS_COMBOBOX 0x8000L
|
||
|
|
||
|
/* Special internal combo box messages */
|
||
|
#define CBEC_SETCOMBOFOCUS CB_MSGMAX+1
|
||
|
#define CBEC_KILLCOMBOFOCUS CB_MSGMAX+2
|
||
|
|
||
|
|
||
|
/* Special messages for listboxes so give combo box support */
|
||
|
#define LBCB_CARETON LB_MSGMAX+1
|
||
|
#define LBCB_CARETOFF LB_MSGMAX+2
|
||
|
|
||
|
/* Common Procedures */
|
||
|
VOID FAR PASCAL CBUpdateEditWindow(register PCBOX);
|
||
|
VOID FAR PASCAL CBHideListBoxWindow(register PCBOX pcbox, BOOL fNotifyParent);
|
||
|
VOID FAR PASCAL CBShowListBoxWindow(register PCBOX);
|