📄 acdsmpl.c
字号:
CB_GETCURSEL,
0,
0);
dwLine = (DWORD)SendDlgItemMessage(hWnd,
IDC_LINECOMBO,
CB_GETITEMDATA,
item,
0);
dwAddress = (DWORD)SendDlgItemMessage(hWnd,
IDC_ADDRESSCOMBO,
CB_GETCURSEL,
0,
0);
// create a structure
pGroup = AddGroup(szName,
dwLine,
dwAddress);
if (!pGroup)
{
return 1;
}
if (g.bGroupView)
{
// add it to the tree
AddItemToTree(g.hGroupParent,
pGroup->lpszName,
(LPARAM)pGroup,
&pGroup->hItem);
}
EndDialog(hWnd, 1);
return 1;
}
case IDCANCEL:
{
EndDialog(hWnd, 0);
return 1;
}
default:
return 0;
}
}
return 0;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////
//
// AddAgentDlgProc - Window proc for the add agent/group dialog box
//
/////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL CALLBACK AddAgentDlgProc(HWND hWnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam)
{
switch (uMsg)
{
case WM_INITDIALOG:
BuildLineList(GetDlgItem(hWnd,
IDC_LINECOMBO),
0);
// set focus on first control
SetFocus(GetDlgItem(hWnd,
IDC_NAME));
return 0;
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDOK:
{
TCHAR szName[128];
TCHAR szNumber[128];
PAGENT pAgent;
DWORD dwLine;
int item;
// get info
SendDlgItemMessage(hWnd,
IDC_NAME,
WM_GETTEXT,
128,
(LPARAM)szName);
SendDlgItemMessage(hWnd,
IDC_DESTADDRESS,
WM_GETTEXT,
128,
(LPARAM)szNumber);
item = SendDlgItemMessage(hWnd,
IDC_LINECOMBO,
CB_GETCURSEL,
0,
0);
dwLine = (DWORD)SendDlgItemMessage(hWnd,
IDC_LINECOMBO,
CB_GETITEMDATA,
item,
0);
// create a structure
pAgent = AddAgent(szName,
szNumber,
dwLine);
if (!pAgent)
{
return 1;
}
if (!g.bGroupView)
{
// add it to the tree
AddItemToTree(g.hAgentParent,
pAgent->lpszName,
(LPARAM)pAgent,
&pAgent->hItem);
}
EndDialog(hWnd, 1);
return 1;
}
case IDCANCEL:
{
EndDialog(hWnd, 0);
return 1;
}
default:
return 0;
}
}
return 0;
}
//////////////////////////////////////////////////////////////////////////////////
//
// ChangeGroupDlgProc - Window proc for the change (properties) dialog box
// for agents/groups
//
//////////////////////////////////////////////////////////////////////////////////
BOOL CALLBACK ChangeGroupDlgProc(HWND hWnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam)
{
static TV_ITEM tvi;
switch (uMsg)
{
case WM_INITDIALOG:
// set text appropriately
SetWindowText(hWnd,
TEXT("Change Group"));
// get PGROUP and set edit controls
tvi.mask = TVIF_HANDLE | TVIF_PARAM;
tvi.hItem = g.hTreeItemWithMenu;
TreeView_GetItem(g.hTreeWnd,
&tvi);
SendDlgItemMessage(hWnd,
IDC_NAME,
WM_SETTEXT,
0,
(LPARAM)((PGROUP)tvi.lParam)->lpszName);
BuildLineList(GetDlgItem(hWnd,
IDC_LINECOMBO),
(((PGROUP)tvi.lParam)->dwDeviceID));
BuildAddressList(GetDlgItem(hWnd,
IDC_ADDRESSCOMBO),
hWnd,
(((PGROUP)tvi.lParam)->dwAddress));
SetFocus(GetDlgItem(hWnd,
IDC_NAME));
return 0;
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDC_LINECOMBO:
{
if (HIWORD(wParam) == CBN_SELENDOK)
{
// need to redo addresses
BuildAddressList(GetDlgItem(hWnd,
IDC_ADDRESSCOMBO),
hWnd,
0);
return 1;
}
return 0;
}
case IDOK:
{
TCHAR szName[128];
PGROUP pGroup;
// get info
SendDlgItemMessage(hWnd,
IDC_NAME,
WM_GETTEXT,
128,
(LPARAM)szName);
// get struct
pGroup = (PGROUP)tvi.lParam;
/// get device and address
pGroup->dwDeviceID = SendDlgItemMessage(hWnd,
IDC_LINECOMBO,
CB_GETCURSEL,
0,
0);
pGroup->dwDeviceID = SendDlgItemMessage(hWnd,
IDC_LINECOMBO,
CB_GETITEMDATA,
(WPARAM)pGroup->dwDeviceID,
0);
pGroup->dwAddress = SendDlgItemMessage(hWnd,
IDC_ADDRESSCOMBO,
CB_GETCURSEL,
0,
0);
// save new info and free old info
ACDFree(pGroup->lpszName);
pGroup->lpszName = ACDAlloc((lstrlen(szName) + 1) * sizeof(TCHAR));
lstrcpy(pGroup->lpszName, szName);
// update item name
tvi.mask = TVIF_TEXT;
tvi.pszText = szName;
tvi.cchTextMax = lstrlen(szName) * sizeof(TCHAR);
TreeView_SetItem(g.hTreeWnd,
&tvi);
EndDialog(hWnd, 1);
return 1;
}
case IDCANCEL:
{
EndDialog(hWnd, 0);
return 1;
}
default:
return 0;
}
}
return 0;
}
//////////////////////////////////////////////////////////////////////////////////
//
// ChangeGroupDlgProc - Window proc for the change (properties) dialog box
// for agents/groups
//
//////////////////////////////////////////////////////////////////////////////////
BOOL CALLBACK ChangeAgentDlgProc(HWND hWnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam)
{
static TV_ITEM tvi;
switch (uMsg)
{
case WM_INITDIALOG:
// set text appropriately
SetWindowText(hWnd,
TEXT("Change Agent"));
// get PGROUP and set edit controls
tvi.mask = TVIF_HANDLE | TVIF_PARAM;
tvi.hItem = g.hTreeItemWithMenu;
TreeView_GetItem(g.hTreeWnd,
&tvi);
SendDlgItemMessage(hWnd,
IDC_NAME,
WM_SETTEXT,
0,
(LPARAM)((PAGENT)tvi.lParam)->lpszName);
SendDlgItemMessage(hWnd,
IDC_DESTADDRESS,
WM_SETTEXT,
0,
(LPARAM)((PAGENT)tvi.lParam)->lpszNumber);
BuildLineList(GetDlgItem(hWnd,
IDC_LINECOMBO),
(((PAGENT)tvi.lParam)->dwDeviceID));
SetFocus(GetDlgItem(hWnd,
IDC_NAME));
return 0;
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDOK:
{
TCHAR szName[128];
TCHAR szNumber[128];
PAGENT pAgent;
// get info
SendDlgItemMessage(hWnd,
IDC_NAME,
WM_GETTEXT,
128,
(LPARAM)szName);
SendDlgItemMessage(hWnd,
IDC_DESTADDRESS,
WM_GETTEXT,
128,
(LPARAM)szNumber);
// get struct
pAgent = (PAGENT)tvi.lParam;
/// get device and address
pAgent->dwDeviceID = SendDlgItemMessage(hWnd,
IDC_LINECOMBO,
CB_GETCURSEL,
0,
0);
pAgent->dwDeviceID = SendDlgItemMessage(hWnd,
IDC_LINECOMBO,
CB_GETITEMDATA,
(WPARAM)pAgent->dwDeviceID,
0);
// save new info and free old info
ACDFree(pAgent->lpszName);
pAgent->lpszName = ACDAlloc((lstrlen(szName) + 1) * sizeof(TCHAR));
lstrcpy(pAgent->lpszName, szName);
ACDFree(pAgent->lpszNumber);
pAgent->lpszNumber = ACDAlloc((lstrlen(szNumber) + 1) * sizeof(TCHAR));
lstrcpy(pAgent->lpszNumber, szNumber);
// update item name
tvi.mask = TVIF_TEXT;
tvi.pszText = szName;
tvi.cchTextMax = lstrlen(szName) * sizeof(TCHAR);
TreeView_SetItem(g.hTreeWnd,
&tvi);
EndDialog(hWnd, 1);
return 1;
}
case IDCANCEL:
{
EndDialog(hWnd, 0);
return 1;
}
default:
return 0;
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -