C++MFC运行的程序不在任务管理器的应用程序显示但是在进程中显示

您所在的位置:网站首页 如何禁止任务管理器中的程序运行 C++MFC运行的程序不在任务管理器的应用程序显示但是在进程中显示

C++MFC运行的程序不在任务管理器的应用程序显示但是在进程中显示

2024-07-11 10:39| 来源: 网络整理| 查看: 265

1.需求目标描述:C++MFC运行的程序不在任务管理器的应用程序显示但是在进程中显示

 

2.解决方案:

 

(1)MFC中的窗体显示格式编辑函数格式ModifyStyleEx

 //隐藏对话框  ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW);  WINDOWPLACEMENT  wp; //显示隐藏  wp.length=sizeof(WINDOWPLACEMENT);  wp.flags=WPF_RESTORETOMAXIMIZED;  wp.showCmd=SW_HIDE;  SetWindowPlacement(&wp);

 

这个方法的话可以修改窗口的显示方式,但是没有实现需求目标

 

下面的文档来自百度百科:

 

  CWnd::ModifyStyle

  1.作用:

  调用这个函数修改窗口的风格

  2.函数原型:

  BOOL ModifyStyle

  (

  DWORD dwRemove,

  DWORD dwAdd,

  UINT nFlags=0

  );

  3.参数含义:

  dwRemove 指定修改时要删除的窗风格。

  dwAdd 指定修改时将要增加的窗口风格。

  nFlags 该参数将被传给SetWindowPos,否则为0,如果SetWindowPos不被调用的话,一般该参数默认值

  4.返回值:

  如果该函数成功调用返回一个非0值,否则返回0;

  5.备注

  如果nFlags不为0, ModifyStyle将调用Windows API 函数SetWindowPos并且结合nFlags和以下四个预先布置好的标志重画该窗口。

  SWP_NOSIZE 保持当前大小。

  SWP_NOMOVE 保持当前位置.。

  SWP_NOZORDER 保持当前的Z次序。

  SWP_NOACTIVATE 不激活该窗口。

  6.用法:

  1、修改控件的原有属性用 ModifyStyle(1,WS_DISABLED);(实际测试时只要是>=0的整形数就行)

  2、改回来的话要用ModifyStyle(WS_DISABLED,1);(实际测试时只要是>=0的整形数就行)

  如果把参数想像成布尔值的话就使用1这个整形数,要除去第控件的属性就让第一个参数dwRemove为真,修改回来就让第二个参数dwAdd为真.

  7.参考代码:

  void CMyView::OnInitialUpdate()

  {

  CView::OnInitialUpdate();

  ModifyStyle(0, WS_CLIPCHILDREN);

  }

  ………………………………………………………………………………………………………………………………

  C++中一些实例

  SetWindowText("abc"); //设置 窗口标题栏 abc

  ModifyStyle(WS_CAPTION,0,0); //去除标题栏

  ModifyStyle(0,WS_THICKFRAME,0); //添加 WS_THICKFRAME风格

  ModifyStyle(0,WS_EX_TOOLWINDOW,0); //设置工具栏窗口风格

  ModifyStyleEx(0,WS_EX_ACCEPTFILES,0); //设置Accept files 属性

  也就说,要添加或除去窗口的普通风格,可以使用ModifyStyle 方法来实现

  设置或去除窗口的扩展风格,可以使用 ModifyStyleEx 方法。C++中注意大小写。

  以上实例摘自 2011版的 羊皮卷系列之 学通 Visual C++的24堂课。

 

(2)ShowWindow(SW_HIDE)

调用方法:

 

void Cdvr_process_cosonDlg::OnNcPaint() {  // TODO: 在此处添加消息处理程序代码  // 不为绘图消息调用 CDialog::OnNcPaint()  static bool hideWnd = false;

 if(!hideWnd)  {   hideWnd = true;   ShowWindow(SW_HIDE);  }  else  {   CDialog::OnNcPaint();  } }

要在BEGIN_MESSAGE_MAP中添加ON_WM_NCPAINT()这个消息宏,同时窗口的visible属性要置为false。这个方法完成需求目标

 

注:我在网上搜素了很多资料,但是都不如意,如果哪位有更好的方法,期待分享



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3