À©µµ¿ì ÇÁ·Î±×·¡¹Ö ÀÚ·á |
---|
Á¦¸ñ | Child Window #2 1998/07/15 (09:52) |
À̸§ | ±èÈ¿¿ø |
¹øÈ£ | 28 |
Á¶È¸ | 366 |
º»¹® |
< Child Window > < üũ »óÀÚ > üũ »óÀÚ´Â ÅؽºÆ®¸¦ °¡Áø »ç°¢Çü »óÀÚÀ̸ç, ÅؽºÆ®´Â ÀϹÝÀûÀ¸·Î ¿À¸¥ÂÊ¿¡ ³ªÅ¸³´Ù. ±×·¯³ª, BS_LEFTTEXT¸¦ Æ÷ÇÔÇϸé,¿ÞÂÊ¿¡ ³ªÅ¸³ª°Ô ÇÒ ¼ö ÀÖ´Ù. BS_CHECKBOXÀÇ °æ¿ì¿¡´Â BM_SETCHECK¸Þ½ÃÁö¸¦ º¸³»¼, üũ Ç¥½Ã¸¦ ÇØ¾ß ÇÑ´Ù. wParamÀÎÀڴ üũ Ç¥½Ã¸¦ Çϱâ À§Çؼ´Â 1·Î, Á¦°ÅÇϱâ À§Çؼ´Â 0À¸·Î ¼³Á¤ÇÑ´Ù. BM_GETCHECK¸¦ ÀÌ¿ëÇÏ¿©, »óŸ¦ ¾òÀ» ¼ö ÀÖ´Ù. ÄÁÆ®·Ñ·ÎºÎÅÍ WM_COMMAND¸Þ½ÃÁö¸¦ ó¸®ÇÒ ¶§, XÇ¥½Ã¸¦ Åä±ÛÇϱâ À§ÇØ ´ÙÀ½°ú °°Àº Äڵ带 »ç¿ëÇÑ´Ù. SendMessage((HWND lParam, BM_SETCHECK, (WPARAM) !SendMessage((HWND lParam, BM_GETCHECK,0,0),0); ´ÙÀ½°ú °°ÀÌ Çϸé X·Î üũ »óÀÚ¸¦ ÃʱâÈÇÒ ¼ö ÀÖ´Ù. SendMessage(hwndButton, BM_GETCHECK,1,0); BS_AUTOCHECKBOX¿¡¼´Â ÀÚµ¿ÀûÀ¸·Î on/off¸¦ Åä±ÛÇϸç, À©µµ¿ì ÇÁ·Î½ÃÀú´Â WM_COMMAND¸¦ ¹«½ÃÇÒ ¼ö ÀÖ°í, ´ÜÃßÀÇ »óŸ¦ ¾ò±â À§ÇØ ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù. iCheck=(int) SendMessage(hwndButton, BM_GETCHECK,0,0); üũµÇ¾úÀ¸¸é iCheckÀÇ °ªÀº TRUE³ª 0ÀÌ ¾Æ´Ñ °ªÀ̸ç, ±×·¸Áö ¾ÊÀ¸¸é FALSE³ª 0ÀÌ´Ù. < ¶óµð¿À ´ÜÃß > üũ »óÀÚ¿Í ´Þ¸® ¶óµð¿À ´ÜÃß´Â Åä±Û·Î ÀÛµ¿ÇÏÁö ¾Ê´Â´Ù. Áï, ¶óµð¿À ´ÜÃ߸¦ µÎ ¹ø°·Î ´·¶À» ¶§¿¡µµ ±× »óÅ´ ¹Ù²îÁö ¾ÊÀº ä·Î ³²¾Æ ÀÖ´Ù. ¶óµð¿À ´ÜÃß¿¡¼´Â WM_COMMAND¸Þ½ÃÁö¸¦ ¹Þ¾ÒÀ» ¶§, wParamÀÌ 1ÀÎ BM_SETCHECK¸Þ½ÃÁö¸¦ º¸³» üũ¸¦ ÇØ¾ß ÇÑ´Ù. SendMessage(hwndButton,BM_SETCHECK,1,0); °°Àº ±×·ìÀÇ ´Ù¸¥ ´ÜÃß¿¡´Â wParamÀÌ 1À¸·Î üũ¸¦ Ãë¼ÒÇÒ ¼ö ÀÖ´Ù. SendMessage(hwndButton,BM_SETCHECK,0,0); < ´ÜÃß ÅؽºÆ® º¯°æÇϱâ > ´ÜÃß³ª À©µµ¿ì¿¡ ÀÖ´Â ÅؽºÆ®¸¦ º¯°æÇÒ ¼ö ÀÖ´Ù. SetWindowText(hwnd,pszString); À©µµ¿ìÀÇ ÇöÀç ÅؽºÆ®¸¦ ¾ò±â À§Çؼ´Â, iLength=GetWindowText(hwnd,pszBuffer,iMaxLength); iMaxLengthÀÎÀÚ´Â pszBuffer¿¡ ÀÇÇØ ÁöÁ¤µÈ ¹öÆÛ·Î º¹»çÇÒ ¹®ÀÚÀÇ ÃÖ´ë °³¼ö¸¦ ÁöÁ¤ÇÑ´Ù. iLength=GetWindowTextLength(hwnd); ·Î ƯÁ¤ ¹®ÀÚ¿¿¡ ´ëÇÑ ÇÁ·Î±×·¥À» ÁغñÇÒ ¼ö ÀÖ´Ù. < ´ÜÃß º¸À̱â¿Í È°¼ºÈÇϱâ > Â÷Àϵå À©µµ¿ì Ŭ·¡½º¿¡¼ WS_VISIBLEÀ» Æ÷ÇÔÇÏÁö ¾Ê´Â´Ù¸é, ShowWindow¸¦ È£ÃâÇÒ ¶§±îÁö´Â Â÷Àϵå À©µµ¿ì´Â Ç¥½ÃµÇÁö ¾Ê´Â´Ù. ShowWindow(hwndChild, SW_SHOWNORMAL); À©µµ¿ì Ŭ·¡½º¿¡¼ ES_VISIBLEÀ» Æ÷ÇÔÇϸé, ShowWindowÇÔ¼ö¸¦ È£ÃâÇÒ ÇÊ¿ä°¡ ¾ø´Ù. ´ÙÀ½°ú °°ÀÌ À©µµ¿ì¸¦ ¼û±æ ¼ö ÀÖ´Ù. ShowWindow(hwndChild,SW_HIDE); ´ÙÀ½Àº ÇöÀç Â÷Àϵå À©µµ¿ì°¡ º¸ÀÌ´ÂÁö ¾Ê´ÂÁö¸¦ ¾Ë ¼ö ÀÖ´Ù. IsWindowVisible(hwndChild); ´ÙÀ½Àº Â÷Àϵå À©µµ¿ì¸¦ È°¼ºÈÇÏ°í, ºñÈ°¼ºÈÇÒ ¼ö ÀÖ´Ù. EnableWindow(hwndChild,FALSE); // ºñÈ°¼ºÈ EnableWindow(hwndChild,TRUE); // È°¼ºÈ IsEnableWindow(hwndChild); // È°¼ºÈ¿©ºÎ < ´ÜÃß¿Í ÀÔ·Â Æ÷Ä¿½º > Â÷Àϵå À©µµ¿ì ÄÁÆ®·ÑÀÌ ÀÔ·Â Æ÷Ä¿½º¸¦ °¡Áö°í ÀÖ´Ù¸é, ¸¶¿ì½º°ú °°Àº ½ºÆäÀ̽º ¹Ù¿¡¸¸ ÀÀ´äÇÑ´Ù. ±×·¯³ª, ÇÁ·Î±×·¥¿¡¼ Å°º¸µå ó¸® Á¦¾î¸¦ ÀҴ´ٴ ¹®Á¦Á¡ÀÌ ÀÖ´Ù. ´ÙÀ½°ú °°ÀÌ Çϸé, Â÷Àϵå À©µµ¿ì°¡ ÀÔ·Â Æ÷Ä¿½º¸¦ ¾òÀ» ¶§¿¡, ÀÚ½ÅÀÇ ÀÔ·Â Æ÷Ä¿½º¸¦ ÀúÀåÇÑ´Ù. case WM_KILLFOCUS: if(hwnd==GetParent((HWND) wParam)) SetFocus(hwnd); return 0; * WM_KILLFOCUS¸Þ½ÃÁö´Â wParamÀÎÀÚ·Î, ÀÔ·Â Æ÷Ä¿½º¸¦ ¹Þ´Â ¿ì´Ïµµ¿ìÀÇ ÇÚµéÀ» °¡Áø´Ù. ±×·¯³ª, ÀÌ ¹æ¹ýÀº ´ÜÃß°¡ °áÄÚ ÀÔ·Â Æ÷Ä¿½º¸¦ ¾òÀ» ¼ö ¾øÀ¸¸ç, ´ÜÃß°¡ ½ºÆäÀ̽º ¹Ù¿¡ °áÄÚ ÀÀ´äÇÒ ¼ö ¾øÀ½À» ¶æÇÑ´Ù. °¡Àå ÁÁÀº ¹æ¹ýÀº, TabÅ°¸¦ ÀÌ¿ëÇÏ¿©, ÀÔ·Â Æ÷Ä¿½º¸¦ ´ÜÃß¿¡¼ ´Ù¸¥ °÷À¸·Î ¿Å±æ ¼ö ÀÖ´Â ¹æ¾ÈÀ» Á¦½ÃÇÏ´Â °ÍÀÌ´Ù. window SubclassingÀ̶ó´Â ±â¹ýÀ¸·Î ÇØ°áÇÒ ¼ö ÀÖ´Ù. |