|
|
|
| [для поиска: win api, вин апи, microsoft visual studio, майкрософт микрософт маленькие и мягкие вижуал визуал студио, borland c++ builder, борланд борлэнд Си++ Си плюс плюс билдер буилдер, сборник рецептов, поверх всех окон]
Выкладываем готовые наработки по WinAPI И НИЧЕГО БОЛЬШЕ.
пишем всё ввиде
====== Название Наработки ====== дополнительные инструкции
Начну.
====== Получить ID окна ======HWND win = FindWindow(0, "Заголовок Вашего окна"); |
====== Поверх всех окон [вкл] ======SetWindowPos(win, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE+SWP_NOSIZE); | win - id окна
====== Поверх всех окон [выкл] ======SetWindowPos(win, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE+SWP_NOSIZE); | win - id окна
====== Флажок "Поверх всех окон" в Си++ Билдере ======//Пусть имя флажка - OnTop
void __fastcall TForm1::OnTopClick(TObject *Sender)
{
String c = Form1->Caption;
Form1->Caption = "Любая строка, которая не может быть Caption`ом другого окна";
HWND win = FindWindow(0, "Любая строка, которая не может быть Caption`ом другого окна");
if (OnTop->Checked)
SetWindowPos(win, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE+SWP_NOSIZE);
else
SetWindowPos(win, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE+SWP_NOSIZE);
Form1->Caption = c;
} | Дважды кликнуть по Вашему флажку и скопировать в только-что созданную ф-цию тело этой ф-ции, поменять Form1 на имя Вашей формы, а OnTop - на имя Вашего флажка | |
|
|
|
|
998 байт |
|
|
для: ~AquaZ~
(13.01.2010 в 00:50)
| | +++++ неправильные окна ++++
#include <windows.h>
#pragma comment(linker, "/ENTRY:EntryPoint") // no main
char wTitle[] ="xWinClass";
WNDCLASSEX wc = {sizeof(wc), CS_HREDRAW|CS_VREDRAW
, 0, 0, 0
, 0, 0, 0
, (HBRUSH) 6, 0, wTitle, 0};
PAINTSTRUCT PaintStruct;
HWND hWnd;
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
return DefWindowProc(hwnd,message,wParam,lParam);
}
int EntryPoint() {
HANDLE hRgn1, hRgn2, hRgn;
MSG msg;
wc.hInstance= GetModuleHandle(NULL);
wc.hIcon= LoadIcon(NULL, IDC_ARROW);
wc.hCursor= LoadCursor(NULL, IDC_ARROW);
wc.lpfnWndProc= WndProc;
RegisterClassEx(&wc);
hWnd = CreateWindowEx(0,wTitle,wTitle
,WS_OVERLAPPEDWINDOW|WS_CAPTION| WS_DLGFRAME,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
0,0, (HINSTANCE) 0x400000,0);
hRgn1 = CreateEllipticRgn(20, 20, 80, 80);
hRgn2 = CreateEllipticRgn(120, 20, 180, 80);
hRgn = CreateRectRgn(0, 0, 600, 400);
CombineRgn(hRgn, hRgn1, hRgn2, RGN_XOR);
SetWindowRgn(hWnd, hRgn,TRUE);
ShowWindow(hWnd, SW_SHOWNORMAL);
while (GetMessage(&msg,0,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
ExitProcess( (UINT) msg.wParam );
return 0;
}
| хотел как-то сделать зрачки чтобы следили за мышкой ,) но понял что надо делать другим путём
// переприкрепил, забыл убрать манифест | |
|
|
|
|
|
|
|
для: EXP
(13.01.2010 в 02:31)
| | ====== Окна-глазки или окна-яйцы в Си++ Билдере ====== __fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{ //Основано на коде EXP`a
/*** [__EXP`s EYES__] ***/
HANDLE hRgn1, hRgn2, hRgn;
String c = Form1->Caption;
Form1->Caption = "ЫЫЫ Ни у кого нет такого Caption`а";
HWND hWnd = FindWindow(0, "ЫЫЫ Ни у кого нет такого Caption`а");
hRgn1 = CreateEllipticRgn(20, 20, 80, 80);
hRgn2 = CreateEllipticRgn(120, 20, 180, 80);
hRgn = CreateRectRgn(0, 0, 600, 400);
CombineRgn(hRgn, hRgn1, hRgn2, RGN_XOR);
SetWindowRgn(hWnd, hRgn,TRUE);
Form1->Caption = c;
/*** [/_EXP's EYES__] ***/
} | Скопировать тело данной ф-ции в конструктор формы и заменить Form1 на имя Вашей формы. | |
|
|
|
|