#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;
}
char Items[][15]={"abacus","abadon","able","abort","about","above","absolute",
"acacia","accent","accept","access","accident","account","ace","achieve",
"acid","acquire","across","act","active","actual","ada"};
BOOL CALLBACK MainDlgProc(HWND hDlg,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
int i;
char str[128];
int idx;
switch(iMessage)
{
case WM_INITDIALOG:
hDlgMain = hDlg;
// Dialog 에 data넣고
for (i=0;i<sizeof(Items)/sizeof(Items[0]);i++)
SendDlgItemMessage(hDlg,IDC_LIST1,LB_ADDSTRING,0,(LPARAM)Items[i]);
return TRUE;
case WM_COMMAND:
// edit box 내용 가져오고
GetWindowText(GetDlgItem(hDlg,IDC_EDIT1),str,128);
// listbox의 index를 정의하고
idx=SendDlgItemMessage(hDlg,IDC_LIST1,LB_GETCURSEL,0,0);
switch (LOWORD(wParam))
{
case IDOK:
case IDCANCEL:
EndDialog(hDlgMain,0);
return TRUE;
case IDC_BTNFIND: // 찾기 버튼 선택하면
// 해당 아이템을 찾고나서 index를 반환
idx=SendDlgItemMessage(hDlg,IDC_LIST1,LB_FINDSTRING,idx,
(LPARAM)str);
// 받은 인덱스를 선택한다.
SendDlgItemMessage(hDlg,IDC_LIST1,LB_SETCURSEL,idx,0);
return TRUE;
case IDC_BTNFINDEXACT:
idx=SendDlgItemMessage(hDlg,IDC_LIST1,LB_FINDSTRINGEXACT,idx,
(LPARAM)str);
SendDlgItemMessage(hDlg,IDC_LIST1,LB_SETCURSEL,idx,0);
return TRUE;
case IDC_BTNSEL:
idx=SendDlgItemMessage(hDlg,IDC_LIST1,LB_SELECTSTRING,idx,
(LPARAM)str);
return TRUE;
}
return FALSE;
}
return FALSE;
}
#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;
}
char Items[][15]={"abacus","abadon","able","abort","about","above","absolute",
"acacia","accent","accept","access","accident","account","ace","achieve",
"acid","acquire","across","act","active","actual","ada"};
BOOL CALLBACK MainDlgProc(HWND hDlg,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
int i;
char str[128];
int idx;
switch(iMessage)
{
case WM_INITDIALOG:
hDlgMain = hDlg;
// Dialog 에 data넣고
for (i=0;i<sizeof(Items)/sizeof(Items[0]);i++)
SendDlgItemMessage(hDlg,IDC_LIST1,LB_ADDSTRING,0,(LPARAM)Items[i]);
return TRUE;
case WM_COMMAND:
// edit box 내용 가져오고
GetWindowText(GetDlgItem(hDlg,IDC_EDIT1),str,128);
// listbox의 index를 정의하고
idx=SendDlgItemMessage(hDlg,IDC_LIST1,LB_GETCURSEL,0,0);
switch (LOWORD(wParam))
{
case IDOK:
case IDCANCEL:
EndDialog(hDlgMain,0);
return TRUE;
case IDC_BTNFIND: // 찾기 버튼 선택하면
// 해당 아이템을 찾고나서 index를 반환
idx=SendDlgItemMessage(hDlg,IDC_LIST1,LB_FINDSTRING,idx,
(LPARAM)str);
// 받은 인덱스를 선택한다.
SendDlgItemMessage(hDlg,IDC_LIST1,LB_SETCURSEL,idx,0);
return TRUE;
case IDC_BTNFINDEXACT:
idx=SendDlgItemMessage(hDlg,IDC_LIST1,LB_FINDSTRINGEXACT,idx,
(LPARAM)str);
SendDlgItemMessage(hDlg,IDC_LIST1,LB_SETCURSEL,idx,0);
return TRUE;
case IDC_BTNSEL:
idx=SendDlgItemMessage(hDlg,IDC_LIST1,LB_SELECTSTRING,idx,
(LPARAM)str);
return TRUE;
}
return FALSE;
}
return FALSE;
}
'Windows > Windows API' 카테고리의 다른 글
리스트 박스 값 넣기 (LB_SETITEMDATA, LB_GETITEMDATA) (0) | 2013.10.01 |
---|---|
리스트 박스 통지 메세지 (0) | 2013.10.01 |
리스트박스에서 이벤트 처리 (WM_VKEYTOITEM) (0) | 2013.10.01 |
텍스트박스에서 탭 먹히게 하기 (0) | 2013.10.01 |
리스트 박스 다중선택 (listbox) (0) | 2013.10.01 |