Yuav Ua Li Cas Thiaj Ua Lub Qhov Rai Ntim Pob Tshab

Cov txheej txheem:

Yuav Ua Li Cas Thiaj Ua Lub Qhov Rai Ntim Pob Tshab
Yuav Ua Li Cas Thiaj Ua Lub Qhov Rai Ntim Pob Tshab

Video: Yuav Ua Li Cas Thiaj Ua Lub Qhov Rai Ntim Pob Tshab

Video: Yuav Ua Li Cas Thiaj Ua Lub Qhov Rai Ntim Pob Tshab
Video: yuav ua li cas tswv​ yexus​ thiaj teb koj lus thov. Xib fwb zoov tsawb qhia vajtswv​ txoj lus 2024, Kaum ib hlis
Anonim

Nrog kev txhim kho ntawm cov duab nraaj thev naus laus zis, API ntawm cov kev ua haujlwm kuj tau ua kom zoo dua, muab cov phiaj xwm nrog ntau thiab ntau dua rau kev tsim cov ntsiab lus tsis sib xws. Yog li ib qho ntawm kev tsim kho tshiab ntawm lub Windows 2000 kev ua haujlwm yog fawm kib qhov rai, qhov ntawm cov uas tuaj yeem ua translucent. Tsis ntev, kev piav qhia ntawm API rau kev ua haujlwm nrog fawm kib qhov rai tau muaj nyob ntawm MSDN. Txawm li cas los xij, ntawm cov kws tsim kev sib tham, cov lus nug hais txog yuav ua li cas thiaj ua lub qhov rai kom pom lub pob tshab tseem tau nug.

Yuav ua li cas thiaj ua lub qhov rai ntim pob tshab
Yuav ua li cas thiaj ua lub qhov rai ntim pob tshab

Tsim nyog

  • - compiler;
  • - windows sdk lossis moj khaum rau lub qhov rai ua haujlwm.

Cov Lus Qhia

Kauj ruam 1

Tau txais tus coj mus rau lub qhov rais koj xav kom ua semi-pob tshab. Nrhiav lossis tsim lub qhov rai. Los tsim nws, siv ob qho kev ua ntawm CreateWindow, CreateWindowEx API, lossis cov txheej txheem qhwv nyob ib puag ncig cov haujlwm no koom nrog cov chav kawm ntawm cov qauv siv. Daim qauv rau cov CreateWindow muaj nuj nqi zoo li qhov no:

HWND TsimWindow (LPCTSTR lpClassName, LPCTSTR lpWindowName, DWORD dwStyle, rau cov menyuam x, rau cov menyuam y,

rau cov menyuam, rau cov menyuamHeight, HWND hWndPauv, HMENU hMenu, HINSTANCE kev khwv nyiaj, LPVOID lpParam);

Raws li koj tau pom, txoj haujlwm rov ua haujlwm ua tus kov rau lub qhov rai tsim raws li kev ua tiav. Yog tias muaj chav kawm wrapper siv, siv nws cov hau kev ntawm cov khoom sib xws rau lub qhov rais tsim kom tau txais tus kov.

Kauj ruam 2

Pom lub qhov rai tuaj yeem ua tiav siv API hu rau FindWindow, FindWindowEx, EnumWindows, EnumChildWindows, EnumThreadWindows, thiab lawv cov kev sib txuas ua ke. Koj tuaj yeem tau coj mus rau lub qhov rai hauv ib cheeb tsam tshwj xeeb uas siv cov haujlwm "WindowFromPoint thiab ChildWindowFromPoint".

Kauj ruam 3

Teem lub qhov rai kom ntev txuas WS_EX_LAYERED. Siv SetWindowLong API lossis cov qauv sib xws ntawm cov khoom qhwv. SetWindowLong muaj nuj nqi hloov cov ntaub ntawv hloov kho lub qhov rai hloov pauv, yog li siv nws ua ke nrog GetWindowLong muaj nuj nqi los khaws cov nqi yav dhau los rau cov teeb tsa tus chij style. Piv txwv li, cov qauv tuaj yeem hloov pauv zoo li no:

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

Ntawm no hWnd yog lub qhov rais kov pom los ntawm kev ua cov yeeb yam piav qhia hauv cov kauj ruam dhau los.

Kauj ruam 4

Ua lub qhov rai ua kom pom tseeb. Siv SetLayeredWindowAttributes API lossis cov hau kev ntawm cov chav kawm qhwv tawm. SetLayeredWindowAttributes cov qauv ua haujlwm zoo li no:

BOOL SetLayeredWindowAttributes (HWND hwnd, KHUV XIM crKey, BYTE bAlpha, DWORD dwFlags);

Kauj ruam 5

Hwnd parameter rau qhov ua haujlwm yuav tsum yog qhov siv tau los siv tau ntawm thawj kauj ruam. Lub crKey parameter yog cov xim tseem ceeb siv los txhais thaj chaw pob tshab. Qhov bAlpha parameter qhia meej txog tus nqi translucency. Nrog rau BAlpha parameter nqi sib npaug rau 0, thaj chaw "semi-pob tshab" yuav tsum tshab plaws. Yog hais tias bAlpha parameter yog 255, lawv yuav ua opaque kiag li. DwFlags parameter txiav txim siab hom ntawm kev ua kom pom ntxiv ntawm cov txheej txheem ntawm lub qhov rais. Thaum LWA_COLORKEY chij muaj nyob rau hauv tus nqi dwFlags, qhov chaw semitransparent ntawm lub qhov rai yuav raug txiav txim siab raws li tus yuam sij xim. Thaum LWA_ALPHA chij tau qhib lawm, bAlpha parameter yuav raug siv los txiav txim siab txog tus nqi translucency.

Kauj Ruam 6

Txhawm rau kom tag nrho lub qhov rai ua kom pom tseeb, hu rau SetLayeredWindowAttributes nrog cov nqi bAlpha zoo tshaj, tus LWA_ALPHA chij, tab sis tsis muaj tus chij LWA_COLORKEY. Siv cov pom ntawm lub qhov rais tuav ua thawj cov parameter rau txoj haujlwm. Piv txwv, kom ua rau lub qhov rais ib nrab pob tshab, siv hu:

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

Pom zoo: