向高手们请教一下,想做个像关闭计算机时,只有一个关闭计算机的窗口是活动的,其他的都灰了并且不能操作,关键是不能操作,如何在VC里实现这样的功能。谢谢!

解决方案 »

  1.   

    typedef int(CALLBACK *SHUTDOWNDLG)(INT);
    网上找的,没有实践过void YOURDLG::OnOk()
    {
      HINSTANCE hInst =LoadLibrary("shell32");
      SHUTDOWNDLG SHShutDownDlg;
      if(hInst!=0)
      {
      // 获得线索关机对话框函数的地址并调用
      SHShutDownDlg=(SHUTDOWNDLG)GetProcAddress(hInst,(LPSTR)60 );
      (*SHShutDownDlg)(0);
      FreeLibrary(hInst);
      }
    }
      

  2.   

    你查一下屏保代码,用它的方法就可以了.
    这类要求得调用系统API来实现,参考:
    http://tech.ddvip.com/2008-12/1229329271100117.html
    或者做一个一直在顶端的全屏幕窗体就可以了
      

  3.   


    实现屏保效果和LZ的原意不太符合吧,全屏窗体也不实际啊楼主你或者看一下QDialog,好像这个类可以实现你要的效果。具体的不清楚了,关注
      

  4.   

    这个事情我做过,楼主可以这样做
    1. 安装Keyboard Hook和mouse Hook,屏蔽其他窗口的键盘和鼠标
    2. 安装Low Level Keyboard Hook,屏蔽Win、Atl+Tab之类的键
    3. 如果要屏蔽Ctrl+Alt+Del的话,需要注入Winlogon.exe找到它的SAS Window窗口,屏蔽这个窗口的WM_HOTKEY消息ps:如果要求不高的话,也可以EnumWindow,然后EnableWindow(FALSE)。