万分着急,高手帮忙,如何实现。。。 如何使MDI创建的第一个子窗口为特殊cs样式窗口,并且保持一直在最前面,不能被后来建立的子窗口覆盖,也就是模拟一个popup对话框的效果,能实现吗?可以给足100分,只要能解决。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 能实现啊:SetWindowPos(wndTopMost,x,y,cx,cy,SWP_SHOWWINDOW);其中 x :窗口左上角的横坐标y:窗口左上角的纵坐标cx:窗口的宽度cy:窗口的高度 一楼,人家说的是多文档的第一个子文档!?楼主,我没有研究有没有这样的参数或者直接的方法,但我用定时器的方法实现了,步骤是这样:一.在MainFrm.cpp中,在开头定义(所有的inlcude之后)一个全局变量:CWnd *pwnd=NULL;二.在MainFrm.cpp的OnCreate(...)中新建一个定时器: SetTimer(1,10,0);三.重载WM_TIMER消息, 在OnTimer(..)中加入如下: if(pwnd) pwnd->BringWindowToTop();//把该窗口置前四.在ChileFrm.cpp中开头加入:#include "MainFrm.h"然后声明:extern CWnd *pwnd; //打算使用MainFrm中的全局变量然后再声明一个本CPP中的全局变量:bool first=1; //即只针对第一个创建的子窗口五. Ctrl+W打开类向导(在ChildFrm类中),为ChildFrm重载OnCreateClientBOOL CChildFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) { if(first) { first=0; pwnd=this; } return CMDIChildWnd::OnCreateClient(lpcs, pContext);}总的思路就是取的第一个创建的子窗口的句柄,然后在定时器中一直将它置前.我测试过了,效果不错,如果楼主觉得满意就给分吧 zhucde(【風間苍月】★MVP★www.bezier.com.cn/bbs★虚拟) ( ):不管用,当新建一个后,新建的就在前面。 试了,可以置前,不过1、闪烁;2、好像必须加在onCreate(),我得程序有好几时间设成变量,就不行;3、并不能控制第一个窗口始终在最前,因为新建子窗口后,定时器有时反应滞后,把刚点击的那个窗口作为最前窗口了。所以不能用呀。 奇怪:访问对话框对象的公共变量时出错 新弹出窗口后,怎么才能,新弹出的窗口左上角ICO图标,要和主窗口的ICO图标一样呢? CView 刷新 疑难问题?求救! 关于卸载? 网页设置我的mfc activex控件失败,help VC .NET中的向导不行了!!!!????? 在线等候!请问CScrollView的滚动范围是多大? 各位高手请帮忙,怎样修改已定义好的快捷键呢? 请问哪里有象示波器那种界面的源码下载? 消息问题 请教:图片画成这个样子是什么原因?
其中
x :窗口左上角的横坐标
y:窗口左上角的纵坐标
cx:窗口的宽度
cy:窗口的高度
二.在MainFrm.cpp的OnCreate(...)中新建一个定时器:
SetTimer(1,10,0);三.重载WM_TIMER消息, 在OnTimer(..)中加入如下:
if(pwnd)
pwnd->BringWindowToTop();//把该窗口置前四.在ChileFrm.cpp中开头加入:
#include "MainFrm.h"然后声明:extern CWnd *pwnd; //打算使用MainFrm中的全局变量
然后再声明一个本CPP中的全局变量:bool first=1; //即只针对第一个创建的子窗口五. Ctrl+W打开类向导(在ChildFrm类中),为ChildFrm重载OnCreateClient
BOOL CChildFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{ if(first)
{
first=0;
pwnd=this;
}
return CMDIChildWnd::OnCreateClient(lpcs, pContext);
}总的思路就是取的第一个创建的子窗口的句柄,然后在定时器中一直将它置前.我测试过了,效果不错,如果楼主觉得满意就给分吧