对话框初始位置的问题
想改变对话框的初始位置在oncreate里用setwindowpos没作用在onshowwindow里可以为什么呢?哪位给小弟讲讲这两个事件之间都发生了什么事? 问题点数:60、回复次数:10Top
1 楼DeadWolf(三角小眼睛又邪又媚又笨又呆又奸又诈又色)回复于 2001-11-29 12:18:58 得分 20
oncreate是窗口实际上还没有创建
setwindowpos没意义
onshowwindow已经创建开始显示了 所以可以了
Top
2 楼ydogg(灰毛兔频频)回复于 2001-11-29 12:21:09 得分 20
最好在InitDialog中Top
3 楼shupianbird(birdsun)回复于 2001-11-29 12:21:50 得分 0
如果我只想设置初始位置,不是每次显示都重设位置的话怎么办呢?Top
4 楼shupianbird(birdsun)回复于 2001-11-29 12:28:10 得分 0
to ydogg(灰毛兔频频)
在OnInitdDialog里好像也不行,
对话框存储自己的初始位置吗?在什么地方?Top
5 楼kimryo(God is on my side)回复于 2001-11-29 12:31:30 得分 20
Message Map:
ON_WM_WINDOWPOSCHANGING()
Func:
OnWindowPosChanging(WINDOWPOS FAR* lpWndPos)
if lpWndPos->x and ipWndPos->y is equal to -1,that indicate the window started.
Top
6 楼ydogg(灰毛兔频频)回复于 2001-11-29 12:37:50 得分 0
InitDialog中
SetWindowPos(&wndTop,10,10,0,0,SWP_NOSIZE);
Top
7 楼shupianbird(birdsun)回复于 2001-11-29 13:54:55 得分 0
to ydogg(灰毛兔频频)
多谢,找到问题了我SetWindowPos(NULL,0,0,0,0,SWP_NOSIZE);
不可以,改成SetWindowPos(NULL,1,0,0,0,SWP_NOSIZE);或SetWindowPos(NULL,0,1,0,0,SWP_NOSIZE);都行,左上角的坐标到底应该是多少?
to kimryo(immortal code)
我在OnWindowPosChanging(WINDOWPOS FAR* lpWndPos)
里加了一条TRACE语句结果发现输出三组lpWndPos->x and ipWndPos->y第一组是对话框出现时的初始位置,后两组是0,为什么呢?
Top
8 楼shupianbird(birdsun)回复于 2001-11-29 14:16:30 得分 0
知道了,结账!
Top
9 楼sinet_emperor(皇帝)回复于 2001-11-29 14:20:14 得分 0
定义存放对话框的指针,在InitDialog中,用这个指针调用movewindow()或setwindowpos()Top
10 楼vjeymyf(vjeymyf)回复于 2001-11-29 14:21:21 得分 0
你在资源里改不行吗
对话框资源里面有改置的呀Top




