写程序的时候突然发现MFC的窗口置顶在初始化时不能实现,在按钮响应函数里却可以,请高手赐教!

[复制链接]
查看11 | 回复3 | 2011-1-20 14:31:24 | 显示全部楼层 |阅读模式
再补充一句,SetWindowPos在MFC Dialog的初始化函数中前一天写上去不行,结果第二天重新开机之后原样的代码就可以实现,求解释~~

回复

使用道具 举报

千问 | 2011-1-20 14:31:24 | 显示全部楼层
你在哪个初始化函数里置顶的?要等窗口初始化完成,窗口完全绘出来后置顶才能成功,你在初始化过程中置顶,当然不能成功,这个时候窗口还没完全生成,你在按钮里置顶肯定可以成功,这个时候窗口已经完全生成
回复

使用道具 举报

千问 | 2011-1-20 14:31:24 | 显示全部楼层
可能当时visual c++没有检测到你这段代码,因为现在都是动态编译,这也是vc的老bug了,vs2010也是这样
回复

使用道具 举报

千问 | 2011-1-20 14:31:24 | 显示全部楼层
在对跨框类OnInitDialog里写SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOREPOSITION|SWP_NOSIZE);CenterWindow();就行了。不要居中的话,第二行可以不要。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行