Windows µµ±¸ ¸ðÀ½ °ø¿ë ÄÁÆ®·ÑÀº ±âº» Á¦°ø »ç¿ëÀÚ ÁöÁ¤ ±â´É, »ç¿ëÀÚ°¡ »ðÀÔÇÒ ¼ö ÀÖ´Â ½Ã½ºÅÛ Á¤ÀÇ »ç¿ëÀÚ ÁöÁ¤ ´ëÈ »óÀÚ¸¦ Æ÷ÇÔ ÇÏ ¿© »èÁ¦ ¶Ç´Â µµ±¸ ¸ðÀ½ ´ÜÃ߸¦ ´Ù½Ã Á¤·Ä ÇÕ´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ »ç¿ëÀÚ ÁöÁ¤ ±â´ÉÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù ¹× ¸Þ½ÃÁö »ç¿ëÀÚ »ç¿ëÀÚ µµ±¸ ¸ðÀ½À» ÁöÁ¤ÇÒ ¼ö ÀÖ´Â Á¤µµ Á¦¾î ¿©ºÎ¸¦ °áÁ¤ ÇÕ´Ï´Ù.
»ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù ÀÌ·¯ÇÑ »ç¿ëÀÚ ÁöÁ¤ ±â´ÉÀº »ç¿ëÀÚ¿¡ °Ô CCS_ADJUSTABLE ½ºÅ¸ÀÏ µµ±¸ ¸ðÀ½À» Á¦°ø ÇÔÀ¸·Î½á. »ç¿ëÀÚ ÁöÁ¤ ±â´É ´ÜÃ߸¦ »õ À§Ä¡·Î µå·¡±× Çϰųª µµ±¸ ¸ðÀ½¿¡¼ ²ø¾î ´ÜÃ߸¦ Á¦°Å ÇÏ·Á¸é »ç¿ëÀÚ¸¦ Çã¿ë ÇÕ´Ï´Ù. ¶ÇÇÑ, »ç¿ëÀÚ »ç¿ëÀÚ°¡ Ãß°¡, »èÁ¦ ¹× µµ±¸ ¸ðÀ½ ´ÜÃ߸¦ ´Ù½Ã Á¤·ÄÇÒ ¼ö ÀÖ´Â µµ±¸ ¸ðÀ½ »ç¿ëÀÚ ÁöÁ¤ ´ëÈ »óÀÚ¸¦ Ç¥½Ã ÇÏ·Á¸é µµ±¸ ¸ðÀ½À» µÎ ¹ø Ŭ¸¯ ¼ö ÀÖ½À´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ »ç¿ëÀÚ ÁöÁ¤ ¸â¹ö ÇÔ¼ö¸¦ »ç¿ë ÇÏ ¿© ´ëÈ »óÀÚ¸¦ Ç¥½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù.
µµ±¸ ¸ðÀ½ ÄÁÆ®·ÑÀº »ç¿ëÀÚ ÁöÁ¤ ÇÁ·Î¼¼½ºÀÇ °¢ ´Ü°è¿¡¼ ºÎ¸ð â¿¡ ¾Ë¸² ¸Þ½ÃÁö¸¦ º¸³À´Ï´Ù. »ç¿ëÀÚ°¡ SHIFT ۸¦ º¸À¯ ÇÏ °í ´ÜÃ߸¦ ²ø¾î ½ÃÀÛ ÇÏ´Â °æ¿ì µµ±¸ ¸ðÀ½ ²ø±â ÀÛ¾÷À» ÀÚµ¿À¸·Î ó¸® ÇÕ´Ï´Ù. µµ±¸ ¸ðÀ½ ´ÜÃ߸¦ »èÁ¦ÇÒ ¼ö ÀÖ½À´Ï´Ù ¿©ºÎ¸¦ °áÁ¤ ÇÏ·Á¸é ºÎ¸ð â¿¡ TBN_QUERYDELETE ¾Ë¸² ¸Þ½ÃÁö¸¦ º¸³À´Ï´Ù. ²ø±â ÀÛ¾÷ÀÌ ºÎ¸ð â FALSE¸¦ ¹Ýȯ ÇÏ´Â °æ¿ì Á¾·á µË´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é, µµ±¸ ¸ðÀ½ ¸¶¿ì½º ÀԷ ĸó ¹× »ç¿ëÀÚ°¡ ¸¶¿ì½º ´ÜÃ߸¦ ³õÀ» ¶§±îÁö ±â´Ù¸³´Ï´Ù.
¸¶¿ì½º ´ÜÃ߸¦ ³õÀ», toolbar ÄÁÆ®·Ñ ¸¶¿ì½º Ä¿¼ÀÇ À§Ä¡¸¦ °áÁ¤ ÇÕ´Ï´Ù. Ä¿¼°¡ µµ±¸ ¸ðÀ½ ¹ÛÀ¸·Î ´ÜÃ߸¦ »èÁ¦ µË´Ï´Ù. Ä¿¼°¡ ´Ù¸¥ µµ±¸ ¸ðÀ½ ´ÜÃß, µµ±¸ ¸ðÀ½ ´ÜÃß ÁÖ¾îÁøµÈ ¹öưÀÇ ¿ÞÂÊ¿¡ »ðÀÔ µÉ ¼ö ÀÖ½À´Ï´Ù È®ÀÎ ÇÏ·Á¸é ºÎ¸ð â¿¡ TBN_QUERYINSERT ¾Ë¸² ¸Þ½ÃÁö¸¦ º¸³À´Ï´Ù. ºÎ¸ð âÀÌ TRUE; ¹Ýȯ ÇÏ´Â °æ¿ì ´ÜÃß »ðÀÔ ±×·¸Áö ¾ÊÀ¸¸é, ±×°Í ÀºÀÔ´Ï´Ù. µµ±¸ ¸ðÀ½ ²ø±â ÀÛ¾÷ÀÇ ³¡À» ½ÅÈ£¸¦ TBN_TOOLBARCHANGE ¾Ë¸² ¸Þ½ÃÁö¸¦ º¸³À´Ï´Ù.
»ç¿ëÀÚ°¡ SHIFT ۸¦ ´©¸¥ ä ¾Ê°í ²ø±â ÀÛ¾÷À» ½ÃÀÛ, µµ±¸ ¸ðÀ½ ÄÁÆ®·Ñ ¼ÒÀ¯ÀÚ Ã¢À¸·Î TBN_BEGINDRAG ¾Ë¸² ¸Þ½ÃÁö¸¦ º¸³À´Ï´Ù. °íÀ¯ÇÑ ´ÜÃß ²ø±â Äڵ带 ±¸Çö ÇÏ´Â ÀÀ¿ë ÇÁ·Î±×·¥À» ²ø±â ÀÛ¾÷À» ½ÃÀÛ ½ÅÈ£·ÎÀÌ ¸Þ½ÃÁö¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. µµ±¸ ¸ðÀ½ ²ø±â ÀÛ¾÷ÀÇ ³¡À» ½ÅÈ£¸¦ TBN_ENDDRAG ¾Ë¸² ¸Þ½ÃÁö¸¦ º¸³À´Ï´Ù.
µµ±¸ ¸ðÀ½ ÄÁÆ®·Ñ »ç¿ëÀÚ´Â µµ±¸ ¸ðÀ½ »ç¿ëÀÚ ÁöÁ¤ ´ëÈ »óÀÚ¸¦ »ç¿ë ÇÏ ¿© µµ±¸ ¸ðÀ½À» »ç¿ëÀÚ ÁöÁ¤ ÇÏ´Â °æ¿ì ¾Ë¸² ¸Þ½ÃÁö¸¦ º¸³À´Ï´Ù. µµ±¸ ¸ðÀ½ µµ±¸ ¸ðÀ½À» µÎ ¹ø Ŭ¸¯ÇÒ ÇÏÁö¸¸ Àü¿¡ ´ëÈ »óÀÚ°¡ »ý¼º ÈÄ TBN_BEGINADJUST ¾Ë¸² ¸Þ½ÃÁö¸¦ º¸³À´Ï´Ù. ±×·± ´ÙÀ½, µµ±¸ ¸ðÀ½ ÀÏ·ÃÀÇ µµ±¸ ¸ðÀ½ ´ÜÃ߸¦ »ðÀÔÇÒ ¼ö ÀÖ´ÂÁö ¿©ºÎ¸¦ È®ÀÎ ÇÏ·Á¸é TBN_QUERYINSERT ¾Ë¸² ¸Þ½ÃÁö¸¦ º¸³»±â ½ÃÀÛ ÇÕ´Ï´Ù. ºÎ¸ð âÀÌ TRUE¸¦ ¹Ýȯ ÇÏ´Â °æ¿ì µµ±¸ ¸ðÀ½ TBN_QUERYINSERT ¾Ë¸² ¸Þ½ÃÁö¸¦ º¸³»´Â °ÍÀ» ÁßÁö ÇÕ´Ï´Ù. µµ±¸ ¸ðÀ½ ´ëÈ »óÀÚ¸¦ ÆÄ±« ºÎ¸ð âÀÇ ¸ðµç ´ÜÃß¿¡ ´ë ÇÑ TRUE ¹Ýȯ ÇÏÁö ¾ÊÀ¸¸é,¡£
±×·± ´ÙÀ½, µµ±¸ ¸ðÀ½ ÄÁÆ®·Ñ µµ±¸ ¸ðÀ½¿¡¼ µµ±¸ ¸ðÀ½¿¡ °¢ ´ÜÃß¿¡ ´ë ÇÑ TBN_QUERYDELETE ¾Ë¸² ¸Þ½ÃÁö¸¦ Àü¼Û ÇÏ ¿© ¾î¶² ´ÜÃß °æ¿ì »èÁ¦ µÉ ¼ö ÀÖ½À´Ï´Ù °áÁ¤ ÇÕ´Ï´Ù. ºÎ¸ð âÀÌ ¹Ýȯ TRUE ´Â ´ÜÃß »èÁ¦ µÉ ¼ö ÀÖ½À´Ï´Ù; ±×·¸Áö ¾ÊÀ¸¸é, ±×°ÍÀº FALSE¸¦ ¹ÝȯÇÕ´Ï´Ù. µµ±¸ ¸ðÀ½ ´ëÈ »óÀÚ¿¡ ¸ðµç µµ±¸ ¸ðÀ½ ´ÜÃ߸¦ Ãß°¡ ÇÏÁö¸¸ »èÁ¦ÇÒ ¼ö ÀÖ½À´Ï´Ù ±× ȸ»ö¡£
Toolbar ÄÁÆ®·Ñ¿¡ µµ±¸ ¸ðÀ½ »ç¿ëÀÚ ÁöÁ¤ ´ëÈ »óÀÚ¿¡¼ ´ÜÃß¿¡ ´ë ÇÑ Á¤º¸°¡ ÇÊ¿ä ÇÏ´Â ¶§¸¶´Ù ´ÜÃß Á¤º¸¸¦ ÇÊ¿ä·Î ±×°ÍÀÇ À妽º ¹× TBNOTIFY ±¸Á¶Ã¼ÀÇ ÁÖ¼Ò¸¦ ÁöÁ¤ Çϸé TBN_GETBUTTONINFO ¾Ë¸² ¸Þ½ÃÁö¸¦ º¸³À´Ï´Ù. ºÎ¸ð â ±¸Á¶ °ü·Ã Á¤º¸·Î ä¿ö¾ß ÇÕ´Ï´Ù.
µµ±¸ ¸ðÀ½ »ç¿ëÀÚ ÁöÁ¤ ´ëÈ »óÀÚ¿¡ µµ¿ò¸» ´ÜÃß¿Í ¸®¼Â ´ÜÃß Æ÷ÇÔ µÇ¾î ÀÖ½À´Ï´Ù. µµ¿ò¸» ´ÜÃ߸¦ ¼±Åà ÇÏ¸é µµ±¸ ¸ðÀ½ ÄÁÆ®·Ñ TBN_CUSTHELP ¾Ë¸² ¸Þ½ÃÁö¸¦ º¸³À´Ï´Ù. ºÎ¸ð â µµ¿ò¸» Á¤º¸¸¦ Ç¥½Ã ÇÏ ¿© ÀÀ´ä ÇØ¾ß ÇÕ´Ï´Ù. ¸®¼Â ¹öưÀ» ¼±Åà ÇÏ¸é ´ëÈ »óÀÚ´Â TBN_RESET ¾Ë¸² ¸Þ½ÃÁö¸¦ º¸³À´Ï´Ù. µµ±¸ ¸ðÀ½ ´ëÈ »óÀÚ¸¦ ÃʱâÈ ÇÏ´ÂÀÌ ¸Þ½ÃÁö ½ÅÈ£¡£
ÀÌ·¯ÇÑ ¸Þ½ÃÁö´Â ¸ðµç WM_NOTIFY ¸Þ½ÃÁö ±×¸®°í ¼ÒÀ¯ÀÚ Ã¢¿¡¼ ¼ÒÀ¯ÀÚ Ã¢ÀÇ ¸Þ½ÃÁö ¸Ê¿¡ ´ÙÀ½ Çü½ÄÀÇ ¸Þ½ÃÁö ¸Ê Ç׸ñÀ» Ãß°¡ ÇÏ ¿© ó¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù.:
ON_NOTIFY ( wNotifyCode, idControl, memberFxn )
wNotifyCode
TBN_BEGINADJUST ¿Í °°Àº ¾Ë¸² ¸Þ½ÃÁö ½Äº°ÀÚ Äڵ塣
idControl
¾Ë¸²À» º¸³»´Â ÄÁÆ®·ÑÀÇ ½Äº°ÀÚ¡£
memberFxn
ÀÌ ¾Ë¸²À» ¹ÞÀ¸¸é È£Ãâ µÉ ¸â¹ö ÇÔ¼ö¡£
¸â¹ö ÇÔ¼ö ´ÙÀ½ ÇÁ·ÎÅä ŸÀÔÀ¸·Î ¼±¾ðÇÒ °Í À̶ó°í:
afx_msg void memberFxn( NMHDR * pNotifyStruct, LRESULT * °á°ú );
¾Ë¸² ¸Þ½ÃÁö 󸮱â´Â °ªÀ» ¹Ýȯ ÇÏ´Â °æ¿ì ±×°ÍÀº °á°ú ÀÇÇØ °¡¸®Å°´Â LRESULT ¿¡ ³Ö¾î ÇØ¾ß¡£
°¢ ¸Þ½ÃÁö¿¡ ´ë ÇÑ pNotifyStruct NMHDR ±¸Á¶ ¶Ç´Â TBNOTIFY ±¸Á¶Ã¼¸¦ °¡¸®Åµ´Ï´Ù. ÀÌ·¯ÇÑ ±¸Á¶´Â ¾Æ·¡¿¡¼ ¼³¸í:
NMHDR ±¸Á¶´Â ´ÙÀ½°ú °°Àº ±¸¼º¿øÀÌ Æ÷ÇÔ µÇ¾î ÀÖ½À´Ï´Ù.:
typedef struct tagNMHDR {
HWND hwndFrom; nbsp; / / ÄÁÆ®·ÑÀÇ ÇÚµé ¸Þ½ÃÁö º¸³»±â
UINT idFrom; / / ¸Þ½ÃÁö¸¦ º¸³»´Â ÄÁÆ®·ÑÀÇ ½Äº°ÀÚ
UINT ÄÚµå;? / / ¾Ë¸² ÄÚµå; ¾Æ·¡ ÂüÁ¶
} NMHDR(&N)
hwndFrom
¾Ë¸²À» º¸³»´Â ÄÁÆ®·ÑÀÇ Ã¢ ÇÚµéÀÔ´Ï´Ù. CWnd::FromHandle ¸¦ »ç¿ë ÇÏ ¿©ÀÌ ÇÚµé CWnd Æ÷ÀÎÅ͸¦ º¯È¯ ÇÏ·Á¸é¡£
idFrom
¾Ë¸²À» º¸³»´Â ÄÁÆ®·ÑÀÇ ½Äº°ÀÚ¡£
ÄÚµå
¾Ë¸² ÄÚµåÀÔ´Ï´Ù. ÀÌ ¸â¹ö TTN_NEEDTEXT, TBN_BEGINADJUST µîÀÇ ÄÁÆ®·Ñ Çü½Ä¿¡ ƯÁ¤ °ªÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù. ¶Ç´Â ±×°ÍÀº ¾Æ·¡ ³ª¿ µÈ ÀϹÝÀûÀÎ ¾Ë¸² °ª Áß Çϳª°¡ µÉ ¼ö ÀÖ½À´Ï´Ù.:
´ÙÀ½°ú °°Àº ¸â¹ö¸¦ Æ÷ÇÔ ÇÏ´Â TBNOTIFY ±¸Á¶:
typedef struct {
NMHDR hdr; / / ¸ðµç WM_NOTIFY ¸Þ½ÃÁö¿¡ ÀϹÝÀûÀÎ Á¤º¸
int iItem; / / ¾Ë¸² ¿¬°ü µÈ ´ÜÃßÀÇ À妽º
TBBUTTON tbButton; / / ¿¬°ü µÈ ¾Ë¸² ´ÜÃß¿¡ ´ë ÇÑ Á¤º¸
int cchText; nbsp;? / / ´ÜÃß ÅØ½ºÆ®¿¡ ÀÖ´Â ¹®ÀÚÀÇ °³¼ö
LPSTR lpszText; / / ÁÖ¼Ò ´ÜÃß ÅØ½ºÆ®
}±îÁö TBNOTIFY * LPTBNOTIFY(&N)
hdr
¸ðµç WM_NOTIFY ¸Þ½ÃÁö¿¡ ÀϹÝÀûÀÎ Á¤º¸¡£
iItem
¿¬°ü µÈ ¾Ë¸² ´ÜÃßÀÇ À妽º¡£
tbButton
ÅëÁö¿Í °ü·Ã µÈ µµ±¸ ¸ðÀ½ ´ÜÃß¿¡ ´ë ÇÑ Á¤º¸°¡ µé¾î ÀÖ´Â TBBUTTON ±¸Á¶Ã¼¡£
cchText
´ÜÃß ÅØ½ºÆ®ÀÇ ¹®ÀÚ ¼ö¡£
lpszText
´ÜÃß ÅØ½ºÆ®¿¡ ´ë ÇÑ Æ÷ÀÎÅÍ¡£
µµ±¸ ¸ðÀ½ º¸³»´Â ¾Ë¸² ´ÙÀ½°ú °°½À´Ï´Ù.: