â ¼­ºêŬ·¡½Ì

ÇÏÀ§ âÀÇ ÀνºÅϽº, SetWindowLong ÇÔ¼ö¸¦ È£Ãâ ÇÏ °í GWL_WNDPROC Ç÷¡±×¿Í ÇÏÀ§ ÇÁ·Î½ÃÀú¿¡ ´ë ÇÑ Æ÷ÀÎÅÍ ÇÏÀ§ â ÇÚµéÀ» ÁöÁ¤ ÇÕ´Ï´Ù. SetWindowLong ¿ø·¡ â ÇÁ·Î½ÃÀú;¿¡ Æ÷ÀÎÅ͸¦ ¹ÝȯÇÕ´Ï´Ù. ÀÌ Æ÷ÀÎÅ͸¦ »ç¿ë ÇÏ ¿© ¿ø·¡ ÇÁ·Î½ÃÀú¿¡ ¸Þ½ÃÁö¸¦ Àü´ÞÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÏÀ§ â ÇÁ·Î½ÃÀú CallWindowProc ÇÔ¼ö¸¦ »ç¿ë ÇÏ ¿© ¿ø·¡ â ÇÁ·Î½ÃÀú¸¦ È£Ãâ ÇØ¾ß ÇÕ´Ï´Ù.

´ÙÀ½ ¿¹Á¦¿¡¼­´Â ¾î¶»°Ô ¼­ºê Ŭ·¡½º ÆíÁýÀÇ ÀνºÅϽº Á¦¾î ´ëÈ­ »óÀÚ¿¡¼­. ÇÏÀ§ â ÇÁ·Î½ÃÀú ÆíÁý ÄÁÆ®·Ñ¿¡¼­ ÄÁÆ®·Ñ¿¡ ÀÔ·ÂµÈ Æ÷Ä¿½º°¡ ¶§¸¶´Ù enter¿Í tab ۸¦ Æ÷ÇÔ ÇÏ ¿© ¸ðµç Űº¸µå ÀÔ·ÂÀ» ¹ÞÀ» ¼ö ÀÖµµ·Ï.

WNDPROC wpOrigEditProc; 
 
LRESULT APIENTRY EditBoxProc (
    HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) {HWND hwndEdit; 
 
    switch(uMsg) {WM_INITDIALOG °æ¿ì: / / ÆíÁý ÄÁÆ®·Ñ¿¡ ´ë ÇÑ ÇÚµéÀ» °Ë»ö ÇÕ´Ï´Ù. 
            hwndEdit = GetDlgItem (hwndDlg, ID_EDIT); 
 
            / / ¼­ºê Ŭ·¡½º ÆíÁý Á¦¾î. 
            wpOrigEditProc = (WNDPROC) SetWindowLong (hwndEdit, GWL_WNDPROC, EditSubclassProc (LONG)); 
            / / / / ÃʱâÈ­ ÀýÂ÷¸¦ °è¼Ó ÇÕ´Ï´Ù. 
            / / TRUE¸¦ ¹Ýȯ ÇÕ´Ï´Ù. 
 
        WM_DESTROY »ç·Ê: / / ¼­ºê Ŭ·¡½º ÆíÁý ÄÁÆ®·Ñ¿¡¼­ Á¦°Å ÇÕ´Ï´Ù. 
            SetWindowLong (hwndEdit, GWL_WNDPROC, (LONG) wpOrigEditProc); 
            / / / / Á¤¸® ÀýÂ÷¸¦ °è¼Ó ÇÕ´Ï´Ù. 
            / / ÈÞ½Ä; 
    } FALSE; ¹Ýȯ 
        UNREFERENCED_PARAMETER(lParam); 
} / / ÇÏÀ§ ÇÁ·Î½ÃÀú LRESULT APIENTRY EditSubclassProc (
    HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {°æ¿ì (uMsg = WM_GETDLGCODE) DLGC_WANTALLKEYS; ¹Ýȯ 
 
    ¹Ýȯ CallWindowProc (wpOrigEditProc, hwnd, uMsg, wParam, lParam); 
} 
 

 

Index