|
#if !defined(AFX_DROPCOMBOBOX_H__115F422E_5CD5_11D1_ABBA_00A0243D1382__INCLUDED_)
#define AFX_DROPCOMBOBOX_H__115F422E_5CD5_11D1_ABBA_00A0243D1382__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
// DropComboBox.h : header file
//
// Autocompleting combo-box (like the URL edit box in netscape)
//
// Written by Chris Maunder (cmaunder@mail.com)
// Copyright (c) 1998.
//
// This code may be used in compiled form in any way you desire. This
// file may be redistributed unmodified by any means PROVIDING it is
// not sold for profit without the authors written consent, and
// providing that this notice and the authors name is included. If
// the source code in this file is used in any commercial application
// then acknowledgement must be made to the author of this file
// (in whatever form you wish).
//
// This file is provided "as is" with no expressed or implied warranty.
// The author accepts no liability if it causes any damage whatsoever.
//
// Expect bugs.
//
// Please use and enjoy. Please let me know of any bugs/mods/improvements
// that you have found/implemented and I will fix/incorporate them into this
// file.
//
// Drop edit stuff taken from "CDropEdit"
// Copyright 1997 Chris Losinger
//
// shortcut expansion code modified from :
// CShortcut, 1996 Rob Warner
/////////////////////////////////////////////////////////////////////////////
#include <shlobj.h>
/////////////////////////////////////////////////////////////////////////////
// CDropComboBox window
class CDropComboBox : public CComboBox
{
// Construction
public:
CDropComboBox();
// Attributes
public:
void AllowFileDrop(BOOL bAllow = TRUE) { m_bAllowFiles = bAllow; }
BOOL AllowingFileDrop() { return m_bAllowFiles; }
void AllowDirDrop(BOOL bAllow = TRUE) { m_bAllowDirs = bAllow; }
BOOL AllowingDirDrop() { return m_bAllowDirs; }
void SetMaxFiles(int nMaxFiles) { m_nMaxFiles = nMaxFiles; }
int GetMaxFiles() { return m_nMaxFiles; }
void SetNoRepeats(BOOL bNoRep) { m_bNoRepeats = bNoRep; }
BOOL GetNoRepeats() { return m_bNoRepeats; }
void PushString(LPCTSTR szText);
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CDropComboBox)
public:
virtual BOOL PreTranslateMessage(MSG* pMsg);
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CDropComboBox();
protected:
CString ExpandShortcut(CString &inFile);
LONG CheckRepeats(LPCTSTR lpszText);
void CheckOverflow();
void RecalcDropWidth();
int m_nMaxFiles;
BOOL m_bNoRepeats;
BOOL m_bAutoComplete;
BOOL m_bAllowFiles, m_bAllowDirs;
BOOL m_bMustUninitOLE;
// Generated message map functions
protected:
//{{AFX_MSG(CDropComboBox)
afx_msg void OnEditUpdate();
afx_msg LONG OnAddString(UINT wParam, LONG lParam);
afx_msg LONG OnInsertString(UINT wParam, LONG lParam);
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnDropFiles(HDROP dropInfo);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_DROPCOMBOBOX_H__115F422E_5CD5_11D1_ABBA_00A0243D1382__INCLUDED_)
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Chris Maunder is the co-founder of
CodeProject and
ContentLab.com, and has been a prominent figure in the software development community for nearly 30 years. Hailing from Australia, Chris has a background in Mathematics, Astrophysics, Environmental Engineering and Defence Research. His programming endeavours span everything from FORTRAN on Super Computers, C++/MFC on Windows, through to to high-load .NET web applications and Python AI applications on everything from macOS to a Raspberry Pi. Chris is a full-stack developer who is as comfortable with SQL as he is with CSS.
In the late 1990s, he and his business partner David Cunningham recognized the need for a platform that would facilitate knowledge-sharing among developers, leading to the establishment of CodeProject.com in 1999. Chris's expertise in programming and his passion for fostering a collaborative environment have played a pivotal role in the success of CodeProject.com. Over the years, the website has grown into a vibrant community where programmers worldwide can connect, exchange ideas, and find solutions to coding challenges. Chris is a prolific contributor to the developer community through his articles and tutorials, and his latest passion project,
CodeProject.AI.
In addition to his work with CodeProject.com, Chris co-founded ContentLab and DeveloperMedia, two projects focussed on helping companies make their Software Projects a success. Chris's roles included Product Development, Content Creation, Client Satisfaction and Systems Automation.