Терезені жартылай мөлдір етіп қалай жасауға болады

Мазмұны:

Терезені жартылай мөлдір етіп қалай жасауға болады
Терезені жартылай мөлдір етіп қалай жасауға болады

Бейне: Терезені жартылай мөлдір етіп қалай жасауға болады

Бейне: Терезені жартылай мөлдір етіп қалай жасауға болады
Бейне: Пластикалық терезелерде беткейлерді қалай жасауға болады 2024, Сәуір
Anonim

Графикалық дисплей технологияларын жетілдіре отырып, операциялық жүйелердің API де жақсарып, бағдарламашыларға стандартты емес интерфейс элементтерін дамытуға көбірек мүмкіндіктер берді. Сонымен, Windows 2000 операциялық жүйесінің жаңашылдықтарының бірі бөліктері мөлдір болуы мүмкін қабатты терезелер болды. Көп ұзамай MSDN-де қабатты терезелермен жұмыс істеуге арналған API сипаттамасы қол жетімді болды. Алайда, бағдарламашылар форумында терезені жартылай мөлдір етіп жасау туралы сұрақтар әлі де қойылып келеді.

Терезені жартылай мөлдір етіп қалай жасауға болады
Терезені жартылай мөлдір етіп қалай жасауға болады

Қажетті

  • - құрастырушы;
  • - Windows sdk немесе Windows бағдарламалауға арналған рамка.

Нұсқаулық

1-қадам

Жартылай мөлдір етіп жасағыңыз келетін терезенің тұтқасын алыңыз. Терезені табыңыз немесе жасаңыз. Оны құру үшін CreateWindow, CreateWindowEx API функцияларын немесе қолданылған фрейм кластарына жататын осы функциялардың айналасындағы орау әдістерін қолданыңыз. CreateWindow функциясының прототипі келесідей:

HWND CreateWindow (LPCTSTR lpClassName, LPCTSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nБой,

HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam);

Көріп отырғаныңыздай, функция орындалу нәтижесінде құрылған терезенің дескрипторын қайтарады. Егер қандай-да бір ораушы сынып қолданылса, оның терезесін сәйкес терезеге сәйкес объектіде қолданыңыз.

2-қадам

Терезені табу API-ді FindWindow, FindWindowEx, EnumWindows, EnumChildWindows, EnumThreadWindows және олардың тіркесімдері арқылы жасауға болады. WindowFromPoint және ChildWindowFromPoint функцияларын қолдана отырып, белгілі бір аймақ ішіндегі терезенің сабын алуға болады.

3-қадам

Терезені кеңейтілген стильге қойыңыз WS_EX_LAYERED. SetWindowLong API немесе объектілердің орағышының сәйкес әдістерін қолданыңыз. SetWindowLong функциясы өзгертілетін терезе параметрлері туралы ақпаратты толығымен ауыстырады, сондықтан оны стиль жалауларының жиынтығы үшін алдыңғы мәнді алу үшін оны GetWindowLong функциясымен бірге қолданыңыз. Мысалы, стильді келесідей өзгертуге болады:

:: SetWindowLong (hWnd, GWL_EXSTYLE,:: GetWindowLong (hWnd, GWL_EXSTYLE));

Мұнда hWnd - алдыңғы қадамда сипатталған әрекеттерді орындау нәтижесінде табылған терезе тұтқасы.

4-қадам

Терезені жартылай мөлдір етіп жасаңыз. SetLayeredWindowAttributes API немесе қаптама кластарының әдістерін қолданыңыз. SetLayeredWindowAttributes функциясының прототипі келесідей:

BOOL SetLayeredWindowAttributes (HWND hwnd, COLORREF crKey, BYTE альфа, DWORD dwFlags);

5-қадам

Функцияның hwnd параметрі бірінші қадамда алынған жарамды терезе дескриптор болуы керек. CrKey параметрі - жартылай мөлдір аймақтарды анықтау үшін қолданылатын түсті кілт. BAlpha параметрі мөлдірлік мәнін анықтайды. BAlpha параметрінің мәні 0-ге тең болса, «жартылай мөлдір» аймақтар толығымен мөлдір болады. Егер bAlpha параметрі 255 болса, олар толық мөлдір емес болады. DwFlags параметрі терезе мазмұнын әрі қарай көрсету режимін анықтайды. DwFlags мәніне LWA_COLORKEY жалауы енгізілген кезде, терезенің жартылай мөлдір аймақтары түсті перне негізінде анықталады. LWA_ALPHA жалаушасы қосылған кезде, мөлдірлік мәнін анықтау үшін bAlpha параметрі қолданылады.

6-қадам

Барлық терезені жартылай мөлдір ету үшін SetLayeredWindowAttributes параметрін таңдаулы bAlpha параметрінің мәнімен шақырыңыз, жалаушасы LWA_ALPHA, бірақ жалаушасы LWA_COLORKEY жоқ. Табылған терезе дескрипторын функцияның бірінші параметрі ретінде қолданыңыз. Мысалы, терезені жартылай мөлдір ету үшін қоңырауды қолданыңыз:

:: SetLayeredWindowAttributes (hWnd, RGB (0, 0, 0), 128, LWA_ALPHA);

Ұсынылған: