您的位置:首页 > 产品设计 > UI/UE

GUI剖析之 获取屏保控制窗口显示模式的实现(屏保应用)

2012-11-21 20:29 459 查看
获取屏保控制窗口显示模式的实现(屏保应用)
#include <scrnsave.h>
enum SCRMODE { SMNONE, SMCONFIG, SMPASSWORD, SMPREVIEW, SMSAVER };

//-----------------------------------------------------------------------------
SCRMODE GetScrMode(HWND &hWnd)

{

SCRMODE ScrMode = SMNONE;

hWnd = NULL;

TCHAR *pc = ::GetCommandLine();

if (*pc == _T('\"'))

{

pc++;

while (*pc != _T('\0') && *pc != _T('\"'))

pc++;

}

else

{

while (*pc != _T('\0') && *pc != _T(' '))

pc++;

}

if (*pc != _T('\0'))

pc++;

while (*pc == _T(' '))

pc++;

if (*pc == _T('\0'))

{

ScrMode = SMCONFIG;

hWnd = NULL;

}

else

{

if (*pc == _T('-') || *pc == _T('/'))

pc++;

if (*pc == _T('s') || *pc == _T('S'))

{

ScrMode = SMSAVER;

}

else

if (*pc == _T('p') || *pc == _T('P') ||

*pc == _T('l') || *pc == _T('L'))

{

pc++;

while (*pc == _T(' ') || *pc == _T(':'))

pc++;

ScrMode = SMPREVIEW;

hWnd = reinterpret_cast<HWND>(::_ttoi(pc));

}

else

if (*pc == _T('c') || *pc == _T('C'))

{

pc++;

while (*pc == _T(' ') || *pc == _T(':'))

pc++;

ScrMode = SMCONFIG;

hWnd = *pc == _T('\0')

? ::GetForegroundWindow()

: reinterpret_cast<HWND>(::_ttoi(pc));

}

else

if (*pc == _T('a') || *pc == _T('A'))

{

pc++;

while (*pc == _T(' ') || *pc == _T(':'))

pc++;

ScrMode = SMPASSWORD;

hWnd = reinterpret_cast<HWND>(::_ttoi(pc));

}

}

return ScrMode;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐