忘说了,操作系统是winxp sp2,vc6.0开发环境
windows2000上测试过,没有这个问题。
windows2000上测试过,没有这个问题。
解决方案 »
- XP风格的Check Box控件的背景问题!
- VC++6.0和Visual studio 2005带的VC++有什么区别,初学者用哪个更好啊?
- ~~~~~~~~~~~~~~~~~~~~~~~~如何在我的程序中调用资源管理器的右键菜单?~~~~~~~~~~~~~~~~~~~~~~~~~~~
- 如何得到记录集内某一行内元素的实际大小, 比如得到该行存储的image字段图片的实际大小.
- 求教用CFileDialog打开一个二进制文件后如何将其读入以便进行其他操作?给分的
- 在广州的朋友,请留下QQ,有项目可以互相合作呀
- 谁有COM技术内幕的源码阿,或者下载网址,急用,e-mail:[email protected]
- 我用CFtpConnection的GetFile方法下载一个文件,遇到了一个很奇怪的问题?
- UpDown控件的SetBuddyControl方法到底怎么用?
- 快看啦!!!如何在Win98下同时实现两个高度实时的线程?
- CString安全转换string
- 有用Xtreme ToolkitPro v11.2.1的吗?我遇到一个奇怪问题,来看看
没有设置成顶级窗口,这是某些功能的需要。Re磨刀霍霍向猪羊
那么为什么正好把窗口大小设置成和屏幕一样大的时候,就不会被任务栏覆盖呢?
有什么解决办法呢?多谢两位回贴!
在不改变任务栏的前提下,也只有修改你的程序啦。
由于某些要求,程序是不能设置成topmost的
问题是正好把窗口大小设置成和屏幕一样大并且没有移动过的时候,就不会被任务栏覆盖。
这说明即使不设置成topmost,也可以实现前端显示!
这是为什么呢?
CYourDlg::OnNcHitTest(CPoint point)
{
// TODO: Add your message handler code here and/or call default return 0;
}
多谢回帖。
对不起,窗口不可以设置成拖动无效。
我的问题是为什么拖动之后,就被任务栏覆盖了,没有拖动就不能被覆盖。
HWND hWndTray = ::FindWindow(_T("Shell_TrayWnd"), NULL);
if(hWndTray != NULL)
{
::ShowWindow(hWndTray, SW_HIDE);
}
switch (uMsg)
{
.............................
case WM_GETMINMAXINFO:
{
MINMAXINFO* lpMMI= (MINMAXINFO*)lParam;
CRect rc( 0, 0, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN) ); //获得屏幕大小
rc.InflateRect( 10, 50 ); // 让你区域比这个屏幕区域大一些
lpMMI->ptMaxSize = CPoint(rc.Size());
lpMMI->ptMaxTrackSize = CPoint(rc.Size()); return 0;
}
break;
............................
}
是不是窗口移动的时候更改了窗口的显示风格?可能是你或者系统默认更改了这个设置,可以SetWindowPos试试,也可以ModifyStyle(0,WS_EX_TOPMOST)试试
解决方法就只有隐藏任务栏或是把你的窗口设置成TopMost, 想让非TopMost的窗口覆盖在TopMost窗口的上面本身就是违反Window的窗口规则的。QQ截屏实际上也是覆盖了一个TopMost的透明窗口在上面。
我并没有激活任务栏,只是移动了一下窗口。为什么任务栏就变成topmost了呢?
我不能要求客户用我的软件还必须改变电脑设置啊!Re:alunlee
没有为什么,客户要求,咱就得照办!
ShowWindow(SW_MAXIMIZE);//使窗口全屏显示在前面(可跟别的窗口切换)
不过用SetWindowPos()设置窗口时最好用全屏的宽高设置,要不可不怎么好看借贴的这位大侠是不是:
SetWindowPos(&wndTopMost,0,0,0,0,SWP_NOMOVE | SWP_NOSIZE);中第一个参数是&wndTopMost
这样你的窗口级别跟任务栏一个级别(最高)了,就总是显示在最前面,别的窗口会被被覆盖。--希望能对现在遇到同样问题的伙伴们有所帮助