Светомузыка над кнопкой Пуск
Над кнопкой Пуск можно издеваться достаточно долго. Еще одна шутка, которую можно сделать с этой кнопкой, — спрятать ее.
Для следующей задачи вы можете создать новое приложение или воспользоваться кодом из предыдущего примера, немного подкорректировав функцию _tWinMain как в листинге 2.5.
Листинг 2.5. Обновленная функция _tWinMain |
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
MSG msg;
HACCEL hAccelTable;
// Initialize global strings
LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
LoadString(hInstance, IDC_CRAZYSTART, szWindowClass, MAX_LOADSTRING);
MyRegisterClass(hInstance);
// Perform application initialization:
if (!InitInstance (hInstance, nCmdShow))
{
return FALSE;
}
hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_CRAZYSTART);
// Main message loop:
HWND hTaskBar, hButton;
hTaskBar= FindWindow("Shell_TrayWnd",NULL);
hButton= FindWindowEx(hTaskBar, 0,"Button", NULL);
while (GetMessage(&msg, NULL, 0, 0))
{
if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
// Спрятать кнопку "Пуск"
ShowWindow(hButton, SW_HIDE);
// Насладимся эрелищем 2 секунды
Sleep(50);
// Показать кнопку "Пуск"
ShowWindow(hButton, SW_SHOW);
Sleep(50);
}
return (int) msg.wParam;
}
- окно, на котором нужно искать элемент управления, — благодаря этому параметру мы можем искать кнопку внутри окна;
- элемент управления на этом окне, с которого нужно начинать поиск, — если здесь указать 0, то поиск будет начинаться с самого первого элемента управления;
- класс элемента управления — в нашем случае это кнопка, значит, нужно
- указать Button;
- имя — если указать нуль (NULL), т o будет происходить поиск всех элементов подобного класса.