在COMBOBOX中如何更改 它下属 的 EDIT 的尺寸大小??本来是基于CCOMBOBOX扩展了三层类,在下面的类中锝不到CCOMBOBOX的EDIT窗口句柄,于是另搞个程序实验。
这是我在一个基于对话框的程序里面做的实验
窗口中一个COMBOBOX控件 一个按纽来调试 CComboBox * pComboBox=(CComboBox*)GetDlgItem(IDC_COMBO1);
//得到COMBOBOX的子窗口数目
int i=pComboBox->GetWindowedChildCount();
//得到COMBOBOX中的EDIT窗口
CEdit * pedit=(CEdit*)((pComboBox->GetWindow(GW_CHILD)));
CRect tempRect;
//得到EDIT窗口的大小
pedit->GetClientRect(&tempRect);
//HRGN temphrgn=Region(&tempRect);
tempRect.bottom+=50;tempRect.right+=50;
//这两个函数没有起到应有的作用:将EDIT窗口尺寸改变
pedit->SetWindowRgn(HRGN(&tempRect),TRUE);
pedit->SetWindowPos(pComboBox,tempRect.left,tempRect.top,tempRect.Width()+100,tempRect.Height()+100,SWP_SHOWWINDOW );
这是我在一个基于对话框的程序里面做的实验
窗口中一个COMBOBOX控件 一个按纽来调试 CComboBox * pComboBox=(CComboBox*)GetDlgItem(IDC_COMBO1);
//得到COMBOBOX的子窗口数目
int i=pComboBox->GetWindowedChildCount();
//得到COMBOBOX中的EDIT窗口
CEdit * pedit=(CEdit*)((pComboBox->GetWindow(GW_CHILD)));
CRect tempRect;
//得到EDIT窗口的大小
pedit->GetClientRect(&tempRect);
//HRGN temphrgn=Region(&tempRect);
tempRect.bottom+=50;tempRect.right+=50;
//这两个函数没有起到应有的作用:将EDIT窗口尺寸改变
pedit->SetWindowRgn(HRGN(&tempRect),TRUE);
pedit->SetWindowPos(pComboBox,tempRect.left,tempRect.top,tempRect.Width()+100,tempRect.Height()+100,SWP_SHOWWINDOW );
解决方案 »
- 求助。关于tcp client端传数
- 在InitInstance建立一登陆对话框???
- 如何响应对话框上Edit控件的键盘事件?
- 请问:用ifstream从文本中逐个读入单词,如何判断文件结束?
- 关于对象的delete时机问题
- xiao_potato(小土豆) 请进!
- 哪个打包软件比较好?我想把程序打包
- Gina中的WLX_SAS_ACTION_SHUTDOWN
- VS2005编译的程序在本机能运行不能在别人目标机上运行
- 寻找有共同技术兴趣之友:合办一份从事研究《ATL/COM》的免费电子杂志!!!!!!!!!!!!!!1
- 请问一下,debug版中,有什么方法能禁止掉TRACE吗?,谢谢
- 用VC+ADO查询数据库,用户名中含有"'"怎么处理?
更大的问题 是怎么设置 Edit的readonly属性 class CInPlaceComboBox : public CCJFlatComboBox: public CComboBoxCInPlaceComboBox::CInPlaceComboBox(CDiagramEntity *pOwner, CWnd* pParent, CRect& rect, UINT nID,int nRow, int nColumn, UINT nFirstChar)
:m_ft(0)
{
DWORD dwEditStyle = WS_CHILD|WS_VISIBLE|CBS_SIMPLE|
CBS_AUTOHSCROLL|CBS_DROPDOWN|CBS_NOINTEGRALHEIGHT;
//rect指整个ComboBox的尺寸
rect.bottom=rect.bottom+200; if (!Create(dwEditStyle, rect, pParent, nID))
return;
}
这样Create的ComboBox为什么 不能编辑Edit框 用属性不行 还有个方法 就是得到Edit的窗口来 SetReadonly();可在CCJFlatComboBox的鼠标消息响应函数中也得不到CComboBox的Edit子窗口。
WS_VISIBLE|CBS_DROPDOWNLIST 不能编辑
但是 我的CComboBox 是在另一个控件创建的
需要CBS_SIMPLE 导致不能编辑 晕了