窗口风格的有关问题,窗口[将要有的风格]和窗口[现有的风格]
窗口风格的问题,窗口[将要有的风格]和窗口[现有的风格]
1. 对话框拖一个ListBox (默认就已经属性勾选 垂直滚动条 WS_VSCROLL)
2. 继承CListBoxEx
class CListBoxEx : public CListBox
{...}
3. 在以下函数获得窗口风格
4. 然后向控件插入数据 超过ListBox显示高度后 滚动条出现
5. 再次获得控件风格 比较数值后 有WS_VSCROLL 属性
囧
请问:如何通过代码知道我这个ListBox将会有WS_VSCROLL属性?
好吧 简单点说: 默认拖到对话框上的ListBox 如何在该类的 PreSubclassWindow() 函数中获得他有 WS_VSCROLL 属性?
(WS_VSCROLL 只是个挡箭牌 不是说一定是特指这一个窗口属性 你懂的 :) )
****************************************华丽的分割线*****************************************
PS: 对于ModifyStyle()函数老是修改不了控件风格的孩子伤不起啊 与上面无关 表示抱怨一下 囧
------解决方案--------------------
GetWindowLong(m_hWnd, GWL_STYLE) & WS_VSCROLL,如果为非0值,表示这个风格中有WS_VSCROLL属性;如果为0值,表示没有WS_VSCROLL风格。
这是获取普通窗口风格的,如果要查看EX风格,用GetWindowLong(m_hWnd, GWL_EXSTYLE)。
------解决方案--------------------
1. 对话框拖一个ListBox (默认就已经属性勾选 垂直滚动条 WS_VSCROLL)
2. 继承CListBoxEx
class CListBoxEx : public CListBox
{...}
3. 在以下函数获得窗口风格
- C/C++ code
void CListBoxEx::PreSubclassWindow() { DWORD dwStyle = GetWindowLong(m_hWnd, GWL_STYLE); //比较dwStyle数值 没有 WS_VSCROLL 属性 ... //10100000000 00010 00000 01000 10011 //dwStyle //00000000010 00000 00000 00000 00000 //GWL_STYLE }
4. 然后向控件插入数据 超过ListBox显示高度后 滚动条出现
5. 再次获得控件风格 比较数值后 有WS_VSCROLL 属性
- C/C++ code
//10100000010 00010 00000 01000 10011 //dwStyle //00000000010 00000 00000 00000 00000 //GWL_STYLE
囧
请问:如何通过代码知道我这个ListBox将会有WS_VSCROLL属性?
好吧 简单点说: 默认拖到对话框上的ListBox 如何在该类的 PreSubclassWindow() 函数中获得他有 WS_VSCROLL 属性?
(WS_VSCROLL 只是个挡箭牌 不是说一定是特指这一个窗口属性 你懂的 :) )
****************************************华丽的分割线*****************************************
PS: 对于ModifyStyle()函数老是修改不了控件风格的孩子伤不起啊 与上面无关 表示抱怨一下 囧
------解决方案--------------------
GetWindowLong(m_hWnd, GWL_STYLE) & WS_VSCROLL,如果为非0值,表示这个风格中有WS_VSCROLL属性;如果为0值,表示没有WS_VSCROLL风格。
这是获取普通窗口风格的,如果要查看EX风格,用GetWindowLong(m_hWnd, GWL_EXSTYLE)。
------解决方案--------------------
- C/C++ code
ModifyStyle(0, WS_VSCROLL);
------解决方案--------------------
The following styles can be specified wherever a window style is required. After the control has been created, these styles cannot be modified, except as noted. ,可以试下SetWindowLong.
------解决方案--------------------
窗口风格很是搞不懂,ModifyStyle 、ModifyStyleEx
SetWindowLong 什么时候该用哪个,都不清楚,好像也不一定成功!谁能解答一下