回 帖 发 新 帖 刷新版面

主题:请教高手:关于WS_EX_CLIENTEDGE改变窗体的奇怪现象!

菜鸟我用代码在Dialog上创建了一个编辑框子窗体
当调用this->m_edit.ModifyStyleEx(0,WS_EX_CLIENTEDGE)后
该编辑窗体没有出现3D效果
但如果调用m_edit.MoveWindow(...)或m_edit.SetWindowPos(...)后
该窗体的3D效果就出来了,这是怎么回事?能说说吗?
我试的别的窗体也是这样的情况,难道调用ModifyStyleEx(0,WS_EX_CLIENTEDGE)
一定用移动一下它才可以吗?

回复列表 (共4个回复)

沙发

ModifyStyleEx给他第三个参数(不要是0)

板凳

可能是因为ModifyStyleEx(0,WS_EX_CLIENTEDGE)之后,窗口并没有重绘,动一下它就重绘了,可以改变之后,UpdateWindow一下

3 楼

我试过ModifyStyleEx第三个参数不为0了,没用
也试过UpdateWindow,还有窗体重绘等等,都没有呀,只能是移动一下它,才有效果

4 楼

一定要移动它? 发一个WM_MOVE消息给它试试, MFC有时真是很怪

我来回复

您尚未登录,请登录后再回复。点此登录或注册