遍匈 / windows園殻 /

?完笥補竃猟忖--TextOut才DrawText痕方

<貧匯准 和匯准>
壓ゞ匯倖頼屁議Windows殻會崇尺〃匯准嶄?厘断聞喘 DrawText() ?人薩曝議嶄寂了崔補竃阻匯粁猟云?徽旺短嗤峋聾盾瞥?宸准厘断栖嶷泣傍匯和猟忖議補竃。

譜姥桟廠?DC?

壓Windows嶄?匯俳嬬壓?塋焼烔録患週超縞罵斜裡?撒?趯┻磧∀漾⊂慚痢?乙硲r屋趯34鍔屐?嵬紂6墫短Ю緩砧鍔嶌様柴j撚四i庁i?万断壓云嵎貧脅頁夕侘?脅俶勣壓?塋焼烔六19歆粥U瞎科?Windows瓜各恬夕侘荷恬狼由議圻咀。

Windows音塋俯厘断岷俊恵諒啣周?泌囚徒、?塋焼滇?鰉〇繒硲t旃誥睾Ý下鯸36吐威Ĺ餤?譜姥桟廠?Device Context?酒各 DC??序遇寂俊議恵諒啣周。
譜姥桟廠嗤扮匆瓜各葎譜姥貧和猟賜譜姥宙峰燕。
侭僚譜姥桟廠?祥頁嚥輝念啣周譜姥嗤購議光嶽佚連?万頁啣周譜姥議渇嵆。匆祥頁傍?譜姥桟廠祥旗燕輝念議啣周。

嚥猟忖補竃、夕侘紙崙嗤購議痕方?壓聞喘扮寄脅俶勣勧秘匯倖歌方?祥頁譜姥桟廠鞘凹。資函譜姥桟廠鞘凹嗤謹嶽圭塀?械喘議頁 BeginPaint 痕方。紙夕頼撹朔?珊勣瞥慧鞘凹?聞喘 EndPaint 痕方。

BeginPaint 才 EndPaint 痕方

輝窟伏 WM_PAINT 並周扮?哘喘殻會蝕兵紙夕。紙夕岻念俶勣枠距喘 BeginPaint 痕方宥岑 Windows?御盆万輝念殻會俶勣聞喘?塋焼?d祕嘉賭始属鼻?BeginPaint 痕方峇佩頼穎祥卦指譜姥桟廠鞘凹?俊和栖祥辛參聞喘 GDI 痕方紙夕阻。

紙夕潤崩朔?匆俶勣距喘 EndPaint 痕方宥岑Windows?御盆万紙夕潤崩阻?低辛參写偬朔中議垢恬阻。

TextOut 痕方

TextOut 痕方辛參壓人薩曝補竃匯粁猟云?圻侏葎?
BOOL TextOut(
 HDC hdc, //譜姥桟廠鞘凹
 int nXStart, //蝕兵補竃了崔議x恫炎
 int nYStart, //蝕兵補竃了崔議y恫炎
 LPCTSTR lpString, //勣補竃議忖憲堪
 int cbString //忖憲堪議海業
);
耽輝窟伏WM_PAINT並周扮?完笥祥氏窟伏嶷紙?宸倖扮昨俶勣?完笥補竃猟忖?
LRESULT CALLBACK WndProc(
 HWND hwnd,
 UINT message,
 WPARAM wParam,
 LPARAM lParam
){
 HDC hdc; //譜姥桟廠鞘凹
 PAINTSTRUCT ps; //贋刈紙夕桟廠議屢購佚連
 TCHAR szText[20] = TEXT("散哭栖欺C囂冱嶄猟利");
 switch (message){
 case WM_PAINT:
 //蝕兵紙夕旺卦指桟廠鞘凹
 hdc = BeginPaint (hwnd, &ps);
 //補竃猟忖
 TextOut(hdc, 50, 50, szText, wcslen(szText));
 //潤崩紙夕旺瞥慧桟廠鞘凹
 EndPaint (hwnd, &ps) ;
 return 0 ;
 case WM_DESTROY:
 PostQuitMessage(0) ;
 return 0 ;
 }
 return DefWindowProc(hwnd, message, wParam, lParam) ;
}
塰佩丼惚?


叱泣傍苧?
1) PAINTSTRUCT 潤更悶喘栖隠贋嚥紙夕桟廠嗤購議佚連?云縮殻音氏聞喘欺?音壅讐盾?嗤佶箸議響宀辛徭佩Google賜為業。

2) BeginPaint 才 EndPaint 痕方喘栖蝕兵紙夕才潤崩紙夕?駅倬撹斤竃孖?補竃猟忖賜紙崙夕侘議旗鷹匆駅倬慧壓曾倖痕方岻寂。

3) 忖憲堪匯違聞喘錐忖憲?斤哘議柴麻忖憲堪海業議痕方葎 wcslen()。

DrawText痕方

TextOut 壓匯倖軟泣蝕兵補竃猟云?辛參娼鳩協了?音嬬徭強算佩?DrawText 壓峺協曝囃坪補竃猟云?辛參陣崙鯉塀斤馴?肖恣、肖嶄、肖嘔??辛參算佩。

DrawText 壓坪何凪糞匆頁距喘TextOut ?音狛万恬阻載謹侃尖?曳泌 DrawText 涙俶岑祇補竃謹富倖忖憲。厚嶷勣議頁?DrawText 辛參侃尖算佩憲遇 TextOut 音嬬?貫宸倖叔業心?DrawText 哘乎頁匯嶽厚互雫議喘隈?頁壓TextOut児粥貧議撃廾。

DrawText 議圻侏頁?
int DrawText(
 HDC hDC, //譜姥桟廠鞘凹
 LPCTSTR lpString, //繍勣補竃議忖憲堪
 int nCount, //忖憲堪議海業
 LPRECT lpRect, //峺?匯倖裳侘曝囃議潤更悶 RECT 議峺寞
 UINT uFormat //補竃鯉塀
);
曾泣傍苧?
1) 泌惚 nCount 葎 -1?夸燕苧 lpString 峺?議忖憲堪頁參'0円'潤崩議?DrawText 氏徭強柴麻忖憲方。

2) 歌方 uFormat 嗤膨嶽函峙?万断辛參販吭怏栽?
  • DT_CALCRECT?宸倖歌方曳熟嶷勣?辛參聞 DrawText 痕方柴麻竃補竃猟云議樫雁。泌惚補竃猟云嗤謹佩?DrawText 痕方聞喘 lpRect 協吶議裳侘議錐業?旺制婢裳侘議久何參否追補竃猟云議恷朔匯佩。泌惚補竃猟云峪嗤匯佩?夸 DrawText 痕方個延裳侘議嘔円順?參否追和屎猟佩議恷朔匯倖忖憲。竃孖貧峰販採匯嶽秤趨。
  • DT_CENTER?峺協猟云邦峠肖嶄?塋勝?
  • DT_VCENTER?峺協猟云換岷肖嶄?塋勝8単蠎盃市攀バ侘脹省箜?詠佩Вk窅塰譆慚誡?DT_SINGLELINE潤栽聞喘。
  • DT_SINGLELINE?汽佩?塋称脹升vii愕戯融姉亰蔣鴫散椀弌?

DrawText 幣箭?
//完笥狛殻
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){
 HDC hdc; //譜姥桟廠鞘凹
 PAINTSTRUCT ps;
 RECT rect;
 switch (message){
 //完笥紙崙嶧連
 case WM_PAINT:
 hdc = BeginPaint (hwnd, &ps) ;
 GetClientRect (hwnd, &rect) ;
 DrawText(
 hdc,
 TEXT("低挫?散哭栖欺C囂冱嶄猟利"),
 -1,
 &rect,
 DT_SINGLELINE | DT_CENTER | DT_VCENTER
 );
 EndPaint (hwnd, &ps) ;
 return 0 ;
 //完笥?支嶧連
 case WM_DESTROY:
 PostQuitMessage(0) ;
 return 0 ;
 }
 return DefWindowProc(hwnd, message, wParam, lParam) ;
}
塰佩潤惚?


個延完笥寄弌扮?猟云氏徭強距屁了崔?匯岷侃噐完笥嶄寂。

GetClientRect 痕方喘栖資誼完笥人薩曝議恫炎?匆祥頁資誼人薩曝宸倖賞侏。
<貧匯准 和匯准>

AltStyle によって変換されたページ (->オリジナル) /