一个 CBS_DROPDOWN 样式的组合框,为了能在编辑框多输入些东西,如何给加上 ES_AUTOHSCROLL 样式
一个 CBS_DROPDOWN 样式的组合框,为了能在编辑框多输入些东西,怎么给加上 ES_AUTOHSCROLL 样式
现在同时需要组合框的下拉功能和输入功能,但编辑框部分默认不能滚动。下面是我的代码,运行之后没能让编辑框添加滚动样式。之前我还用过 GetClassLongPtr/SetClassLongPtr 也没好使
------解决方案--------------------
使用 CBS_AUTOHSCROLL 样式
现在同时需要组合框的下拉功能和输入功能,但编辑框部分默认不能滚动。下面是我的代码,运行之后没能让编辑框添加滚动样式。之前我还用过 GetClassLongPtr/SetClassLongPtr 也没好使
- C/C++ code
int CMyComboBox::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CComboBox::OnCreate(lpCreateStruct) == -1) return -1; e.SubclassWindow( ::FindWindowEx( this->m_hWnd, NULL, L"EDIT", 0 ) ); DWORD style = ::GetWindowLong( e.GetSafeHwnd(), GWL_STYLE); style = style | ES_AUTOHSCROLL; ::SetWindowLong(e.GetSafeHwnd(), GCL_STYLE, style); return 0; }
------解决方案--------------------
使用 CBS_AUTOHSCROLL 样式