将窗口设为TOPMOST的问题

wjp7727 2005-03-24 01:09:45
我写了一个窗口,想将窗口设为总在最前端显示,调用API函数
m_hMainWnd = CFrameWnd::m_hWnd;
::SetWindowPos(m_hMainWnd, HWND_TOPMOST,
0, 0, (int)(m_cxChar * 43.7), (int)(m_cyChar * 14.5),
SWP_NOZORDER | SWP_NOMOVE | SWP_NOREDRAW);
不知道怎么不行,还各位指教.
...全文
489 点赞 收藏 11
写回复
11 条回复
4inSky 2005年03月24日
完了,捞不到分了
回复 点赞
poooorgun 2005年03月24日
::SetWindoPos(m_hMainWnd,HWND_TOPMOST,-1,-1,-1,-1,SWP_NOMOVE|SWP_NOSIZE);
设置了这两个标志后,第3,4,5,6个参数没用
回复 点赞
pomelowu 2005年03月24日
:)
回复 点赞
pomelowu 2005年03月24日
SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);

这样应该不会改变形状和大小的啊
回复 点赞
wjp7727 2005年03月24日
刚才没有看到楼上一位说用SWP_NOSIZE
不好意思,可以结贴了,谢谢各位的帮助!
回复 点赞
wjp7727 2005年03月24日
多谢楼上的几位哥哥,可是我设置成功后窗口的形状变了,比原来的缩小了一点,不知道怎么解决?
回复 点赞
wjp7727 2005年03月24日
谢谢楼上两位
回复 点赞
pomelowu 2005年03月24日
m_hWnd是静态的吗?CFrameWnd::m_hWnd能用吗?

在MFC下可以这样用:
CMainFrame->SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOSIZE);
回复 点赞
mintwlf 2005年03月24日
还差一个标志,SWP_SHOWWINDOW
回复 点赞
iamknight 2005年03月24日
去掉这两个标志
SWP_NOZORDER | SWP_NOREDRAW
回复 点赞
pomelowu 2005年03月24日
SWP_NOZORDER 去掉
回复 点赞
发动态
发帖子
VC/MFC
创建于2007-09-28

7889

社区成员

42.1w+

社区内容

VC/MFC相关问题讨论
社区公告
暂无公告