MFC对话框如何运行后隐藏起来

一般初学者会简单的认为在初始化对话框中ShowWindow(SW_HIDE);不就可以了吗?但其实那样是不行的,因为MFC中对话框的初始化显示其实很复杂,并不像SDK中的ShowWindow那么简单。下面介绍几种方法来达到运行后立刻隐藏。

1.使用MoveWindow

    //在初始化对话框中使用
    MoveWindow(0, 0, 0, 0);
  • 1
  • 2
  • 1
  • 2

注意:这个把对话框变没了,所以你点击任务栏程序图标的时候是不会有对话框出来的.

2.使用定时器

    //在初始化对话框中使用
    SetTimer(0, 1, NULL);//运行后1ms就隐藏,连任务栏上的 图标都没有了

......
    //在定时器函数中写如下代码
    ShowWindow(SW_HIDE);
    KillTimer(0);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3.WINDOWPLACEMENT 窗口状态声明结构体

    //在初始化对话框中写如下代码
    WINDOWPLACEMENT wpf = { 0 };
    wpf.length = sizeof(WINDOWPLACEMENT);//这个必须要写,否则SetWindowPlacement会失败
    wpf.showCmd = SW_HIDE;//窗口状态为隐藏
    SetWindowPlacement(&wpf);//设置窗口状态
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5
转自http://blog.csdn.net/qq_18297675/article/details/51409905

一般初学者会简单的认为在初始化对话框中ShowWindow(SW_HIDE);不就可以了吗?但其实那样是不行的,因为MFC中对话框的初始化显示其实很复杂,并不像SDK中的ShowWindow那么简单。下面介绍几种方法来达到运行后立刻隐藏。

1.使用MoveWindow

    //在初始化对话框中使用
    MoveWindow(0, 0, 0, 0);
  • 1
  • 2
  • 1
  • 2

注意:这个把对话框变没了,所以你点击任务栏程序图标的时候是不会有对话框出来的.

2.使用定时器

    //在初始化对话框中使用
    SetTimer(0, 1, NULL);//运行后1ms就隐藏,连任务栏上的 图标都没有了

......
    //在定时器函数中写如下代码
    ShowWindow(SW_HIDE);
    KillTimer(0);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3.WINDOWPLACEMENT 窗口状态声明结构体

    //在初始化对话框中写如下代码
    WINDOWPLACEMENT wpf = { 0 };
    wpf.length = sizeof(WINDOWPLACEMENT);//这个必须要写,否则SetWindowPlacement会失败
    wpf.showCmd = SW_HIDE;//窗口状态为隐藏
    SetWindowPlacement(&wpf);//设置窗口状态
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

猜你喜欢

转载自blog.csdn.net/lv0918_qian/article/details/74452191