suàn > chuāng kǒu bǐng
mùlù
No. 1
  zài windows zhōng bǐng shì tǒng nèi shù jié gòu de yǐn yòng dāng cāo zuò chuāng kǒuhuò shuō shì delphi chuāng shí tǒng huì gěi gāi chuāng kǒu de bǐng tǒng huì tōng zhī zhèng zài cāo zuò 142 hào chuāng kǒujiù de yìng yòng chéng jiù néng yào qiú tǒng duì 142 hào chuāng kǒu jìn xíng cāo zuò héng héng dòng chuāng kǒugǎi biàn chuāng kǒu xiǎo chuāng kǒu xiǎo huà wéi biāoděng děngshí shàng duō windowsapi hán shù bǐng zuò wéi de cān shù gdi( xíng shè bèi jiē kǒu bǐngcài dān bǐngshí bǐngwèi bǐng děng děng jǐn jǐn xiàn chuāng kǒu hán shù
   huàn huà shuō bǐng shì zhǒng nèi dài tōng guò néng yǐn yòng shòu tǒng kòng zhì de shū yuán chuāng kǒuwèi biāonèi cún kuàiguāng biāo cài dān děng děng
   àn huò chuāng kǒu bǐng
   àn shuō míng
   běn shí xiàn chuāng kǒu bǐng de huò
   shí xiàn guò chéng
  privatedeclarefunctiongetwindowlonglib"user32"alias"getwindowlonga"(byvalhwndaslong,byvalnindexaslong)aslong
  privatedeclarefunctionsetwindowlonglib"user32"alias"setwindowlonga"(byvalhwndaslong,byvalnindexaslong,byvaldwnewlongaslong)aslong
  privatedeclarefunctionsetlayeredwindowattributeslib"user32"(byvalhwndaslong,byvalcrkeyaslong,byvalbalphaasbyte,byvaldwflagsaslong)aslong
  privateconstws_ex_layered=&h80000
  privateconstgwl_exstyle=(-20)
  privateconstlwa_alpha=&h2
  privatesubform_activate()
  onerrorresumenext
  fori=0to150step2.5
  setlayeredwindowattributesme.hwnd,0,i,lwa_alpha
  doevents
  nexti
  endsub
  privatesubform_load()
  dimrtnaslong
  rtn=getwindowlong(me.hwnd,gwl_exstyle)
  rtn=rtnorws_ex_layered
  setwindowlongme.hwnd,gwl_exstyle,rtn
  setlayeredwindowattributesme.hwnd,0,0,lwa_alpha
  endsub
No. 2
  zài Windows zhōng bǐng shì tǒng nèi shù jié gòu de yǐn yòng dāng cāo zuò chuāng kǒuhuò shuō shì Delphi chuāng shí tǒng huì gěi gāi chuāng kǒu de bǐng tǒng huì tōng zhī zhèng zài cāo zuò 142 hào chuāng kǒujiù de yìng yòng chéng jiù néng yào qiú tǒng duì 142 hào chuāng kǒu jìn xíng cāo zuò héng héng dòng chuāng kǒugǎi biàn chuāng kǒu xiǎo chuāng kǒu xiǎo huà wéi biāoděng děngshí shàng duō WindowsAPI hán shù bǐng zuò wéi de cān shù GDI( xíng shè bèi jiē kǒu bǐngcài dān bǐngshí bǐngwèi bǐng děng děng jǐn jǐn xiàn chuāng kǒu hán shù
   huàn huà shuō bǐng shì zhǒng nèi dài tōng guò néng yǐn yòng shòu tǒng kòng zhì de shū yuán chuāng kǒuwèi biāonèi cún kuàiguāng biāo cài dān děng děng
   àn huò chuāng kǒu bǐng
   àn shuō míng
   běn shí xiàn chuāng kǒu bǐng de huò
   shí xiàn guò chéng
  PrivateDeclareFunctionGetWindowLongLib"user32"Alias"GetWindowLongA"(ByValhwndAsLong,ByValnIndexAsLong)AsLong
  PrivateDeclareFunctionSetWindowLongLib"user32"Alias"SetWindowLongA"(ByValhwndAsLong,ByValnIndexAsLong,ByValdwNewLongAsLong)AsLong
  PrivateDeclareFunctionSetLayeredWindowAttributesLib"user32"(ByValhwndAsLong,ByValcrKeyAsLong,ByValbAlphaAsByte,ByValdwFlagsAsLong)AsLong
  PrivateConstWS_EX_LAYERED=&H80000
  PrivateConstGWL_EXSTYLE=(-20)
  PrivateConstLWA_ALPHA=&H2
  PrivateSubForm_Activate()
  OnErrorResumeNext
  Fori=0To150Step2.5
  SetLayeredWindowAttributesMe.hwnd,0,i,LWA_ALPHA
  DoEvents
  Nexti
  EndSub
  PrivateSubForm_load()
  DimrtnAsLong
  rtn=GetWindowLong(Me.hwnd,GWL_EXSTYLE)
  rtn=rtnOrWS_EX_LAYERED
  SetWindowLongMe.hwnd,GWL_EXSTYLE,rtn
  SetLayeredWindowAttributesMe.hwnd,0,0,LWA_ALPHA
  EndSub
   dān cóng gài niàn shàng jiǎng bǐng zhǐ duì xiàng de biāozhìér zhǐ zhēn shì duì xiàng de shǒu zhǐcóng shí chǔlǐ de jiǎo jiǎng bǐng dìng wéi zhǐ zhēnyòu dìng wéi tóng lèi duì xiàng shù de suǒ yǐnzhè liǎng zhǒng chǔlǐ fāng dōuyòu yōu quē diǎnzhì xuǎn yòng zhǒng fāng shìwán quán yīnggāi kàn shí yàozhè shuō shì zhǒng chéng shè shàng de qiǎo zhǒng dān chún rèn wéi bǐng shì zhǐ zhēn huò suǒ yǐn de xiǎng dōushì xiè de què qiē de
   shízài Windows zhōng lèi shìde chǔlǐ shì hěn duō dehěn líng huó dezài xiāng de
   men zhī dàozài Windows zhōng yòu hán shù jiào zuò CallWindowProc。 míng de zuò yòng jiù shì xiàng zhǐ dìng de chuāng kǒu guò chéng chuán xiāo huì xiǎng rán jīng yòu liǎo chuāng kǒu guò chéng de zhǐ zhēnwèishénme zhí jiē tōng guò zhè zhǐ zhēn diào yòng gāi hán shùzhè shì C yán de nèi jiàn gōng néng)? shì shí shàngzài Win16 zhōng què shí zhè me zuòyīn wéi GetWindowLong fǎn huí díquè shí shì gāi hán shù de zhǐ zhēndàn zài Win32 xià, GetWindowLong fǎn huí de bìng shì gāi hán shù de zhǐ zhēnér shì bāo hán hán shù zhǐ zhēn de shù jié gòu de zhǐ zhēn( MSDN shàng shuō fǎn huí de shì chuāng kǒu hán shù zhǐ huò de bǐngjiù shì zhǐ de zhè zhǒng qíng kuàng)。 gāi shù jié gòu shì biàn dedàn zhǐ yào shǐ yòng CallWindowProc lái diào yòng de huà shì huì chū cuò dezhè men yòu kàn dào shǐ yòng bǐng chǔlǐ dài lái de hǎo chù。( chōng shuō míng diǎnwēi ruǎn zài zhè zhī suǒ zhè me chǔlǐshì wéi liǎo jiě jué 16 wèi /32 wèi ANSI/UNICODE de zhuǎn huà wèn
  1. bǐng shì shénme
   zài windows zhōng bǐng shì duì xiàng duì yìng de 32 wèi hào zhěng shù zhíduì xiàng yìng shè dào wéi
   de bǐng bǐng yìng shè dào wéi de duì xiàng
  2. wèishénme men yào bǐng
   gèng zhǔn què shuōshì windows yào bǐng。 windows yào xiàng chéng yuán gōng yào biān chéng jiē kǒu
  , zài zhè xiē jiē kǒu zhōngyǔn chéng yuán fǎng wènchuàng jiàn xiāo huǐ duì xiàngdàn shìchū fēng zhuāng kǎo , wi
  ndows bìng xiǎng xiàng chéng yuán fǎn huí zhǐ zhēnzhǐ zhēn bāo hán liǎo tài duō de xìn shǒu xiān zhǐ zhēn gěi chū liǎo duì xiàng cún chǔ
   díquè qiē wèi zhì yào cāo zuò zhǐ zhēnchéng yuán zhī dào zhǐ zhēn suǒ zhǐ duì xiàng de nèi jié gòu
   zhēng , windows xiàng chéng yuán bào xiāng yìng de shù jié gòuér zhè xiē shù jié gòu shì cāo zuò
   tǒng xiǎng xiàng chéng yuán yǐn cáng de
   guǒ shuō COM shù xiàng yòng yǐn cáng liǎo shù zhǐ bào liǎo jiē kǒu bìng zhǐ yǔn 'àn jiē kǒu dìng de fāng cāo
   zuò shù de huà bǐng zhè zhǒng fāng shì yǔn 'àn de fāng shì zhí jiē cāo zuò shù dàn windows yòu xiàng
   zhí jiē bào shù zhí jiē cāo zuò shù shì chéng yuán yào de bào shù shì windows suǒ yào de
   bǐng fēng zhuāng fāng shì shí xiàn liǎo suǒ
  3. bǐng duì xiàng yìng shè
   fēng zhuāng bèi hòu yòu fāng shí xiàn jiě shí xiàn bǐng duì xiàng de xiāng zhuǎn huànzài
  windows zhōngcún zài liǎng zhǒng yìng shè fāng shì
  a. quán děng yìng shè bǐng běn shēn jiù shì zhǐ zhēnyìng shè zài zhè zhǐ shì lèi xíng zhuǎn huàn 'ér
   zhè zhǒng qíng kuàng yòujìn chéng shí bǐng huò kuài bǐng yuán bǐng děng děng
  b. biǎo de yìng shèzhè shì duì xiàng zhǐ zhēn bǐng zhī jiān zuì tōng de yìng shè zhìcāo zuò tǒng chuàng
   jiàn biǎo bìng bǎo cún suǒ yòu yào kǎo de duì xiàng yào chuàng jiàn xīn duì xiàng shíyào xiān zài biǎo zhōng zhǎo dào kōng kǒu
  , rán hòu biǎo shì duì xiàng de shù tiān zhōngdāng duì xiàng bèi shān chú shí de shù chéng yuán zài biǎo zhōng de
   kǒu bèi shì fàng
  4. bǐng de dìng shí xiàn
   men GDI duì xiàng wéi jìn xíng tǎo lùnchuàng jiàn liǎo GDI duì xiàngjiù huì dào gāi duì xiàng de bǐng bǐng
   de duì xiàng néng shì HBRUSH、 HPEN、 HFONT huò HDC zhōng de zhǒngzhè lài chuàng jiàn de GDI duì xiàng lèi
   xíngdàn shì zuì tōng de GDI duì xiàng lèi xíng shì HGDIOBJ。 HGDIOBJ bèi dìng chéng kōng zhǐ zhēn
  HPEN de shí biān lèi xíng dìng suí biān shí jiān hóng STRICT de tóng 'ér tóng guǒ STRCIT jīng
   bèi dìng liǎo, HPEN shì zhè yàng de
  structHPEN__{intunused};
  typedefstructHPEN__*HPEN;
   guǒ STRICT méi yòu dìng , HPEN shì zhè yàng dìng de
  typedefvoid*HANDLE;
  typedefHANDLEHPEN;
   shàng miàn zhè duàn dài shì zhù zhòng jié de chéng yuán zuì jiē jìn bǐng de fāngyīn men zhòng diǎn fēn
   xiàzhè yòu diǎn diǎn qiǎo guǒ dìng liǎo STRICT hóng, HPEN shì zhǐ xiàng yòu dān wèi shǐ yòng duàn de
   jié gòu de zhǐ zhēnfǒu HPEN shì kōng zhǐ zhēn。 C/C++ biān yǔn rèn lèi xíng de zhǐ zhēn zuò wéi kōng zhǐ shí chuán
   fǎn zhī liǎng tóng lèi xíng de fēi kōng zhǐ zhēn shì jiān róng dezài STRICT bǎn běn zhōngbiān
   duì GDI duì xiàng bǐng de zhèng què hùn yòng jiāng gěi chū jǐng gàoduì fēi GDI bǐng HWND、 HMENU de zhèng
   què hùn yòng huì gěi chū jǐng gàocóng 'ér shǐ chéng zài biān dào gèng STRICT de jiǎn chá
   jiē xià lái de fēn néng me lìng gǎn xīng dàn gēngshēn jiē shì liǎo bǐngduì GDI bǐng lái
   shuōjìn guǎn windows tóu wén jiàn dìng chéng zhǐ zhēndàn guǒ zǎi jiǎn chá zhè xiē bǐng de zhí gēn běn
   jiù xiàng zhǐ zhēnzhè shì wèishénme shuō zhǐ shì 32 wèi zhěng shù zhí de yuán yīnduì bǐng jiù shì zhǐ
   zhēn de qíng kuàngzhè huà réng rán shì yòngràng men suí shēng chéng xiē bǐng yòng GetStockOb
  ject() dào xiē bǐng huì xiàn men de zhí zǒng zài jiān 0x01900011 dào 0xba040389。
   qián zhě zhǐ xiàng yòng zhōng de wèi fēn pèi de xiào hòu zhě zhǐ xiàng nèi zhǐ kōng jiānlìng wài néng xiàn
  , liǎng bǐng zhī jiān de zhí néng zhǐ chā shù zhí 1, zhè shuō míng GDI bǐng shì zhǐ zhēn
   duō shù rén xiǎng xiàng de yàng bǐng shì dān chún de suǒ yǐn zhíduì GDI duì xiàng bǐng lái shuō
  GDI bǐng yóu 8 wèi、 1 wèi duī duì xiàng biāo biǎo míng duì xiàng shì fǒu chuàng jiàn zài duī zhōng)、 7 wèi duì xiàng lèi xíng xìn
   gāo 4 wèi wéi 0 de 16 wèi suǒ yǐn chéng
  33222222222211111111110000000000
  10987654321098765432109876543210
  |8 wèi yǐn yòng shù | duī | duì xiàng lèi xíng 7|16 wèi suǒ yǐn |
   biāo
  
   zài zhè kàn dàoduì GDI lái shuō zhǐ shǐ yòng liǎo 16 wèi zuò wéi suǒ yǐnzhè wèi zhe jìn chéng zuì duō zhǐ
   chuàng jiàn xiǎo 64K bǐngshí shàng shòu xiē xiàn zhìzhěng Windows tǒng zhōng gài róng yuē
  16384(0x4000) GDI duì xiàng
bāo hán cí
zhì chuāng kǒu bǐng chuāng kǒu bǐng zhù chuāng kǒu bǐng
shè bèi chuāng kǒu bǐngyuán jiǎo chuāng kǒu bǐng shǔ biāo suǒ zài chuāng kǒu bǐng
SC chuāng kǒu bǐng