在程序中如何控制任务栏,屏蔽它,使我的程序以满屏显示???
解决方案 »
- 求一些ADO全面的学习资料~~
- 纯API,怎么在建立窗口的时候设置客户区大小?
- 向外部程序的ListView控件发送LVM_GETITEMTEXT
- 内国外优秀的VC源码网站及论坛网址,朋友们推荐一些呢?
- 树控件第一个可视项是什么意思?
- 我使用字体对话框,GetLogFont(&logfont),logfont.lfHeight为负,如何转化为毫米?!
- [VC新手系列] 关于 图标 与 标题栏
- 关于HDC的一个小问题,望各位指点
- 线程问题!·
- 有没有哪位成功人室谈谈ndis的学习方法ddk,把我的的头看大了
- 关于系统修改的小问题,请问如何更改windows的分辨率呢?
- 为什么要写class CMainFrame;?
用SetWindowLong()使窗口永远保持在最前面
然后用SystemParametersInfo()禁止系统键,然后又用它来启动屏保
=================================================================
禁止用户切换任务假定我们要设计一个Windows95的口令程序,该程序运行时需要覆盖整个桌面,并且不允许用户用Alt+Esc、Ctrl+Esc等系统组合键来切换到其他程序。为达到此目的,可按以下步骤:将Form的FormStyle属性设为fsStayOnTop;将Form的WindowState属性设为wsMaximized;在Form的OnCreate事件处理过程中为Windows发送一个屏幕保护程序正在运行的消息;当程序结束时清除屏幕保护程序运行标志。
示例代码:procedure TForm1.FormCreate(Sender: TObject);vartemp: Integer;beginSystemParametersInfo(SPI_SCREENSAVERRUNNING1@temp0);end;
procedure Form1.OnClose(Sender: TObject; var Action: TCloseAction);vartemp: Integer;beginSystemParametersInfo(SPI_SCREENSAVERRUNNING0@temp0);end;
关于任务栏窗口的窗口类名称我忘了,你可以用SPY++来找到。
用FindWindow("Shell_TrayWnd")试试。
关于上述函数的参数,看看MSDN吧!
然后再用ShowWindow就行了
用FindWindow("Shell_TrayWnd")得到任务栏窗口的句柄。
之后,用ShowWindow()即可显示或隐藏。
hTaskBar=::FindWindow("Shell_TrayWnd",NULL);
::ShowWindow(hTaskBar,SW_HIDE);
::AfxGetMainWnd()->SendMessage(WM_SYSCOMMAND,SC_MAXIMIZE,0);
::ShowWindow(hTaskBar,SW_SHOW);我试了一下,但是Taskbar确实隐藏了,但窗口仍不会全屏.再研究研究
hTaskBar=::FindWindow("Shell_TrayWnd",NULL);
::ShowWindow(hTaskBar,SW_HIDE);
AfxGetMainWnd()->MoveWindow(0,0,::GetSystemMetrics SM_CXSCREEN),::GetSystemMetrics(SM_CYSCREEN),TRUE);
//::ShowWindow(hTaskBar,SW_SHOW);
hTaskBar=::FindWindow("Shell_TrayWnd",NULL);
::ShowWindow(hTaskBar,SW_HIDE);
AfxGetMainWnd()->MoveWindow(0,0,::GetSystemMetrics(SM_CXSCREEN),::GetSystemMetrics(SM_CYSCREEN),TRUE);
//::ShowWindow(hTaskBar,SW_SHOW);搞定
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
// if( !CFrameWnd::PreCreateWindow(cs) )
// return FALSE;
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
cs.x = 0;
cs.y = 0;
cs.cx = GetSystemMetrics(SM_CXSCREEN);
cs.cy = GetSystemMetrics(SM_CYSCREEN); return CFrameWnd::PreCreateWindow(cs);
}
hTaskBar=::FindWindow("Shell_TrayWnd",NULL);
::ShowWindow(hTaskBar,SW_SHOW); 这种方法好象不行。不知道是这种方法不行,还是我的窗口类参数不对?