Win32api设置窗口全屏的方法
Win32api设置窗口全屏的方法
发布时间:2015-05-12 来源:查字典编辑
摘要:首先是考虑全屏处理的时机,是在创建窗口时还是显示窗口时进行,若是前者,则可以:BOOLInitInstance(HINSTANCEhInst...

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

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;

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新电脑常识学习
热门电脑常识学习
电脑子分类