高分放送小问题
我重载了CEdit类,对CEdit进行自绘,不过属性由外面属性编辑器来控制,现在我想知道属性编辑器里的Border属性是不是TRUE,怎么才能得到? 问题点数:100、回复次数:7Top
1 楼xundeng(寻灯)回复于 2005-06-20 18:58:47 得分 30
DWORD DStyle = GetExStyle( );
if( DStyle&WS_BORDER == WS_BORDER ) 设置了上 Border属性。
else 没有设置BorderTop
2 楼rain1321(雨)回复于 2005-06-20 20:14:59 得分 0
To:xundeng(寻灯)
这个我试过了,还有GetStyle( ),我也是这么与的,在OnPaint()和PreSubclassWindow()里都试过了,不行啊
DWORD dwEditStyle;
dwEditStyle = GetExStyle ();
if( dwEditStyle & WS_BORDER == WS_BORDER )
mbBorder = TRUE;
else
mbBorder = FALSE;Top
3 楼artmouse(艺术老鼠)回复于 2005-06-20 20:23:10 得分 30
理论上这不应该有错,你调试一下看看dwEditStyle的值是什么Top
4 楼zengwujun(月之海 为linux入门奋斗100天)回复于 2005-06-20 21:04:09 得分 30
DWORD style = GetWindowLong(m_edit,GWL_STYLE);
if( style & WS_BORDER == WS_BORDER )
mbBorder = TRUE;
else
mbBorder = FALSE;
Top
5 楼rain1321(雨)回复于 2005-06-20 21:15:57 得分 0
解决了,谢谢各位哥哥,GetExStyle ()得到的值是一个组合值,只用dwEditStyle & WS_BORDERTop
6 楼rain1321(雨)回复于 2005-06-20 21:27:28 得分 0
得到的结果是个组合值,所以有问题,哪为哥哥能告诉我都是哪些值组合起来的呢?Top
7 楼vcmute(BCare4 H1Rest Good9!)回复于 2005-06-21 09:04:33 得分 10
/*
* Window Styles
*/
#define WS_OVERLAPPED 0x00000000L
#define WS_POPUP 0x80000000L
#define WS_CHILD 0x40000000L
#define WS_MINIMIZE 0x20000000L
#define WS_VISIBLE 0x10000000L
#define WS_DISABLED 0x08000000L
#define WS_CLIPSIBLINGS 0x04000000L
#define WS_CLIPCHILDREN 0x02000000L
#define WS_MAXIMIZE 0x01000000L
#define WS_CAPTION 0x00C00000L /* WS_BORDER | WS_DLGFRAME */
#define WS_BORDER 0x00800000L
#define WS_DLGFRAME 0x00400000L
#define WS_VSCROLL 0x00200000L
#define WS_HSCROLL 0x00100000L
#define WS_SYSMENU 0x00080000L
#define WS_THICKFRAME 0x00040000L
#define WS_GROUP 0x00020000L
#define WS_TABSTOP 0x00010000LTop




