您当前的位置: 首页 > 电脑基础知识 > 电脑基本常识 浏览
Win32api设置窗口全屏的方法
发布时间:2016-06-28    点击率:次    来源:www.sytcke.com    作者:电脑技术学习网

   首先是考虑全屏处理的时机,是在创建窗口时还是显示窗口时进行,若是前者,则可以:

  BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)

  {

  HWND hWnd;

  hInst = hInstance; // 将实例句柄存储在全局变量中

  UINT width = GetSystemMetrics(SM_CXSCREEN);

  UINT height = GetSystemMetrics(SM_CYSCREEN);

  //创建窗口

  hWnd=CreateWindow(

  szWindowClass,

  szTitle,

  WS_POPUP,

  0,0,

  width,height,

  NULL,NULL,

  hInstance,

  NULL);

  if (!hWnd)

  {

  return FALSE;

  }

  ShowWindow(hWnd, nCmdShow);

  UpdateWindow(hWnd);

  return TRUE;

  }

  若是在显示窗口时进行处理:

  BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)

  {

  HWND hWnd;

  hInst = hInstance; // 将实例句柄存储在全局变量中

  hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,

  CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

  if (!hWnd)

  {

  return FALSE;

  }

  HWND hDesk;

  RECT rc;

  hDesk = GetDesktopWindow();

  GetWindowRect( hDesk, &rc );

  SetWindowLong( hWnd, GWL_STYLE, WS_BORDER );

  SetWindowPos( hWnd, HWND_TOPMOST, 0, 0, rc.right, rc.bottom, SWP_SHOWWINDOW);

  ShowWindow(hWnd, nCmdShow);

  UpdateWindow(hWnd);

  return TRUE;

  }

  也可以让用户控制全屏的时机,比如按下”ESC“键后进入全屏

  BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)

  {

  HWND hWnd;

  hInst = hInstance; // 将实例句柄存储在全局变量中

  hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,

  CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

  if (!hWnd)

  {

  return FALSE;

  }

  ShowWindow(hWnd, nCmdShow);

  UpdateWindow(hWnd)

  return TRUE;

  }

  在窗口处理函数中对ESC键进行处理:

  switch (message)

  {

  case WM_KEYDOWN:

  switch(wParam)

  {

  case VK_ESCAPE:

  {

  HWND hDesk;

  RECT rc;

  hDesk = GetDesktopWindow();

  GetWindowRect( hDesk, &rc );

  SetWindowLong( hWnd, GWL_STYLE, WS_BORDER );

  SetWindowPos( hWnd, HWND_TOPMOST, 0, 0, rc.right, rc.bottom, SWP_SHOWWINDOW);

  }

  break;

  }

  return 0;

  }

来源 电脑技术网 www.sytcke.com
发表留言
发表留言请先登录!
免责声明:本站发布的信息和评论纯属网民个人行为,并不代表本站立场,如发现有违法信息或侵权行为,请直接与本站管理员联系,我们将在收到您的信息后24小时内作出处理!