得到/设置DropDown ComboBox的文字
2008-04-19 20:29:04 来源:WEB开发网在使用DropDown类型的ComboBox时,如果使用者输入非ComboBox中列出的值,那么ComboBox的GetCurSel()的值是CB_ERR,相关的GetLBText()和GetLBTextLen()因为没有index也就无法工作。
在DDX时,可以把ComboBox和CString对应起来,采用它的原理,就可以自己来得到或设置DropDown ComboBox的文字了。
//得到ComboBox的文字
void GetComboBoxString(HWND hWndCtrl, CString& value)
{
// just get current edit item text (or drop list static)
int nLen = ::GetWindowTextLength(hWndCtrl);
if (nLen > 0)
{
// get known length
::GetWindowText(hWndCtrl, value.GetBufferSetLength(nLen), nLen+1);
}
else
{
// for drop lists GetWindowTextLength does not work - assume
// max of 255 characters
::GetWindowText(hWndCtrl, value.GetBuffer(255), 255+1);
}
value.ReleaseBuffer();
}
//设置ComboBox的文字
void SetComboBoxString(HWND hWndCtrl, const CString& value)
{
// set current selection based on model string
OutputDebugString("SetComboBoxString:" + value);
if (::SendMessage(hWndCtrl, CB_SELECTSTRING, (WPARAM)-1,
(LPARAM)(LPCTSTR)value) == CB_ERR)
{
// just set the edit text (will be ignored if DROPDOWNLIST)
AfxSetWindowText(hWndCtrl, value);
}
}
- ››设置的系统还原点不起作用的若干原因
- ››设置TWebbroser内容
- ››得到Windows Server 2003 R2 VL版本并迁移服务器
- ››设置并置 WebSphere Application Server 负载均衡...
- ››设置Symbian默认接入点
- ››设置Google Picasa让其适度工作
- ››设置不同级别会员的最大上传空间和单个文件最大值...
- ››设置DB2和AIX与条带技术匹配以提高I/O性能
- ››设置WIFI环境-让iphone/ipod touch上网
- ››得到应用程序列表 Symbian S60 3rd 的方法
- ››设置CentOS系统中tomcat环境变量
- ››设置修改CentOS系统细节
更多精彩
赞助商链接