Åø¹Ù´Â À©µµ¿ìÀÇ »ó´Ü¿¡ ¹ÐÂøµÇ´Âµ¥ ºñÇØ »óŶõÀº º¸Åë À©µµ¿ìÀÇ ÇÏ´Ü¿¡ ¹ÐÂøµÇ¾î ³ªÅ¸³´Ù. ÇÁ·Î±×·¥ÀÇ ÇöÀç »óųª Űº¸µå »óÅ µî »ç¿ëÀÚ°¡ ÇÁ·Î±×·¥ »ç¿ëÁß¿¡ Âü°íÇÒ ¸¸ÇÑ Á¤º¸¸¦ º¸¿©ÁÖ¸ç ¶ÇÇÑ °£´ÜÇÑ µµ¿ò¸»À» Ãâ·ÂÇÏ´Â ¿ëµµ·Îµµ »ç¿ëµÈ´Ù. »óŶõµµ ´ëºÎºÐÀÇ ÇÁ·Î±×·¥¿¡¼ ä¿ëÇÏ´Â Ãß¼¼ÀÌ´Ù. º¹ÀâÇØ º¸ÀÌÁö¸¸ ¾Ë°íº¸¸é º¸±âº¸´Ù´Â ÈξÀ ´õ °£´ÜÇÏ´Ù. ¸ÞÀÎ À©µµ¿ì¿¡¼ »óŶõÀ» Á¶ÀÛÇϱ⸸ ÇÒ »Ó »óŶõ¿¡¼ ¸ÞÀÎ À©µµ¿ì·Î º¸³»Áö´Â ÅëÁö ¸Þ½ÃÁö°¡ ¾ø´Â ÀϹæÇâÀÇ Åë½ÅÀ» Çϱ⠶§¹®ÀÌ´Ù. ¹°·Ð Ŭ¸¯À̳ª ´õºí Ŭ¸¯ µîÀÇ ¸Þ½ÃÁö¸¦ º¸³»±â´Â ÇÏÁö¸¸ ´Ù¸¥ ÄÁÆ®·Ñ¿¡ ºñÇØ ²À ó¸®ÇØ¾ß ÇÒ ÅëÁö ¸Þ½ÃÁö´Â ¾ø´Â ¼ÀÀÌ´Ù.
»óŶõµµ À©µµ¿ìÀ̹ǷΠCreateWindow(Ex) ÇÔ¼ö·Î ¸¸µé ¼ö ÀÖ´Ù. À©µµ¿ì Ŭ·¡½º·Î STATUSCLASSNAMEÀ» ÁÖ¸é »óŶõ ÄÁÆ®·ÑÀÌ ¸¸µé¾îÁö¸ç À̶§ À§Ä¡³ª Å©±â¸¦ ÁöÁ¤ÇÏ´Â °ÍÀº Àǹ̰¡ ¾ø´Ù. °£´ÜÇÑ ÄÁÆ®·ÑÀ̹ǷΠCreateWindow ÇÔ¼öº¸´Ù´Â ´ÙÀ½ ÇÔ¼ö·Î ¸¸µå´Â °ÍÀÌ º¸ÅëÀÌ´Ù.
HWND CreateStatusWindow( LONG style, LPCTSTR lpszText, HWND hwndParent, UINT wID );
º¸´Ù½ÃÇÇ Àμö°¡ °íÀÛ 4°³»ÓÀÌ´Ù. styleÀº »óŶõÀÇ ½ºÅ¸ÀÏÀ» ÁöÁ¤Çϴµ¥ ÀÌ °ªÀº ÁÖ·Î WS_CHILD | WS_VISIBLE·Î ÁÖ°Ô µÈ´Ù. ÀÌ¿Ü ´õ ÁöÁ¤ÇÒ ¼ö ÀÖ´Â ½ºÅ¸ÀÏÀº SBT_TOOLTIPS¶ó´Â ½ºÅ¸ÀÏÀÌ Àִµ¥ »óŶõ¿¡ ÅøÆÁÀ» »ç¿ëÇÒ ¶§ ÁöÁ¤ÇÑ´Ù. lpszText´Â »óŶõ¿¡ ³ªÅ¸³¾ Ãʱ⠹®ÀÚ¿ÀÌ´Ù. hwndParent´Â ºÎ¸ð À©µµ¿ìÀÇ ÇÚµéÀ̸ç wID´Â »óŶõÀÇ IDÀÌ´Ù. ÀÌ ÇÔ¼ö¸¸ È£ÃâÇØ ÁÖ¸é ÆÄÆ® Çϳª¸¸ °¡Áö´Â ¹Ô¹ÔÇÑ »óŶõÀÌ ¸¸µé¾îÁø´Ù.
hState=CreateStatusWindow(WS_CHILD | WS_VISIBLE, "Status Line", hWnd,0);
¸®ÅϵǴ °ªÀº ¹°·Ð »óŶõÀÇ À©µµ¿ì ÇÚµéÀÌ´Ù. WM_CREATE¿¡¼ À§¿Í °°ÀÌ »óŶõÀ» ¸¸µé¸é °á°ú´Â ´ÙÀ½°ú °°´Ù.
¾Æ·¡ÂÊ¿¡ Status LineÀ̶ó´Â ¹®ÀÚ¿À» °¡Áö´Â »óŶõÀÌ ¸¸µé¾îÁø´Ù. ±×·±µ¥ »óŶõÀº º¸Åë ÀÌ·¸°Ô Åë°·Î »ç¿ëÇÏ´Â °æ¿ìº¸´Ù ÄÀ» ³ª´©¾î ¿©·¯ °¡Áö Á¤º¸¸¦ º¸¿©ÁÖ´Â °ÍÀÌ ÀϹÝÀûÀÌ´Ù. ´ÙÀ½Àº ¿öµå¿Í ºñÁÖ¾ó ½ºÆ©µð¿ÀÀÇ »óŶõÀÌ´Ù.
»óŶõÀ» Å丷 Å丷 Àß¶ó¼ ¾Ë¶ãÇÏ°Ô »ç¿ëÇϰí ÀÖ´Ù. À̶§ »óŶõÀÇ °¢ Á¶°¢À» ÆÄÆ®(Part)¶ó°í Çϸç ÃÖ´ë 256°³±îÁö ¿øÇÏ´Â °³¼ö¸¸Å ¿øÇÏ´Â Æø´ë·Î ¸¸µé ¼ö ÀÖ´Ù. »óŶõÀÇ ¸Þ½ÃÁö´Â ´ÙÀ½°ú °°´Ù. SB_SETPARTS, SB_SETTEXT Á¤µµ°¡ ¾Ë¾ÆµÑ ¸¸ÇÑ ¸Þ½ÃÁöÀÌ´Ù.
¸Þ½ÃÁö |
¼³¸í |
SB_GETTEXT |
wParamÀ¸·Î ÁöÁ¤ÇÑ ÆÄÆ®ÀÇ ÅØ½ºÆ®¸¦ ±¸ÇÑ´Ù. lParamÀ¸·Î ÅØ½ºÆ®¸¦ µ¹·Á¹Þ±â À§ÇÑ ¹öÆÛ ¹øÁö¸¦ ³Ñ°ÜÁØ´Ù. |
SB_SETTEXT |
wParamÀ¸·Î ÁöÁ¤ÇÑ ÆÄÆ®ÀÇ ÅØ½ºÆ®¸¦ ¼³Á¤ÇÑ´Ù. lParamÀ¸·Î ¹®ÀÚ¿À» ³Ñ°ÜÁØ´Ù. wParamÀÌ 255ÀÏ °æ¿ì ÆÄÆ®°¡ Çϳª»ÓÀÎ °ÍÀ¸·Î °£ÁÖÇÏ¸ç ÆÄÆ®ÀÇ Å¸ÀÔÀ» OR ¿¬»êÀÚ·Î ¹¾î¼ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. |
SB_GETTEXTLENGTH |
wParamÀ¸·Î ÁöÁ¤ÇÑ ÆÄÆ®ÀÇ ¹®ÀÚ¿ ±æÀ̸¦ ±¸ÇÑ´Ù. ¸®ÅϰªÀÇ ÇÏÀ§ ¿öµå¸¦ ÀÐÀ¸¸é ±æÀ̸¦ ±¸ÇÒ ¼ö ÀÖ´Ù. ¸®ÅϰªÀÇ »óÀ§ ¿öµå´Â ÆÄÆ®ÀÇ Å¸ÀÔÀÌ ¼³Á¤µÈ´Ù. |
SB_SETPARTS |
ÆÄÆ®¸¦ ¼³Á¤ÇÑ´Ù. wParamÀ¸·Î ÆÄÆ®ÀÇ °³¼ö¸¦ ÁÖ¸ç lParam¿¡ °¢ ÆÄÆ®ÀÇ ¿À¸¥ÂÊ ³¡ ÁÂÇ¥¸¦ °¡Áø Á¤¼öÇü ¹è¿À» ÁØ´Ù. |
SB_GETPARTS |
ÇöÀç ¼³Á¤µÈ ÆÄÆ®ÀÇ °³¼ö¿Í °¢ ÆÄÆ®ÀÇ ¿À¸¥ÂÊ ÁÂÇ¥¸¦ ±¸ÇÑ´Ù. wParamÀ¸·Î ¾ò°íÀÚ ÇÏ´Â ÆÄÆ®ÀÇ °³¼ö¸¦ ÁöÁ¤ÇÑ´Ù. lParamÀº ÁÂÇ¥°ªÀ» µ¹·Á¹Þ±â À§ÇÑ Á¤¼öÇü ¹è¿ÀÇ Æ÷ÀÎÅ͸¦ Àü´ÞÇ쵂 ¹è¿ÀÇ Å©±â´Â wParam°ú °°¾Æ¾ß ÇÑ´Ù. |
SB_GETBORDERS |
»óŶõÀÇ °æ°è¼± µÎ²²¸¦ ¾ò´Â´Ù. lParamÀ¸·Î Å©±â 3ÀÇ Á¤¼öÇü ¹è¿À» ³Ñ°ÜÁÖ¸é ù ¹øÂ° ¿ä¼Ò¿¡ ¼öÆò °æ°è¼±ÀÇ µÎ²², µÎ ¹øÂ° ¿ä¼Ò¿¡ ¼öÁ÷ °æ°è¼±ÀÇ µÎ²², ¼¼ ¹øÂ° ¿ä¼Ò¿¡ °¢ ÆÄÆ® »çÀÌÀÇ °æ°è¼± µÎ²²¸¦ ä¿öÁØ´Ù. |
SB_SETMINHEIGHT |
»óŶõÀÇ ±×¸®±â ¿µ¿ªÀÇ ÃÖ¼Ò ³ôÀ̸¦ wParamÀ¸·Î ¼³Á¤ÇÑ´Ù. ³ôÀÌ´Â Çȼ¿´ÜÀ§·Î ¼³Á¤Çϸç ÀÌ ³ôÀÌ¿¡´Â °æ°è¼±ÀÌ Á¦¿ÜµÈ´Ù. |
SB_SIMPLE |
wParamÀÌ TRUEÀÌ¸é ÆÄÆ® ±¸ºÐÀ» ¹«½ÃÇϰí ÇϳªÀÇ ÆÄÆ®¸¸ °¡Áø »óŶõÀ» ¸¸µé°í FALSEÀ̸é SB_SETPARTS·Î ±¸ºÐÇÑ ÆÄÆ®¸¦ À¯ÁöÇÑ´Ù. |
SB_GETRECT |
wParamÀ¸·Î ÁöÁ¤ÇÑ ÆÄÆ®ÀÇ ¿µ¿ªÀ» ±¸ÇÑ´Ù. lParamÀ¸·Î RECT ±¸Á¶Ã¼ÀÇ Æ÷ÀÎÅ͸¦ ÁÖ¸é ÀÌ ±¸Á¶Ã¼¿¡ ¿µ¿ª ÁÂÇ¥¸¦ ä¿öÁØ´Ù. |
SB_ISSIMPLE |
ÆÄÆ®°¡ Çϳª»ÓÀÎ »óŶõÀÎÁö Á¶»çÇÑ´Ù. |
SB_GETICON |
wParamÀ¸·Î Àü´ÞµÈ ÆÄÆ®ÀÇ ¾ÆÀÌÄÜÀÇ ÇÚµéÀ» Á¶»çÇÑ´Ù. ¾ÆÀÌÄÜÀÌ ÁöÁ¤µÇ¾î ÀÖÁö ¾ÊÀ¸¸é NULLÀÌ ¸®ÅϵȴÙ. |
SB_SETICON |
ÆÄÆ®¿¡ ¾ÆÀÌÄÜÀ» ÁöÁ¤ÇÑ´Ù. wParamÀ¸·Î ÆÄÆ® ¹øÈ£, lParamÀ¸·Î ¾ÆÀÌÄÜÀÇ ÇÚµéÀ» ÁÖµÇ lParamÀÌ NULLÀÌ¸é ¾ÆÀÌÄÜÀÌ »èÁ¦µÈ´Ù. ÀÌ·¸°Ô Ãß°¡µÈ ¾ÆÀÌÄÜÀº Á÷Á¢ »èÁ¦ÇØ ÁÖ¾î¾ß ÇÑ´Ù. |
SB_GETTIPTEXT |
ÆÄÆ®ÀÇ ÅøÆÁÀ» ±¸ÇÑ´Ù. wParamÀÇ ÇÏÀ§ ¿öµå¿¡ ÆÄÆ® ¹øÈ£ »óÀ§ ¿öµå¿¡ ¹öÆÛÀÇ Å©±â¸¦ ÁÖ°í lParamÀ¸·Î ¹®ÀÚ¿À» ´ëÀÔ¹ÞÀ» ¹öÆÛÀÇ Æ÷ÀÎÅ͸¦ ÁØ´Ù. |
SB_SETTIPTEXT |
wParamÀ¸·Î Àü´ÞµÈ ÆÄÆ®¿¡ ÅøÆÁ ÅØ½ºÆ®¸¦ ÁöÁ¤ÇÑ´Ù. ÅøÆÁÀ» ¾²±â À§Çؼ´Â SBT_TOOLTIPS ½ºÅ¸ÀÏÀ» °¡Á®¾ß ÇÑ´Ù. ÅøÆÁÀº ÆÄÆ®¿¡ ¾ÆÀÌÄܸ¸ Àְųª ¹®ÀÚ¿ÀÇ ÀϺΰ¡ Àß·Á¼ º¸ÀÏ ¶§¸¸ ³ªÅ¸³´Ù. |
SB_GETUNICODEFORMAT |
ÄÁÆ®·ÑÀÇ ¹®ÀÚ¿ÀÌ À¯´ÏÄÚµå Æ÷¸ËÀ̸é 0ÀÌ ¾Æ´Ñ °ªÀ» ¸®ÅÏÇϸç ANSI Æ÷¸ËÀ̸é 0À» ¸®ÅÏÇÑ´Ù. |
SB_SETBKCOLOR |
»óŶõÀÇ ¹è°æ»öÀ» ÁöÁ¤ÇÑ´Ù. lParamÀ¸·Î ¹è°æ»ö»óÀ» Àü´ÞÇ쵂 CLR_DEFAULTÀÌ¸é µðÆúÆ® ¹è°æ»öÀ» »ç¿ëÇÑ´Ù. |
±×·³ ¿¹Á¦¸¦ ¸¸µé¾î º¸ÀÚ. »óŶõÀ» 4µîºÐÇØ¼ °¢ ÆÄÆ®¿¡ À©µµ¿ìÀÇ ÇöÀç À§Ä¡¿Í Å©±â¸¦ º¸¿©ÁÖµµ·Ï ¸¸µé¾î º¸¾Ò´Ù.
|
Status1 |
#include <Commctrl.h>
HWND hState;
void SetStatusText(HWND hWnd)
{
RECT wrt;
char str[128];
GetWindowRect(hWnd, &wrt);
wsprintf(str, "Left : %d", wrt.left);
SendMessage(hState, SB_SETTEXT, 0, (LPARAM)str);
wsprintf(str, "Top : %d", wrt.top);
SendMessage(hState, SB_SETTEXT, 1, (LPARAM)str);
wsprintf(str, "Right : %d", wrt.right);
SendMessage(hState, SB_SETTEXT, 2, (LPARAM)str);
wsprintf(str, "Bottom : %d", wrt.bottom);
SendMessage(hState, SB_SETTEXT, 3, (LPARAM)str);
}
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
int SBPart[4],i;
switch(iMessage) {
case WM_CREATE:
InitCommonControls();
hState=CreateStatusWindow(WS_CHILD | WS_VISIBLE, "", hWnd,0);
return 0;
case WM_SIZE:
SendMessage(hState, WM_SIZE, wParam, lParam);
for (i=0;i<4;i++) {
SBPart[i]=LOWORD(lParam)/4*(i+1);
}
SendMessage(hState, SB_SETPARTS, 4, (LPARAM)SBPart);
SetStatusText(hWnd);
return 0;
case WM_MOVE:
SetStatusText(hWnd);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
½ÇÇà½ÃÄÑ º¸ÀÚ. ¸ÞÀÎ À©µµ¿ìÀÇ ÇÏ´Ü¿¡ »óŶõÀÌ ³ªÅ¸³ª¸ç À©µµ¿ì Å©±â³ª À§Ä¡°¡ º¯°æµÇ¸é »óŶõÀÇ Á¤º¸µµ °°ÀÌ º¯°æµÈ´Ù.
WM_CREATE¿¡¼ »óŶõÀ» ÀÏ´Ü ¸¸µç´Ù. À©µµ¿ì Æø¿¡ µû¶ó °¢ ÆÄÆ®ÀÇ Æøµµ ´Þ¶óÁ®¾ß ÇϹǷΠÆÄÆ®¸¦ ³ª´©´Â ÀÏÀº WM_SIZE¿¡¼ Çϰí ÀÖ´Ù. ÀÏ´Ü ¸ÞÀÎ À©µµ¿ìÀÇ Å©±â°¡ º¯°æµÇ¸é »óŶõµµ º¯°æµÈ Å©±â¿¡ ¸ÂÃß¾îÁ®¾ß ÇϹǷΠWM_SIZE ¸Þ½ÃÁö¸¦ ±×´ë·Î »óŶõÀ¸·Î º¸³»ÁØ´Ù. »óŶõÀº ±âº»ÀûÀ¸·Î ºÎ¸ð À©µµ¿ìÀÇ ÇÏ´Ü¿¡ ³ªÅ¸³ª¸ç WM_SIZE ¸Þ½ÃÁö¸¦ ¹ÞÀ» ¶§¸¶´Ù ºÎ¸ð À©µµ¿ìÀÇ ¾Æ·¡ÂÊ¿¡ ÀÛ¾÷ ¿µ¿ª ÆøÀÇ Å©±â·Î ÀÚµ¿ ¹èÄ¡µÈ´Ù. À̶§ »óŶõÀ¸·Î º¸³»´Â WM_SIZE ¸Þ½ÃÁö´Â Å©±â¿Í À§Ä¡¸¦ Àç°è»êÇ϶ó´Â ´Ü¼øÇÑ ½ÅÈ£À̹ǷΠwParam, lParamÀº ¸ðµÎ 0À¸·Î ÁØ´Ù.
»óŶõÀÇ À§Ä¡¿Í Å©±â¸¦ Àç°è»êÇϵµ·Ï ÇÑ ÈÄ ºÎ¸ð À©µµ¿ìÀÇ ÆøÀ» 4µîºÐÇÏ¿© 4°³ÀÇ ÆÄÆ®¸¦ ¸¸µç´Ù. °¢ ÆÄÆ®ÀÇ ¿À¸¥ÂÊ ³¡À» ÁöÁ¤Çϱâ À§ÇØ SB_SETPARTS ¸Þ½ÃÁö¸¦ º¸³½´Ù. wParam¿¡´Â ÆÄÆ®ÀÇ °³¼öÀÎ 4¸¦ ÁÖ°í lParam¿¡´Â °¢ ÆÄÆ®ÀÇ ¿À¸¥ÂÊ ÁÂÇ¥¸¦ ´ãÀº Á¤¼öÇü ¹è¿À» Àü´ÞÇØ ÁÖ¸é µÈ´Ù. »óŶõÀº lParamÀ¸·Î Àü´ÞµÈ ¹è¿·ÎºÎÅÍ ÁÂÇ¥¸¦ ²¨³» °¢ ÆÄÆ®ÀÇ Å©±â¸¦ Á¶Á¤ÇÑ´Ù.
Ư¼öÇÑ °æ¿ì·Î ¿À¸¥ÂÊ ³¡ ÆÄÆ®ÀÇ ÆøÀÌ -1·Î ÁöÁ¤µÇ¸é ³ª¸ÓÁö ³²Àº ¿µ¿ª Àüü¸¦ ä¿î´Ù. ¸¸¾à Á¦ÀÏ ¿ÞÂÊ ÆÄÆ®°¡ ³ª¸ÓÁö ÆøÀ» ´Ù »ç¿ëÇϵµ·Ï ÇÏ°í ½Í´Ù¸é Á÷Á¢ ºÎ¸ð À©µµ¿ìÀÇ ÆøÀ¸·ÎºÎÅÍ ÆÄÆ®ÀÇ ÆøÀ» °è»êÇØ ÁÖ¾î¾ß ÇÑ´Ù.
»óŶõ¿¡ ÅØ½ºÆ®¸¦ Ãâ·ÂÇÒ ¶§´Â SB_SETTEXT ¸Þ½ÃÁö¸¦ º¸³½´Ù. ¿¹Á¦¿¡¼´Â ÀÌ ÀÏÀ» SetStateText ÇÔ¼ö°¡ ¼öÇàÇϰí ÀÖ´Ù. wParamÀ¸·Î ÅØ½ºÆ®¸¦ ¼³Á¤ÇÒ ÆÄÆ® ¹øÈ£¸¦ ÁÖ°í lParamÀ¸·Î ¹®ÀÚ¿À» ÁÖµÇ wParam¿¡ ´ÙÀ½°ú °°Àº ÆÄÆ®ÀÇ Å¸ÀÔÀ» OR ¿¬»êÀÚ·Î ÆÄÆ® ¹øÈ£¿Í ÇÔ²² Á¤ÇØÁÙ ¼ö ÀÖ´Ù.
ŸÀÔ |
¼³¸í |
SBT_NOBORDERS |
°æ°è¼±À» ±×¸®Áö ¾Ê´Â´Ù. |
SBT_OWNERDRAW |
ºÎ¸ð À©µµ¿ì°¡ ÅØ½ºÆ®¸¦ Á÷Á¢ ±×¸®µµ·Ï ÇÑ´Ù. |
SBT_POPOUT |
¾ç°¢ÀÇ °æ°è¼± ¾È¿¡ ÅØ½ºÆ®¸¦ Ãâ·ÂÇÑ´Ù. |
SBT_RTLREADING |
¿À¸¥ÂÊ¿¡¼ ¿ÞÂÊÀ¸·Î ¹®ÀÚ¿À» Ãâ·ÂÇÑ´Ù. |
0 |
¾Æ¹« ŸÀÔÀ» ÁÖÁö ¾ÊÀ¸¸é À½°¢ÀÇ °æ°è¼± ¾È¿¡ ÅØ½ºÆ®¸¦ Ãâ·ÂÇÑ´Ù. |
¿¹¸¦ µé¾î ¾ç°¢ÀÇ °æ°è¼±À» ±×¸®·Á¸é ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÈ´Ù.
SendMessage(hState, SB_SETTEXT, 1 | SBT_POPOUT, (LPARAM)str);
1¹ø ÆÄÆ®¸¸ ¾ç°¢ °æ°è¼±À¸·Î ÁöÁ¤ÇØ º¸¾Ò´Ù. À½°¢ °æ°è¼±Àº ¾¦ µé¾î°£ ¸ð¾çÀÌÁö¸¸ ¾ç°¢ °æ°è¼±Àº Æ¢¾î ³ª¿Í ÀÖ´Â ¸ð¾çÀÌ µÈ´Ù.