Àμö |
wParam : Űº¸µå Æ÷Ä¿½º¸¦ ¹ÞÀ» ÄÁÆ®·ÑÀÇ ÇÚµé. Åë»ó ÀÌ ÄÁÆ®·ÑÀº ÅÇ ¼ø¼°¡ °¡Àå ºü¸£°í º¸ÀÌ¸ç »ç¿ë ±ÝÁö »óŰ¡ ¾Æ´Ï°í WS_TABSTOP ½ºÅ¸ÀÏÀ» °¡Áø ù¹øÂ° ÄÁÆ®·ÑÀÌ´Ù. ÀÌ ¸Þ½ÃÁö¿¡¼ TRUE¸¦ ¸®ÅÏÇϸé wParamÀ¸·Î Àü´ÞµÈ ÄÁÆ®·Ñ¿¡ Æ÷Ä¿½º°¡ ¸ÂÃß¾îÁø´Ù. lParam : ´ëÈ»óÀÚ ÃʱâÈ Á¤º¸°¡ Àü´ÞµÈ´Ù. DialogBox ÇÔ¼ö·Î ´ëÈ»óÀÚ¸¦ È£ÃâÇÑ °æ¿ì´Â 0ÀÌ Àü´ÞµÇ¸ç DialogBoxParam, CreateDialogParam µîÀÇ ÇÔ¼ö·Î ´ëÈ»óÀÚ¸¦ È£ÃâÇßÀ» ¶§¸¸ Àü´ÞµÈ´Ù. ´ëÈ»óÀÚ·Î Àü´ÞµÇ´Â Àμö°ª¿¡ ÇØ´çÇϸç ÀÌ Àμö¿¡ µû¶ó ´ëÈ»óÀÚÀÇ ¸ð¾çÀ̳ª µ¿ÀÛÀ» ´Ù¸£°Ô Á¤ÀÇÇÒ ¼ö ÀÖ´Ù. ÇÁ·ÎÆÛƼ ½ÃÆ®ÀÇ °æ¿ì lParamÀº PROPSHEETPAGE ±¸Á¶Ã¼ÀÇ Æ÷ÀÎÅͰ¡ Àü´ÞµÈ´Ù. |
¼³¸í |
ÀÌ ¸Þ½ÃÁö´Â ´ëÈ»óÀÚ°¡ ¸Þ¸ð¸®¿¡ ¸¸µé¾îÁö°í ȸ鿡 º¸À̱â Á÷Àü¿¡ º¸³»Áø´Ù. ±×·¡¼ ´ëÈ»óÀÚ³»ÀÇ ¸ðµç ÄÁÆ®·ÑÀ» ÂüÁ¶ÇÒ ¼ö ÀÖÀ¸¸ç ¾ÆÁ÷ ´ëÈ»óÀÚ°¡ º¸À̱â ÀüÀ̹ǷΠÄÁÆ®·ÑÀÇ Àç¹èÄ¡, »ý¼º, »èÁ¦, ¼Ó¼º º¯°æ µîÀ» ÀÚÀ¯·Ó°Ô ÇÒ ¼ö ÀÖ´Ù. ¿À¹ö·¦µå À©µµ¿ìÀÇ WM_CREATE¿¡ ÇØ´çÇÏ´Â ÇÔ¼öÀÌ¸ç ´ëÈ»óÀÚ°¡ °¡Àå ¸ÕÀú ¹Þ´Â ¸Þ½ÃÁöÀ̹ǷΠÁÖ·Î ´ëÈ»óÀÚ ÃʱâÈ¿¡ ÀÌ ¸Þ½ÃÁö°¡ »ç¿ëµÈ´Ù. ´ëÈ»óÀÚ¿¡ ¼ÓÇÑ ÄÁÆ®·ÑÀ» ÃʱâÈÇÏ´Â °ÍÀÌ ÀϹÝÀûÀÌ¸ç ±âŸ ´ëÈ»óÀÚ µ¿ÀÛ¿¡ ÇÊ¿äÇÑ È¯°æ ¼³Á¤, ¸Þ¸ð¸® ÇÒ´ç, ´ëÈ»óÀÚ À§Ä¡ ¹× ¼Ó¼º º¯°æ µîÀÇ ÀÛ¾÷À» ÇÒ ¼ö ÀÖ´Ù. ¸¸¾à ÃʱâÈÁß¿¡ ½ÇÆÐ¸¦ ÇÏ°Ô µÇ¸é ÀÌ ¸Þ½ÃÁö¸¦ ó¸®ÇÏ´Â µ¿¾È¿¡µµ EndDialog¸¦ È£ÃâÇÏ¿© ´ëÈ»óÀÚ¸¦ Áï½Ã Á¾·áÇÏ´Â °ÍÀÌ °¡´ÉÇÏ´Ù. WM_CREATE¿Í´Â ´Þ¸® ¸®ÅϰªÀ¸·Î ¿¡·¯ ¿©ºÎ¸¦ ¸®ÅÏÇÒ ¼ö ¾øÀ¸¸ç EndDialog ÇÔ¼ö·Î ¿¡·¯ Äڵ带 ¸®ÅÏÇØ¾ß ÇÑ´Ù. |
¸®ÅÏ |
TRUE¸¦ ¸®ÅÏÇϸé wParamÀ¸·Î Àü´ÞµÈ ù¹øÂ° ÄÁÆ®·Ñ¿¡ Æ÷Ä¿½º°¡ ¼³Á¤µÈ´Ù. FALSE¸¦ ¸®ÅÏÇϸé ù¹øÂ° ÄÁÆ®·Ñ·Î Æ÷Ä¿½º¸¦ ¿Å±âÁö ¾ÊÀ¸¹Ç·Î ÀÌ ¸Þ½ÃÁö¸¦ ó¸®ÇÏ´Â µ¿¾È óÀ½ Æ÷Ä¿½º¸¦ ¹ÞÀ» ÄÁÆ®·ÑÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. SetFocus ÇÔ¼ö·Î Æ÷Ä¿½º¸¦ °Á¦·Î À̵¿½ÃŲ °æ¿ì´Â FALSE¸¦ ¸®ÅÏÇØ¾ß ÇÑ´Ù. ÀϹÝÀûÀ¸·Î ´ëÈ»óÀÚÀÇ ¸Þ½ÃÁö´Â 󸮵ǾúÀ¸¸é TRUE¸¦ ¸®ÅÏÇÏ°í ±×·¸Áö ¾ÊÀ¸¸é FALSE¸¦ ¸®ÅÏÇϴµ¥ ÀÌ ¸Þ½ÃÁö¸¸Àº ¿¹¿ÜÀÌ´Ù. |
¿¹Á¦ |
´ÙÀ½ ¿¹Á¦´Â ´ëÈ»óÀÚ Ãʱâȵ¿¾È °¢Á¾ ÄÁÆ®·ÑµéÀ» ÃʱâÈÇÑ´Ù. #include <windows.h> #include "resource.h" BOOL CALLBACK MainDlgProc(HWND hDlg,UINT iMessage,WPARAM wParam,LPARAM lParam); HINSTANCE g_hInst; HWND hDlgMain; int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance ,LPSTR lpszCmdParam,int nCmdShow) { g_hInst=hInstance; DialogBox(g_hInst, MAKEINTRESOURCE(IDD_DIALOG1), HWND_DESKTOP, MainDlgProc); return 0; } BOOL CALLBACK MainDlgProc(HWND hDlg,UINT iMessage,WPARAM wParam,LPARAM lParam) { switch(iMessage) { case WM_INITDIALOG: hDlgMain = hDlg; CheckRadioButton(hDlg,IDC_RADIO1,IDC_RADIO3,IDC_RADIO2); SendDlgItemMessage(hDlg,IDC_LIST1,LB_ADDSTRING,0,(LPARAM)"°æÈñ´ë"); SendDlgItemMessage(hDlg,IDC_LIST1,LB_ADDSTRING,0,(LPARAM)"¿¬¼¼´ë"); SendDlgItemMessage(hDlg,IDC_LIST1,LB_ADDSTRING,0,(LPARAM)"°í·Á´ë"); SendDlgItemMessage(hDlg,IDC_LIST1,LB_ADDSTRING,0,(LPARAM)"ÇѰ´ë"); SendDlgItemMessage(hDlg,IDC_COMBO1,CB_ADDSTRING,0,(LPARAM)"°æÁ¦Çаú"); SendDlgItemMessage(hDlg,IDC_COMBO1,CB_ADDSTRING,0,(LPARAM)"Æþ´ç°ú"); SendDlgItemMessage(hDlg,IDC_COMBO1,CB_ADDSTRING,0,(LPARAM)"¶±ººÀ̰ú"); SendDlgItemMessage(hDlg,IDC_COMBO1,CB_ADDSTRING,0,(LPARAM)"¶¯¶¯À̰ú"); SendDlgItemMessage(hDlg,IDC_COMBO1,CB_SETCURSEL,1,0); SetDlgItemText(hDlg,IDC_EDIT1,"WinApi"); SetFocus(GetDlgItem(hDlg,IDC_EDIT1)); return FALSE; case WM_COMMAND: switch (LOWORD(wParam)) { case IDOK: EndDialog(hDlg,IDOK); return TRUE; case IDCANCEL: EndDialog(hDlg,IDCANCEL); return TRUE; } return FALSE; } return FALSE; } ½ÇÇà °á°ú´Â ´ÙÀ½°ú °°´Ù. ¶óµð¿À ¹öưÁß Radio2 ÄÁÆ®·ÑÀ» ¼±ÅÃÇßÀ¸¸ç ¿¡µðÆ® ÄÁÆ®·Ñ¿¡ ¹®ÀÚ¿À» ´ëÀÔÇϰí ÄÞº¸ ¹Ú½º¿Í ¸®½ºÆ® ¹Ú½º¿¡ Ãʱâ Ç׸ñÀ» Ãß°¡ÇÏ¿´´Ù. ÄÞº¸ ¹Ú½º´Â 1¹øÂ° Ç׸ñÀ» ¹Ì¸® ¼±ÅÃÇϵµ·Ï Çß´Ù. ¿¡µðÆ® ÄÁÆ®·Ñ¿¡ °Á¦·Î Æ÷Ä¿½º¸¦ ¼³Á¤Çϰí À§ÇØ SetFocus ÇÔ¼ö¸¦ È£ÃâÇÏ¿´À¸¸ç FALSE¸¦ ¸®ÅÏÇÏ¿´´Ù. ¸¸¾à ÀÌ ¸Þ½ÃÁö¿¡¼ TRUE¸¦ ¸®ÅÏÇϸé SetFocus È£Ãâ¿¡ »ó°ü¾øÀÌ Ã¹¹øÂ° ÄÁÆ®·ÑÀÎ È®ÀÎ ¹öưÀÌ Æ÷Ä¿½º¸¦ ¹Þ°Ô µÈ´Ù. ´ÙÀ½ ´ëÈ»óÀÚ´Â ÃʱâÈÁß¿¡ ºÎ¸ð À©µµ¿ìÀÇ ÀÛ¾÷ ¿µ¿ª Áß¾ÓÀ¸·Î ½º½º·Î ÀÚ¸®¸¦ ¿Å±ä´Ù. ´ëÈ»óÀÚÀÇ Center ¼Ó¼ºÀº ȸé Áß¾ÓÀ¸·Î À̵¿ÇÏ´Â ¼Ó¼ºÀ̹ǷΠÀÌ ¼Ó¼ºÀ» ¼³Á¤Çؼ´Â ºÎ¸ðÀÇ Áß¾ÓÀ¸·Î ¿Å±æ ¼ö ¾ø´Ù. #include "resource.h" BOOL CALLBACK DlgProc(HWND hDlg,UINT iMessage,WPARAM wParam,LPARAM lParam) { RECT wrt,crt; switch(iMessage) { case WM_INITDIALOG: GetWindowRect(GetParent(hDlg),&wrt); GetWindowRect(hDlg,&crt); SetWindowPos(hDlg,HWND_NOTOPMOST,wrt.left+(wrt.right-wrt.left)/2-(crt.right-crt.left)/2, wrt.top+(wrt.bottom-wrt.top)/2-(crt.bottom-crt.top)/2,0,0,SWP_NOSIZE); return TRUE; case WM_COMMAND: switch (LOWORD(wParam)) { case IDOK: EndDialog(hDlg,IDOK); return TRUE; case IDCANCEL: EndDialog(hDlg,IDCANCEL); return TRUE; } return FALSE; } return FALSE; } LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam) { HDC hdc; PAINTSTRUCT ps; switch(iMessage) { case WM_LBUTTONDOWN: DialogBox(g_hInst, MAKEINTRESOURCE(IDD_DIALOG1), hWnd, DlgProc); case WM_PAINT: hdc=BeginPaint(hWnd, &ps); EndPaint(hWnd, &ps); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; } return(DefWindowProc(hWnd,iMessage,wParam,lParam)); } ½ÇÇà °á°ú´Â ´ÙÀ½°ú °°´Ù. ´ÙÀ½ ¿¹Á¦´Â WM_INITDIALOGÀÇ lParamÀ¸·Î Àü´ÞµÇ´Â ¹®ÀÚ¿¿¡ µû¶ó ´Ù¸¥ ¸Þ½ÃÁö¸¦ º¸¿©ÁØ´Ù. #include "resource.h" BOOL CALLBACK DlgProc(HWND hDlg,UINT iMessage,WPARAM wParam,LPARAM lParam) { switch(iMessage) { case WM_INITDIALOG: SetDlgItemText(hDlg,IDC_MES,(TCHAR *)lParam); return TRUE; case WM_COMMAND: switch (wParam) { case IDOK: EndDialog(hDlg,1); return TRUE; case IDCANCEL: EndDialog(hDlg,0); return TRUE; } break; } return FALSE; } LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam) { HDC hdc; PAINTSTRUCT ps; TCHAR Mes[128]="¸¶¿ì½º ¿ÞÂÊ ¹öưÀ» ´©¸£¸é ´ëÈ»óÀÚ°¡ È£ÃâµË´Ï´Ù"; switch(iMessage) { case WM_LBUTTONDOWN: DialogBoxParam(g_hInst, MAKEINTRESOURCE(IDD_DIALOG1), hWnd,DlgProc,(LPARAM)"³Ê À̸§ÀÌ ¹¹¾ß?"); return TRUE; case WM_RBUTTONDOWN: DialogBoxParam(g_hInst, MAKEINTRESOURCE(IDD_DIALOG1), hWnd,DlgProc,(LPARAM)"¸î»ìÀÌ´Ï?"); return TRUE; case WM_PAINT: hdc=BeginPaint(hWnd, &ps); TextOut(hdc,50,50,Mes,lstrlen(Mes)); EndPaint(hWnd, &ps); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; } return(DefWindowProc(hWnd,iMessage,wParam,lParam)); } ¸¶¿ì½º ¿ÞÂÊ, ¿À¸¥ÂÊ ¹öưÀ» ´©¸£¸é ´ÙÀ½°ú °°Àº ´ëÈ»óÀÚ°¡ ³ªÅ¸³´Ù.
Á» ´õ º¹ÀâÇÑ Á¤º¸¸¦ Àü´ÞÇÏ·Á¸é ±¸Á¶Ã¼¸¦ ¼±¾ðÇÑ ÈÄ ±¸Á¶Ã¼ÀÇ Æ÷ÀÎÅ͸¦ ³Ñ°Ü ÁÖ¸é µÈ´Ù. ´ëÈ»óÀÚ´Â lParamÀ¸·Î Àü´ÞµÈ °ª¿¡ µû¶ó ´ëÈ»óÀÚ Ãʱâȸ¦ ´Ù¸£°Ô ÇÒ ¼ö ÀÖÀ¸¸ç ´ëÈ»óÀÚ ½ÇÇàÁß¿¡ ÀÌ Á¤º¸¸¦ °è¼Ó »ç¿ëÇÏ·Á¸é Àü¿ª ¶Ç´Â Á¤Àû º¯¼ö¿¡ ÀÌ Á¤º¸¸¦ ÀúÀåÇØ µÎ¾î¾ß ÇÑ´Ù. ¶ÇÇÑ lParamÀ¸·Î ±¸Á¶Ã¼ÀÇ Æ÷ÀÎÅ͸¦ Àü´ÞÇßÀ» °æ¿ì ´ëÈ»óÀÚÀÇ ½ÇÇà °á°ú¸¦ ÀÌ ±¸Á¶Ã¼·Î ´Ù½Ã ¸®ÅÏÇÒ ¼öµµ ÀÖ´Ù. |
Ç÷§Æû |
95ÀÌ»ó |
ÂüÁ¶ |
|
written by http://www.winapi.co.kr
|