⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 acdsmpl.c

📁 TAPI ACD Samples
💻 C
📖 第 1 页 / 共 5 页
字号:
                                              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 + -