F.A.Q.
Принимаю ваши дополнения, все полезные будут включаться в "шапку". В заголовке сообщения указываем вопрос, в теле - ответ. Думаю все понятно.
Ну для начала, конечно, наш основной FAQ
Общие вопросы
- Как создать иконку в трее?
- Как получить путь своего (текущего) исполняемого файла?
GetModuleHandle(NULL); - Как узнать PID процесса, которому принадлежит определенное окно?
GetWindowThreadProcessID(HWND hWnd, LPDWORD lpdwProcessId); - Как по PID/хендлу процесса получить имя его исполняемого файла?
Окна (вопросы по работе с окнами)
- Как сделать, что бы окно перетаскивалось за любую его часть?
- Как сделать окно прозрачным?Код:SetWindowLong(hWnd, GWL_EX_STYLE,
GetWindowLong(hWnd, GWL_EX_STYLE) or WS_EX_LAYERED);
SetLayeredWindowAttributes(hWnd, 0, <прозрачность_1..255>, LWA_ALPHA);
Прозрачность:
0 - полностью прозрачно, клики проходят сквозь
1 - полностью прозрачно, клики проходят на окно
255 - не прозрачно
Примечание:
Работает только с Win2000. С этой функцией на предыдущих версиях программа не запустится. - Как удалить часть окна определенного цвета?
Как и выше, за исключением:Код:SetLayeredWindowAttributes(hWnd, <цвет>, 0, LWA_COLORKEY); - Как сделать не доступной кнопку закрытия окна?
SetClassLong(hWnd, GCL_STYLE, CS_NOCLOSE); - Как изменить системное меню окна?
hSysMenu = GetSystemMenu(hWnd, FALSE);, а дальше работаете с ним как с обычным.
Для сброса изменений - GetSystemMenu(hWnd, TRUE); - Как получить текст/заголовок окна?Код:CHAR szWText[160];
GetWindowText(hWnd, szWText, 160);
Кто-нибудь может мне объяснить, что такое WinAPI, с чем его едят и как программировать? Я только начинаю...
Это набор стандартных библиотек Windows. Позволяют использовать ВСЕ возможности Windows, работают быстрее по сравнению со другими библиотеками (такими, как MFC и VCL), хотя DirectX еще быстрее. :)
Поддерживаются, например, в Visual Basic, Delphi, C++ Builder, Visual C++, Watcom C++, MASM32, TASM. В принципе, любой нормальный компилятор для Windows имеет поддержку API.
Это зависит от языка и компилятора. В Delphi нужно подключить модуль Windows (обычно он уже подключен), в Visual Basic каждую API-функцию нужно объявлять (используй утилиту API Viewer), в C++ нужно подключить заголовочный файл windows.h, а в ассемблере - файл windows.inc. Кроме того, для мультимедиа-функций (например, PlaySound) нужно подключать модуль MMSystem в Delphi, заголовочный файл mmsystem.h в C++ и mmsystem.inc в ассемблере (и прилинковать winmm.lib). Все, теперь можно вызывать API-функции.
Полное описание API-функций на англ. языке есть в MSDN и справке к Delphi.
А вот хороший справочник по Windows API на русском:
Windows для профессионалов. Создание эффективных Win32-пpилoжeний с учетом специфики 64-разрядной версии Windows.
Автор: Джеффри Рихтер
Формат: pdf
Размер файла: 97.74 Мб
Если файл не качается, то попробуйте отсюда.
И еще пара ссылок:
1. Неполный перевод MSDN на русский.
2. Старый справочник по Windows API Тараса Сороки. Давно не обновляется.
Windows для профессионалов. Создание эффективных Win32-пpилoжeний с учетом специфики 64-разрядной версии Windows. (советую) и разумеется MSDN
Windows для профессионалов. Создание эффективных Win32-пpилoжeний с учетом специфики 64-разрядной версии Windows. (советую) и разумеется MSDN
Спасибо за совет.
Это действительно очень хорошая книга, начинаю ее потихоньку читать, про MSDN я вообще молчу, но я ищу чуть чуть другое! Я видел справочник по WinApi+Basic, к сожалению не помню автора, где мне очень понравилось - функции разделены по категориям + пример к каждой функции, причем функции на все случаи жизни, от создания интерфейса и до функции для работы с реестром, теперь жалею, что не купил. Вот собственно что то подобное и ищу. Может кто нить что то подскажет похоже.