赞
踩
ComboBox能下拉选择内容,也能输入,但是怎么只让输入数字??
下面我们通过下面的方法来实现ComboBox输入数字,首先在头文件中定义一个
HWND m_hWnd;
然后在初始化函数中加入下面的代码就可以实现了。代码如下:
m_hWnd = ::GetWindow((CComboBox *)GetDlgItem(控件ID)->GetSafeHwnd(), GW_CHILD);
if(IsWindow(m_hWnd)
{
ModifyStyle(m_hFccSec, 0, ES_NUMBER, 0);
}
说明
1.作用:Call this member function to modify a window's style.
2.函数原型:
BOOL ModifyStyle(DWORD dwRemove, DWORD dwAdd, UINT nFlags);
3.参数含义:
dwRemove指定要删除的扩展属性,dwAdd指定修改时要增加的扩展属性,nFlag标志一般设置为0。
4.用法:
1、修改控件的原有属性用 ModifyStyle(1, WS_DISABLED);(实际测试时只要是>=0的整形数就行)
2、改回来的话要用ModifyStyle(WS_DISABLED, 1);(实际测试时只要是>=0的整形数就行)如果把参数想像成布尔值的话就使用1这个整形数,要除去第控件的属性就让第一个参数dwRemove为真,修改回来就让第二个参数dwAdd为真.
5.参考代码:
CButton* pBtn = NULL;
pBtn = (CButton*)GetDlgItem(IDC_BTN_BROWSEFOLDER);
pBtn->ModifyStyle(1, WS_DISABLED);
pBtn->Invalidate(FALSE);
6.其他说明:
(1).ModifyStyle中的风格参数说明:
ES开头的是editbox ES(EDIT STYLE缩写,其他类似)
BS开头的是button
LVS开头的是listview
WS开头的windows控件通用风格
如果是扩展的风格,加EX, 如WS_EX_CLIENTEDGE
(2).BOOL ModifyStyleEx(DWORD dwRemove, DWORD dwAdd, UINT nFlags=0);
dwStyle中可以使用以下一些树形控件的专用风格:
TVS_HASLINES 在父/子结点之间绘制连线
TVS_LINESATROOT 在根/子结点之间绘制连线
TVS_HASBUTTONS 在每一个结点前添加一个按钮,用于表示当前结点是否已被展开
TVS_EDITLABELS 结点的显示字符可以被编辑
TVS_SHOWSELALWAYS 在失去焦点时也显示当前选中的结点
TVS_DISABLEDRAGDROP 不允许Drag/Drop
TVS_NOTOOLTIPS 不使用ToolTip显示结点的显示字符
在树形控件中每一个结点都有一个句柄(HTREEITEM),同时添加结点时必须提供的参数是该结点的父结点句柄,利用HTREEITEM InsertItem( LPCTSTR lpszItem, HTREEITEM hParent = TVI_ROOT, HTREEITEM hInsertAfter = TVI_LAST );
可以添加一个结点,pszItem为显示的字符,hParent代表父结点的句柄,当前添加的结点会排在hInsertAfter表示的结点的后面,返回值
为当前创建的结点的句柄
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。