| Àμö |
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
|