情况是这样的,ATL写的一个组件。没有用到MFC界面用WTL来实现的,现在只实现了一个文本输入框。如果要加入可编辑的下拉列表框该怎么做呢???下面是调用WTL的一个类
class CBandEditCtrl : public CWindowImpl<CBandEditCtrl, CComboBox>,
public IDropTarget {
public:
CBandEditCtrl();
virtual ~CBandEditCtrl();// Operations
public:
STDMETHOD(TranslateAcceleratorIO)(LPMSG pMsg); // Support Drag and Drop
STDMETHODIMP QueryInterface(REFIID, VOID**);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void); STDMETHODIMP DragEnter(LPDATAOBJECT, DWORD, POINTL, LPDWORD);
STDMETHODIMP DragOver(DWORD, POINTL, LPDWORD);
STDMETHODIMP DragLeave(void);
STDMETHODIMP Drop(LPDATAOBJECT, DWORD, POINTL, LPDWORD); DECLARE_WND_SUPERCLASS(NULL, TEXT("EDIT")) BEGIN_MSG_MAP(CBandEditCtrl)
OCM_COMMAND_CODE_HANDLER(EN_SETFOCUS, OnSetFocus)
MESSAGE_HANDLER(WM_CHAR, OnChar)
MESSAGE_HANDLER(WM_KEYUP, OnKeyUp)
END_MSG_MAP() CToolBandObj* m_pBand;
LPDATAOBJECT m_pIDataObject;protected:
LRESULT OnSetFocus(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
LRESULT OnChar(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& bHandled);
LRESULT OnKeyUp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);protected:
ULONG m_cRef;
};
要建立可编辑的下拉列表框该怎么做呀??谢谢各位兄弟!!!!!!
class CBandEditCtrl : public CWindowImpl<CBandEditCtrl, CComboBox>,
public IDropTarget {
public:
CBandEditCtrl();
virtual ~CBandEditCtrl();// Operations
public:
STDMETHOD(TranslateAcceleratorIO)(LPMSG pMsg); // Support Drag and Drop
STDMETHODIMP QueryInterface(REFIID, VOID**);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void); STDMETHODIMP DragEnter(LPDATAOBJECT, DWORD, POINTL, LPDWORD);
STDMETHODIMP DragOver(DWORD, POINTL, LPDWORD);
STDMETHODIMP DragLeave(void);
STDMETHODIMP Drop(LPDATAOBJECT, DWORD, POINTL, LPDWORD); DECLARE_WND_SUPERCLASS(NULL, TEXT("EDIT")) BEGIN_MSG_MAP(CBandEditCtrl)
OCM_COMMAND_CODE_HANDLER(EN_SETFOCUS, OnSetFocus)
MESSAGE_HANDLER(WM_CHAR, OnChar)
MESSAGE_HANDLER(WM_KEYUP, OnKeyUp)
END_MSG_MAP() CToolBandObj* m_pBand;
LPDATAOBJECT m_pIDataObject;protected:
LRESULT OnSetFocus(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
LRESULT OnChar(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& bHandled);
LRESULT OnKeyUp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);protected:
ULONG m_cRef;
};
要建立可编辑的下拉列表框该怎么做呀??谢谢各位兄弟!!!!!!
解决方案 »
- 怎样更改tab标签的背景颜色?
- XML DOM getNamedItem()//msdn版本太老?怎么两个参数?
- WININET出错,求救!
- UDP端口的一些问题?
- windows NT中的二级页面寻址是如何进行的?
- 并口和串口的操作在windows98和win2000server下有区别吗??????
- 对话框按钮如何实现类似工具栏上的按钮一样的变灰?
- Spy++为什么不能抓住网页中的文本编辑框,却只能抓住ComboBox等比较明显的区域?
- access默认值的问题
- 关于调用COM+的问题.
- 求VC++6.0中注释多行代码的快捷键组合!!!!!!!!!
- 怎样使用一个嵌入HTML中的ActiveX控件获得所在页面上的所有HTML
看看有没有什么帮助。
www.codeproject.com/atl/ietoolbartutorial.asp
感谢众兄弟的回复。这位兄弟所说的那个地方的列子也只是一个只有输入框的例子,在下想要的做的是
下可编辑的下拉列表框
在atlctrls.h里面倒是有CEdit,CComboBox,CListBox模板,可我不知道该怎么用这些玩意来生成可编辑的下拉列表框。。......
按 kingzai(stevenzhu) 这个兄弟说的还是不行。
就像下面
m_ctlBandEdit.Create(m_hWnd, rc, NULL, WS_CHILD|WS_VISIBLE|CBS_DROPDOWNLIST|CBS_SORT|CBS_HASSTRINGS, WS_EX_CLIENTEDGE,IDC_TOOLBAREDIT);
m_ctlBandEdit.AddString(_T("ASDF"));//增加项
m_ctlBandEdit.SetFont((HFONT)GetStockObject( DEFAULT_GUI_FONT ));设置字体
以前调用的模块
CWindowImpl<CBandEditCtrl, CEdit>
现如今换成
CWindowImpl<CBandEditCtrl, CCmoboBox>
然后建立.可出来的还是那个文本输入框,郁闷呀~~~~~
http://www.codeproject.com/wtl/wtlautocompletecombo.asp
那是在资源里面添加的不行
如果你有兴趣的话留下你的EMAIL我把程序发给你看看