À̹ø¿¡´Â ¹ÙÅÁÈ¸é µî·Ï Á¤º¸ À©µµ¿ìó·³ ÅÇ ÄÁÆ®·Ñ¾È¿¡ ´ëÈ»óÀÚ¸¦ ³Ö¾î ÅÇ ÆäÀÌÁö¸¦ ¸¸µé¾î º¸ÀÚ. ´ëÈ»óÀÚ´Â ¸®¼Ò½º ÆíÁý±â·Î ½±°Ô ÄÁÆ®·ÑÀ» ¹èÄ¡ÇÒ ¼ö ÀÖÀ¸¹Ç·Î ÅÇ ÄÁÆ®·Ñ°ú ÇÔ²² »ç¿ëÇÏ¸é ¾ÆÁÖ ¸¹Àº ¿É¼ÇµéÀ» ±×·ìº°·Î ³ª´©¾î ÀԷ¹ÞÀ» ¼ö ÀÖÀ¸¸ç ÆäÀÌÁö ´ÜÀ§·Î ºü¸£°Ô ÀüȯÇÒ ¼ö ÀÖ´Ù´Â ÀåÁ¡µµ ÀÖ´Ù.
¿©±â¼ ÇѰ¡Áö ºÐ¸íÈ÷ ÇØ µÑ °ÍÀº ÅÇ ÄÁÆ®·ÑÀº ÆäÀÌÁö °ü¸®¿¡ ´ëÇØ¼´Â ¾î¶°ÇÑ ±â´Éµµ Á¦°øÇÏÁö ¾Ê´Â´Ù´Â Á¡ÀÌ´Ù. ´ëÈ»óÀÚ¸¦ ¹èÄ¡ÇÒ ¼ö ÀÖ´Â ³Ð´Ù¶õ Ç¥½Ã ¿µ¿ªÀ» Á¦°øÇÒ »ÓÀÌÁö ÅÇÀ» ¹Ù²Û´Ù°í ÇØ¼ ÆäÀÌÁö¸¦ °°ÀÌ ¹Ù²Ù¾î Áشٰųª ´ëÈ»óÀÚ ÀÚü¸¦ ÅÇÀÇ Â÷Àϵå·Î µÑ ¼ö ÀÖ´Â °Íµµ ¾Æ´Ï´Ù. ´Ù¸¸ ÅÇÀº ¼±ÅÃÀÌ ¹Ù²î¾úÀ» ¶§ ºÎ¸ð À©µµ¿ì·Î TCN_SELCHANGE ÅëÁö ¸Þ½ÃÁö¸¦ º¸³» ÁÖ¾î ÆäÀÌÁö¸¦ ±³Ã¼ÇØ¾ß ÇÒ ½ÃÁ¡À» ¾Ë·Á Áֱ⸸ ÇÒ »ÓÀÌ¸ç ´ëÈ»óÀÚ¸¦ °ü¸®ÇÏ´Â ¸ðµç ÀÛ¾÷Àº ÅÇ ÄÁÆ®·ÑÀÇ ºÎ¸ð À©µµ¿ì°¡ ÇØ¾ß ÇÑ´Ù.
¸ÕÀú ÆäÀÌÁö¸¦ ±¸¼ºÇÒ ´ëÈ»óÀÚ¸¦ ¸®¼Ò½º¿¡ ÀÛ¼ºÇÑ´Ù. ÀÌ ´ëÈ»óÀÚµéÀº ÅÇÀÇ Ç¥½Ã ¿µ¿ª¾È¿¡ ³ªÅ¸³ª¾ß ÇϹǷΠŸÀÌÆ² ¹Ù¿Í °æ°è¼±À» °¡ÁöÁö ¾Ê¾Æ¾ß ÇÏ¸ç ¹Ýµå½Ã WS_CHILD ½ºÅ¸ÀÏÀ» ÁÖ¾î¾ß ÇÑ´Ù. ÇÊ¿äÇÑ ÆäÀÌÁö ¼ö¸¸Å ´ëÈ»óÀÚ¸¦ ¸¸µé ¼ö ÀÖÀ¸¸ç Å©±â´Â °¡±ÞÀûÀÌ¸é µ¿ÀÏÇÑ °ÍÀÌ ÁÁÀ¸³ª ½ÇÇàÁß¿¡ ÃÖ´ë Å©±â¿¡ ¸ÂÃâ ¼ö ÀÖÀ¸¹Ç·Î ²À ±×·² ÇÊ¿ä´Â ¾ø´Ù. ´ëÈ»óÀھȿ¡ ÄÁÆ®·ÑÀº ÇÊ¿äÇѸ¸Å ¿øÇϴ´ë·Î ¹èÄ¡ÇÒ ¼ö ÀÖ´Ù.
¸ÞÀÎ À©µµ¿ì´Â ÀÌ ´ëÈ»óÀÚµé Áß ÃÖ´ë Å©±â¸¸Å ÅÇ ÄÁÆ®·ÑÀÇ Ç¥½Ã ¿µ¿ªÀ» ¼³Á¤Çϰí Åǰú ´ëÀÀµÇ´Â ´ëÈ»óÀÚ¸¦ ¸ðµ¨¸®½º·Î »ý¼ºÇÏ¿© Ç¥½Ã ¿µ¿ª¿¡ º¸¿© ÁÖ¸é µÈ´Ù. °¢ ÆäÀÌÁö¾È¿¡¼ ÀϾ´Â ÀÏÀº ¹°·Ð °³º° ´ëÈ»óÀÚ ÇÁ·Î½ÃÀú¿¡¼ ó¸®ÇØ¾ß ÇÑ´Ù. ´ÙÀ½ ¿¹Á¦´Â µÎ °³ÀÇ ÆäÀÌÁö¸¦ °¡Áö´Â ÅÇ ÄÁÆ®·ÑÀ» »ý¼ºÇÑ´Ù. À̹ø¿¡´Â WinMain±îÁö Àüü ¼Ò½º¸¦ º¸¿´´Ù.
#include <windows.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
BOOL CALLBACK Dlg1Proc(HWND hDlg,UINT iMessage,WPARAM wParam,LPARAM lParam);
BOOL CALLBACK Dlg2Proc(HWND hDlg,UINT iMessage,WPARAM wParam,LPARAM lParam);
HINSTANCE g_hInst;
HWND hWndMain;
LPCTSTR lpszClass=TEXT("TabDlg");
#include <commctrl.h>
#include "resource.h"
HWND hTab;
HWND hTabDlg;
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance
,LPSTR lpszCmdParam,int nCmdShow)
{
HWND hWnd;
MSG Message;
WNDCLASS WndClass;
g_hInst=hInstance;
WndClass.cbClsExtra=0;
WndClass.cbWndExtra=0;
WndClass.hbrBackground=(HBRUSH)(COLOR_BTNFACE+1);
WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
WndClass.hInstance=hInstance;
WndClass.lpfnWndProc=(WNDPROC)WndProc;
WndClass.lpszClassName=lpszClass;
WndClass.lpszMenuName=NULL;
WndClass.style=CS_HREDRAW | CS_VREDRAW;
RegisterClass(&WndClass);
hWnd=CreateWindow(lpszClass,lpszClass,WS_OVERLAPPEDWINDOW | WS_CLIPSIBLINGS,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
NULL,(HMENU)NULL,hInstance,NULL);
ShowWindow(hWnd,nCmdShow);
while(GetMessage(&Message,0,0,0)) {
if (!IsWindow(hTabDlg) || !IsDialogMessage(hTabDlg,&Message)) {
TranslateMessage(&Message);
DispatchMessage(&Message);
}
}
return (int)Message.wParam;
}
typedef struct {
WORD dlgVer;
WORD signature;
DWORD helpID;
DWORD exStyle;
DWORD style;
WORD cDlgItems;
short x;
short y;
short cx;
short cy;
// sz_Or_Ord menu;
// sz_Or_Ord windowClass;
// WCHAR title[titleLen];
// WORD pointsize;
// WORD weight;
// BYTE italic;
// BYTE charset;
// WCHAR typeface[stringLen];
} DLGTEMPLATEEX;
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
TCITEM tie;
int Sel;
HRSRC hRc;
HGLOBAL hGlb;
DLGTEMPLATEEX *dTem;
RECT trt={0,0,0,0};
switch(iMessage) {
case WM_CREATE:
hWndMain=hWnd;
InitCommonControls();
hTab=CreateWindow(WC_TABCONTROL,"",WS_CHILD | WS_VISIBLE
| WS_CLIPSIBLINGS,
0,0,0,0,hWnd,(HMENU)0,g_hInst,NULL);
tie.mask=TCIF_TEXT;
tie.pszText="one";
TabCtrl_InsertItem(hTab,0,&tie);
tie.pszText="two";
TabCtrl_InsertItem(hTab,1,&tie);
// ù¹øÂ° ´ëÈ»óÀÚÀÇ Å©±â ±¸ÇÔ
hRc=FindResource(NULL,MAKEINTRESOURCE(IDD_DIALOG1),RT_DIALOG);
hGlb=LoadResource(NULL,hRc);
dTem=(DLGTEMPLATEEX *)LockResource(hGlb);
trt.right=dTem->cx;
trt.bottom=dTem->cy;
// µÎ¹øÂ° ´ëÈ»óÀÚÀÇ Å©±â ±¸ÇÏ°í µÑ Áß Å« °ªÀ» ÃëÇÔ
hRc=FindResource(NULL,MAKEINTRESOURCE(IDD_DIALOG2),RT_DIALOG);
hGlb=LoadResource(NULL,hRc);
dTem=(DLGTEMPLATEEX *)LockResource(hGlb);
trt.right=max(trt.right,dTem->cx);
trt.bottom=max(trt.bottom,dTem->cy);
// ´ëÈ»óÀÚ ´ÜÀ§¸¦ Çȼ¿ ´ÜÀ§·Î ¹Ù²Û´Ù.
hTabDlg=CreateDialog(g_hInst,MAKEINTRESOURCE(IDD_DIALOG1),hWnd,Dlg1Proc);
MapDialogRect(hTabDlg,&trt);
DestroyWindow(hTabDlg);
// Ç¥½Ã ¿µ¿ªÀ» À©µµ¿ì Å©±â·Î ¹Ù²Û´Ù.
TabCtrl_AdjustRect(hTab,TRUE,&trt);
// À©µµ¿ì ÁÂÇ¥¸¦ ¿øÁ¡À¸·Î ¿Å±ä´Ù.
OffsetRect(&trt,-trt.left,-trt.top);
// °è»êµÈ Å©±â¸¸Å ÅÇ ÄÁÆ®·Ñ Å©±â º¯°æ
SetWindowPos(hTab,NULL,trt.left,trt.top,trt.right,trt.bottom,SWP_NOZORDER);
hTabDlg=CreateDialog(g_hInst,MAKEINTRESOURCE(IDD_DIALOG1),hWnd,Dlg1Proc);
return 0;
case WM_NOTIFY:
switch (((LPNMHDR)lParam)->code) {
case TCN_SELCHANGE:
if (hTabDlg) {
DestroyWindow(hTabDlg);
}
Sel=TabCtrl_GetCurSel(hTab);
if (Sel==0) {
hTabDlg=CreateDialog(g_hInst,MAKEINTRESOURCE(IDD_DIALOG1),hWnd,Dlg1Proc);
} else {
hTabDlg=CreateDialog(g_hInst,MAKEINTRESOURCE(IDD_DIALOG2),hWnd,Dlg2Proc);
}
break;
}
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
// ´ëÈ»óÀÚ´Â ¹Ýµå½Ã Â÷ÀÏµå ½ºÅ¸ÀÏÀ̾î¾ß ÇÏ¸ç °æ°è¼±À» °¡ÁöÁö ¾Ê´Â´Ù.
BOOL CALLBACK Dlg1Proc(HWND hDlg,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
RECT prt;
switch(iMessage)
{
case WM_INITDIALOG:
// ÅÇÀÇ Ç¥½Ã ¿µ¿ª »ó´ÜÀ¸·Î À̵¿Çϸç ÇüÁ¦Áß¿¡ Á¦ÀÏ À§·Î ¿Ã¶ó°£´Ù.
GetWindowRect(hTab,&prt);
TabCtrl_AdjustRect(hTab,FALSE,&prt);
ScreenToClient(hWndMain,(LPPOINT)&prt);
SetWindowPos(hDlg,HWND_TOP,prt.left,prt.top,0,0,SWP_NOSIZE);
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,0,0);
return TRUE;
// EndDialog¸¦ È£ÃâÇÒ Çʿ䰡 ¾ø´Ù.
case WM_COMMAND:
switch (LOWORD(wParam)) {
case IDC_BUTTON1:
MessageBox(hDlg,"¹öưÀ» ´·¶½À´Ï´Ù","¾Ë¸²",MB_OK);
return TRUE;
}
return FALSE;
}
return FALSE;
}
BOOL CALLBACK Dlg2Proc(HWND hDlg,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
RECT prt;
switch(iMessage)
{
case WM_INITDIALOG:
SetWindowPos(hDlg,HWND_TOP,100,100,0,0,SWP_NOSIZE);
GetWindowRect(hTab,&prt);
TabCtrl_AdjustRect(hTab,FALSE,&prt);
ScreenToClient(hWndMain,(LPPOINT)&prt);
SetWindowPos(hDlg,HWND_TOP,prt.left,prt.top,0,0,SWP_NOSIZE);
SetWindowText(GetDlgItem(hDlg,IDC_EDIT1),"¿¡µðÆ® ÄÁÆ®·ÑÀÌ´Ù");
return TRUE;
}
return FALSE;
}
µÎ °³ÀÇ Àü¿ª º¯¼ö°¡ ¼±¾ðµÇ¾î Àִµ¥ hTabÀº ÅÇ ÄÁÆ®·ÑÀ̰í hTabDlg´Â ÇöÀç º¸ÀÌ´Â ÆäÀÌÁöÀÇ ´ëÈ»óÀÚ ÇÚµéÀÌ´Ù. ÅÇ ÆäÀÌÁö¸¦ ¸¸µå´Â ¸ðµç ÄÚµå´Â WM_CREATE¿¡ ÀÖÀ¸¹Ç·Î ÀÌ Äڵ带 ºÐ¼®ÇØ º¸µµ·Ï ÇÏÀÚ.
WM_CREATE¿¡¼ ÇØ¾ßÇÒ °¡Àå Áß¿äÇÑ ÀÏÀº ÅÇ ÄÁÆ®·ÑÀÇ Å©±â¸¦ °áÁ¤ÇÏ´Â °ÍÀÌ´Ù. ÅÇ ÄÁÆ®·ÑÀº Æ÷ÇÔÇÒ ´ëÈ»óÀÚ¸¦ ÃæºÐÈ÷ Ç¥½ÃÇÒ ¼ö ÀÖ´Â ÃæºÐÇÑ Ç¥½Ã ¿µ¿ªÀ» °¡Á®¾ß ÇÑ´Ù. À̶§ Ç¥½Ã ¿µ¿ªÀ̶õ ÅÇ ÄÁÆ®·Ñ¿¡¼ ÅÇÀÌ Ãâ·ÂµÇ´Â ºÎºÐ°ú °æ°è¼±À» Á¦¿ÜÇÑ ¿µ¿ªÀ̸ç ÅÇ ÄÁÆ®·Ñ ÀÚüÀÇ Å©±âº¸´Ù´Â ´õ Á¼´Ù. Ç¥½Ã ¿µ¿ª°ú ÅÇ ÄÁÆ®·Ñ À©µµ¿ìÀÇ Å©±â´Â ´ÙÀ½ ÇÔ¼ö·Î °è»êÇÑ´Ù.
VOID TabCtrl_AdjustRect( HWND hwnd, BOOL fLarger, RECT FAR *prc);
fLarge°¡ TRUEÀ̸é prc¿¡ ÁÖ¾îÁø Ç¥½Ã ¿µ¿ªÀ¸·ÎºÎÅÍ ÇÊ¿äÇÑ À©µµ¿ì Å©±â¸¦ ±¸Çϰí fLarge°¡ FALSEÀÌ¸é ¹Ý´ë·Î À©µµ¿ì Å©±â·ÎºÎÅÍ Ç¥½Ã ¿µ¿ª Å©±â¸¦ ±¸ÇÑ´Ù. ´ëÈ»óÀÚÀÇ Å©±â°¡ 400*300À̶ó¸é ÀÌ Å©±â¿¡ ÅÇÀÌ Ãâ·ÂµÉ ³ôÀÌ ¹× °æ°è¼±ÀÇ µÎ²²¸¦ ´õÇÏ¿© À©µµ¿ì Å©±â¸¦ °è»êÇÒ ¼ö ÀÖÀ¸¸ç ¹Ý´ë·Î À©µµ¿ì°¡ 500*400ÀÏ ¶§ Ç¥½Ã ¿µ¿ªÀº ¾ó¸¶³ª µÇ´ÂÁö¸¦ °è»êÇÒ ¼ö ÀÖ´Ù. ÀÌ °è»ê¿¡´Â ½Ã½ºÅÛ¿¡ Á¤ÀÇµÈ °æ°è¼±ÀÇ µÎ²², ÅÇ ÄÁÆ®·Ñ¿¡ ÁöÁ¤µÈ ÆùÆ®ÀÇ Å©±â µî ¸¹Àº ¿ä¼ÒµéÀÌ ÂüÁ¶µÉ °ÍÀÌ´Ù.
¸®¼Ò½º¿¡ Á¤ÀǵǾî ÀÖ´Â ´ëÈ»óÀÚÀÇ Å©±â¸¦ ±¸Çϱâ À§Çؼ´Â ´ëÈ»óÀÚ ÅÛÇø®Æ®¸¦ Á÷Á¢ Àоî ÅÛÇø®Æ®ÀÇ cx, cy¸¦ Á¶»çÇØ¾ß ÇÑ´Ù. ºñÁÖ¾ó C++ 6.0ÀÌ»óÀº ´ëÈ»óÀÚ ÅÛÇø®Æ®¸¦ DLGTEMPLATEEX ±¸Á¶Ã¼·Î ÀÛ¼ºÇϴµ¥ ÀÌ ±¸Á¶Ã¼´Â Ç¥ÁØ Çì´õ ÆÄÀÏ¿¡´Â Æ÷ÇԵǾî ÀÖÁö ¾ÊÀ¸¹Ç·Î ÇÊ¿äÇÒ ¶§ Á÷Á¢ ¼±¾ðÇÑ ÈÄ »ç¿ëÇØ¾ß ÇÑ´Ù. ÀÌ ¿¹Á¦¿¡¼´Â cx, cy°ª¸¸ ¾Ë¸é µÇ¹Ç·Î ³ª¸ÓÁö ¸â¹ö´Â ÁÖ¼® ó¸®ÇÏ¿´´Ù. ÀÌ ¸â¹ö±îÁö Æ÷ÇÔÇÏ·Á¸é ¿©ºÐÀÇ Çì´õ±îÁö Æ÷ÇÔ½ÃÄÑ¾ß ÇϹǷΠ¿©·¯ ¸ð·Î ±ÍÂú¾ÆÁø´Ù.
ÅÛÇø®Æ®¿¡¼ ´ëÈ»óÀÚÀÇ Æø°ú ³ôÀ̸¦ ±¸ÇÑ ÈÄ ÀÌ Áß °¡Àå Å« °ªÀ» ÃëÇÏ¿© °¡Àå Å« ´ëÈ»óÀÚ°¡ Ç¥½ÃµÉ ¼ö ÀÖµµ·Ï ÇØ¾ß ÇÑ´Ù. ´ëÈ»óÀÚÀÇ Å©±â ´ÜÀ§´Â DLU·Î µÇ¾î ÀÖÀ¸¹Ç·Î MapDialogRect ÇÔ¼ö·Î Çȼ¿°ªÀ¸·Î ¹Ù²Ù¾î¾ß ÇÏ¸ç ´ëÈ»óÀÚÀÇ ½ÇÁ¦ ±Û²ÃÀ» ÂüÁ¶ÇØ¾ß ÇϹǷΠÀÏ´Ü ´ëÈ»óÀÚ¸¦ ¸ÕÀú ¸¸µç ÈÄ °è»êÇÏ°í ´Ù½Ã ÆÄ±«ÇÏ¿´´Ù. ÀÌ °è»ê ¹æ¹ý¿¡ ´ëÇØ¼´Â 13Àå¿¡¼ ÀÚ¼¼ÇÏ°Ô ´Ù·é ¹Ù ÀÖÀ¸¹Ç·Î ÂüÁ¶Çϱ⠹ٶõ´Ù.
´ëÈ»óÀÚÀÇ ÃÖ´ë Å©±â¸¦ Çȼ¿°ªÀ¸·Î Á¶»çÇßÀ¸¸é ÀÌ ´ëÈ»óÀÚ°¡ µé¾î°¥¸¸ÇÑ Ç¥½Ã ¿µ¿ªÀ» °¡Áö´Â ÅÇ ÄÁÆ®·Ñ À©µµ¿ìÀÇ Å©±â¸¦ TabCtrl_AdjustRect ÇÔ¼ö·Î °è»êÇÑ´Ù. ¿¹¸¦ µé¾î ÃÖ´ë ´ëÈ»óÀÚÀÇ Å©±â°¡ 250*200À̾ú´Ù¸é ÀÌ ´ëÈ»óÀÚ¸¦ Ç¥½ÃÇÒ ¼ö ÀÖ´Â ÅÇ ÄÁÆ®·ÑÀº 254*225 Á¤µµ°¡ µÉ °ÍÀÌ´Ù. ÀÌ·¸°Ô °è»êµÈ Å©±â·Î ÅÇ ÄÁÆ®·ÑÀÇ Å©±â¿Í À§Ä¡¸¦ º¯°æÇÏ¿´À¸¸ç ù¹øÂ° ÆäÀÌÁöÀÇ ´ëÈ»óÀÚ¸¦ CreateDialog ÇÔ¼ö·Î »ý¼ºÇÏ¿´´Ù. ¿©±â±îÁö ÃʱâȰ¡ ¿Ï·áµÇ¸é ´ÙÀ½°ú °°Àº ¸ð½ÀÀ¸·Î ½ÇÇàµÈ´Ù.
µÎ °³ÀÇ ÆäÀÌÁö¸¦ °¡Áö´Â ÅÇ ÄÁÆ®·ÑÀÌ »ý¼ºµÇ¾î ÀÖ°í ÅÇÀÇ Ç¥½Ã ¿µ¿ª¿¡ ù¹øÂ° ´ëÈ»óÀÚ°¡ ¸ðµ¨¸®½ºÇüÀ¸·Î »ý¼ºµÇ¾î ÀÖ´Ù. ¸¶Ä¡ ÅÇ ÄÁÆ®·Ñ¾È¿¡ ´ëÈ»óÀÚ°¡ Æ÷ÇԵǾî ÀÖ´Â °Íó·³ º¸ÀÌÁö¸¸ »ç½Ç Åǰú ´ëÈ»óÀÚ´Â ÇüÁ¦ÀÌÁö ºÎ¸ð ÀÚ½Ä °ü°è°¡ ¾Æ´Ï¸ç µÑ ´Ù ¸ÞÀÎ À©µµ¿ìÀÇ ÅëÁ¦¸¦ ¹Þ´Â´Ù. ´ëÈ»óÀÚ´Â ÀڽŸ¸ÀÇ ´ëÈ»óÀÚ ÇÁ·Î½ÃÀú¸¦ °¡Áö°í ÀÖ¾î ¹öư, ÄÞº¸ ¹Ú½ºµé·ÎºÎÅÍ Àü´ÞµÇ´Â ÅëÁö ¸Þ½ÃÁö¸¦ ó¸®ÇÒ ¼ö ÀÖ´Ù.
Â÷Àϵå·Î »ý¼ºµÈ ´ëÈ»óÀÚÀ̹ǷΠ¾î¶² ÀÏÀÌ ÀÖ´õ¶óµµ EndDialog¸¦ È£ÃâÇØ¼´Â ¾ÈµÈ´Ù. ¸ÞÀÎ ¸Þ½ÃÁö ·çÇÁ¿¡´Â IsDialogMessage°¡ Æ÷ÇԵǾî ÀÖ¾î Â÷Àϵå·Î »ý¼ºµÈ ¸ðµ¨¸®½º ´ëÈ»óÀÚÀÇ ¸Þ½ÃÁö¸¦ ó¸®ÇØ ÁֹǷΠ´ëÈ»óÀÚ³»¿¡¼ Tab۸¦ ´·¯ ÄÁÆ®·Ñ°£ÀÇ Æ÷Ä¿½º¸¦ À̵¿ÇÒ ¼ö ÀÖÀ¸¸ç µðÆúÆ® ¹öưÀ̳ª Ãë¼Ò ¹öưÀÌ Á¦´ë·Î µ¿ÀÛµÉ °ÍÀÌ´Ù.
´ÙÀ½Àº ÅÇÀÇ ¼±ÅÃÀÌ º¯°æµÉ ¶§, Áï one ÆäÀÌÁö¿¡¼ two ÆäÀÌÁö¸¦ ¼±ÅÃÇÒ ¶§ ¾î¶² ÀÏÀÌ ÀϾ´ÂÁö º¸ÀÚ. À̶§ ÅÇ ÄÁÆ®·ÑÀÇ ºÎ¸ðÀÎ ¸ÞÀÎ À©µµ¿ì·Î TCS_SELCHANGE ÅëÁö ¸Þ½ÃÁö°¡ Àü´ÞµÇ´Âµ¥ ÀÌ ¸Þ½ÃÁö¸¦ ¹Þ¾ÒÀ» ¶§ Â÷Àϵå·Î »ý¼ºµÇ¾î ÀÖ´Â ¸ðµ¨¸®½º ´ëÈ»óÀÚ¸¦ ±³Ã¼ÇÑ´Ù. ±³Ã¼ÇÏ´Â ¹æ¹ýÀº ¾ÆÁÖ ¿ø·ÐÀûÀε¥ ±âÁ¸¿¡ ¸¸µé¾îÁ® ÀÖ´Â ´ëÈ»óÀÚ¸¦ DestroyWindow ÇÔ¼ö·Î ÆÄ±«ÇÏ°í »õ·Î¿î ´ëÈ»óÀÚ¸¦ ´Ù½Ã »ý¼ºÇÏ¸é µÈ´Ù. ´ÙÀ½Àº µÎ¹øÂ° ÆäÀÌÁö°¡ Ȱ¼ºÈµÈ ¸ð½ÀÀÌ´Ù.
°¢ ´ëÈ»óÀÚÀÇ WM_INITDIALOG¿¡¼´Â ÀÚ½ÅÀ» ÇüÁ¦ Áß Á¦ÀÏ À§ÂÊÀ¸·Î ¿Å°ÜÁÖ´Â Äڵ尡 ¹Ýµå½Ã ÇÊ¿äÇÏ´Ù. ÅÇÀÇ Ç¥½Ã ¿µ¿ª¿¡ ´ëÈ»óÀÚ°¡ ³ªÅ¸³ª¾ß Çϴµ¥ ÅÇ¿¡ ÀÇÇØ ´ëÈ»óÀÚ°¡ °¡·ÁÁ®¼´Â ¾ÈµÇ±â ¶§¹®ÀÌ´Ù. ¿©·¯¹ø °Á¶ÇÏÁö¸¸ Åǰú ´ëÈ»óÀÚ´Â ÇüÁ¦ °ü°èÀÌ¸ç ¿î¿µÃ¼Á¦´Â ÇüÁ¦°£ÀÇ °ãħ¿¡ ´ëÇØ¼´Â ¾î¶°ÇÑ Ã³¸®µµ ÇÏÁö ¾ÊÀ¸¹Ç·Î ÀÚ½ÅÀÌ Á÷Á¢ À§·Î ¿Ã¶ó¿À´Â ¼ö¹Û¿¡ ¾ø´Ù.
ÅÇ ÄÁÆ®·ÑÀÇ one, two ÅÇÀ» ´·¯ º¸¸é ÆäÀÌÁö°¡ ºü¸¥ ¼Óµµ·Î ±³Ã¼µÉ °ÍÀÌ´Ù. ÀÌ ¿¹Á¦´Â µÎ °³ÀÇ ÆäÀÌÁö¸¸ ±³Ã¼ÇØ º¸¾Ò°í ´ëÈ»óÀÚ°¡ À¯¿ëÇÑ µ¿ÀÛÀ» ÇÏÁö´Â ¾ÊÁö¸¸ ¼ö½Ê°³ÀÇ ÆäÀÌÁö¸¦ °¡Áø ÅÇ ÆäÀÌÁö¸¦ ¸¸µé´õ¶óµµ ¹æ¹ýÀº µ¿ÀÏÇÏ´Ù. ÀÌ ¿¹Á¦´Â »ç½Ç ÅÇ ÄÁÆ®·Ñ¿¡ °ü·ÃµÈ ±â¼úº¸´Ù´Â ´ëÈ»óÀÚ¸¦ ´Ù·ç´Â ±â¼úÀÌ ´õ ÇÊ¿äÇÑ ¿¹Á¦¶ó ÇÒ ¼ö ÀÖ´Ù.
ÅÇ ÄÁÆ®·ÑÀ» »ç¿ëÇϸé ÀÌ·± ½ÄÀ¸·Î ÆäÀÌÁö¸¦ °ãÃļ Ç¥½ÃÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» º¸¿´´Âµ¥ ÄÁÆ®·ÑÀÇ Áö¿øÀÌ ¹Ì¾àÇÏ¿© ´Ù¼Ò ½Ç¸Á½º·´´Ù°í ´À²¸ÁöÁö ¾ÊÀº°¡? ÅÇÀÌ ´ëÈ»óÀÚ¸¦ Â÷Àϵå·Î °¡Áö°í ÅÇ ¼±ÅÃÀ» º¯°æÇϸé Á÷Á¢ ÆäÀÌÁö¸¦ ±³Ã¼ÇØ Áشٸé ÁÁÀ» °ÍÀÌ´Ù. ¶ÇÇÑ Â÷Àϵå·Î Æ÷ÇÔµÈ ´ëÈ»óÀÚÀÇ ÃÖ´ë Å©±â¸¦ ÀÚµ¿À¸·Î °è»êÇØ ÁÖ°í Ȱ¼ºÈµÈ ÆäÀÌÁö¸¦ À§·Î ¿Ã·Á ÁÖ´Â ¼ºñ½º¸¦ ÇØ ÁØ´Ù¸é ¹«Ã´ ÆíÇÒ °Í °°´Ù.
¿©·¯ºÐµéÀÌ ÀÌ·± »ý°¢À» ÇÑ´Ù¸é ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®µµ ´ç¿¬È÷ ±×·± »ý°¢À» ÇÑ´Ù. ±×·¡¼ ÀÌ·² ¶§ »ç¿ëÇ϶ó°í ¸¸µé¾î ³õÀº °ÍÀÌ ¹Ù·Î ÇÁ·ÎÆÛƼ ½ÃÆ®(Property Sheet)ÀÌ´Ù. ÇÁ·ÎÆÛƼ ½ÃÆ®´Â ÅÇ ÄÁÆ®·ÑÀ» Â÷Àϵå·Î °¡Áö¸ç ´ëÈ»óÀÚ¸¦ ÀÚµ¿À¸·Î °ü¸®ÇØ ÁÖ´Â ¿©·¯ °¡Áö ¼ºñ½º¸¦ ÇØ ÁÖ´Â °øÅë ÄÁÆ®·ÑÀÇ ÀÏÁ¾ÀÌ¸ç ¹Ù·Î ¾ÕÀý¿¡¼ ÀÚ¼¼ÇÏ°Ô ´Ù·é ¹Ù ÀÖ´Ù. ¿©·¯ °³ÀÇ ÆäÀÌÁö¸¦ °¡Áö´Â ´ëÈ»óÀÚ°¡ ÇÊ¿äÇÏ´Ù¸é ÇÁ·ÎÆÛƼ ½ÃÆ®¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ÁÁ´Ù. ´Ù¸¸ ¿©·¯ °³ÀÇ ÆäÀÌÁö¸¦ °¡Áö´Â ´ëÈ»óÀÚ ¹À½ÀÌ ¿©·¯ °³ µ¿½Ã¿¡ Ç¥½ÃµÇ¾î¾ß ÇѴٰųª ÅÇ ÆäÀÌÁö ÀÚü°¡ ´ëÈ»óÀÚÀÇ Â÷Àϵ尡 µÇ¾î¾ß ÇÒ ¶§´Â ÀÌ ¿¹Á¦Ã³·³ ÅÇ ÄÁÆ®·ÑÀ» Á÷Á¢ ´Ù·ç¾î¾ß ÇÑ´Ù.