TOOLBAR.C
上传用户:woweijixie
上传日期:2018-12-11
资源大小:131k
文件大小:5k
源码类别:

TAPI编程

开发平台:

Visual C++

  1. // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
  2. // ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
  3. // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  4. // PARTICULAR PURPOSE.
  5. //
  6. // Copyright (C) 1995  Microsoft Corporation.  All Rights Reserved.
  7. //
  8. //  MODULE: toolbar.c
  9. //
  10. //  PURPOSE: Handles general routines for the Toolbar control
  11. //
  12. //  FUNCTIONS:
  13. //    CreateTBar    - Creates the Toolbar control for the sample.
  14. //    MsgNotify     - Handles the WM_NOTIFY message that gets sent to
  15. //                    the parent window to get ToolTip Text.
  16. //  COMMENTS:
  17. //
  18. #include <windows.h>            // required for all Windows applications
  19. #include <windowsx.h>
  20. #include <commctrl.h>           // prototypes and defs for common controls
  21. #include "globals.h"            // prototypes specific to this application
  22. #include "toolbar.h"            // prototypes and #defines for toolbar.c
  23. // Global Variable for the toolbar control.
  24. HWND    hWndToolbar;
  25. //  **TODO**  Change the following values to match your toolbar bitmap
  26. //
  27. // NUMIMAGES    = Number of images in toolbar.bmp.  Note that this is not
  28. //                the same as the number of elements on the toolbar.
  29. // IMAGEWIDTH   = Width of a single button image in toolbar.bmp
  30. // IMAGEHEIGHT  = Height of a single button image in toolbar.bmp
  31. // BUTTONWIDTH  = Width of a button on the toolbar (zero = default)
  32. // BUTTONHEIGHT = Height of a button on the toolbar (zero = default)
  33. #define NUMIMAGES       9
  34. #define IMAGEWIDTH      18
  35. #define IMAGEHEIGHT     17
  36. #define BUTTONWIDTH     0
  37. #define BUTTONHEIGHT    0
  38. //  **TODO**  Add/remove entries in the following array to define the 
  39. //            toolbar buttons (see documentation for TBBUTTON).
  40. TBBUTTON tbButton[] =
  41. {
  42.     {1, IDM_MAKECALL,   TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
  43.     {2, IDM_HANGUPCALL, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
  44.     {0, 0,              TBSTATE_ENABLED, TBSTYLE_SEP,    0, 0},
  45.     {7, IDM_ABOUT,      TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
  46. };
  47. //
  48. //  FUNCTION: CreateTBar(HWND)
  49. //
  50. //  PURPOSE:  Calls CreateToolBarEx()
  51. //
  52. //
  53. //  PARAMETERS:
  54. //
  55. //  hwnd - Window handle : Used for the hWndParent parameter of the control.
  56. //
  57. //  RETURN VALUE:
  58. //
  59. //  If toolbar control was created successfully Return TRUE,
  60. //  else returns FALSE.
  61. //
  62. //  COMMENTS:
  63. //
  64. //
  65. BOOL CreateTBar(HWND hwnd)
  66. {
  67.     hWndToolbar = CreateToolbarEx(hwnd,
  68.                                   WS_CHILD | WS_VISIBLE | TBSTYLE_TOOLTIPS,
  69.                                   IDM_TOOLBAR,
  70.                                   NUMIMAGES,
  71.                                   hInst,
  72.                                   IDB_BMP,
  73.                                   tbButton,
  74.                                   sizeof(tbButton)/sizeof(TBBUTTON),
  75.                                   BUTTONWIDTH,
  76.                                   BUTTONHEIGHT,
  77.                                   IMAGEWIDTH,
  78.                                   IMAGEHEIGHT,
  79.                                   sizeof(TBBUTTON));
  80.     return (hWndToolbar != NULL);
  81. }
  82. //
  83. //  FUNCTION: MsgNotify(HWND, UINT, WPARAM, LPARAM)
  84. //
  85. //  PURPOSE:  WM_NOTIFY is sent to the parent window to get the
  86. //            tooltip text assoc'd with that toolbar button.
  87. //
  88. //  PARAMETERS:
  89. //
  90. //    hwnd      - Window handle  (Unused)
  91. //    uMessage  - Message number (Unused)
  92. //    wparam    - Extra data     (Unused)
  93. //    lparam    - TOOLTIPTEXT FAR*
  94. //
  95. //  RETURN VALUE:
  96. //    Always returns 0 - Message handled
  97. //
  98. //
  99. //  COMMENTS:
  100. //    This message fills in the lpszText field of the TOOLTIPTEXT
  101. //    structure if code == TTN_NEEDTEXT
  102. //
  103. LRESULT MsgNotify(HWND hwnd, UINT uMessage, WPARAM wparam, LPARAM lparam)
  104. {
  105.     LPTOOLTIPTEXT lpToolTipText;
  106.     static char   szBuffer[64];
  107.     lpToolTipText = (LPTOOLTIPTEXT)lparam;
  108.     if (lpToolTipText->hdr.code == TTN_NEEDTEXT)
  109.     {
  110.         LoadString(hInst,
  111.                    lpToolTipText->hdr.idFrom,   // string ID == command ID
  112.                    szBuffer,
  113.                    sizeof(szBuffer));
  114.         lpToolTipText->lpszText = szBuffer;
  115.     }
  116.     return 0;
  117. }
  118. void EnableMakeCall(HWND hWnd, BOOL bEnable)
  119. {
  120.     EnableMenuItem(GetMenu(hWnd), IDM_MAKECALL, MF_BYCOMMAND | 
  121.         (bEnable ? MF_ENABLED : MF_GRAYED));
  122.     SendMessage(hWndToolbar, TB_ENABLEBUTTON, (WPARAM) IDM_MAKECALL,
  123.         (LPARAM) MAKELONG(bEnable, 0));
  124. }
  125. void EnableHangupCall(HWND hWnd, BOOL bEnable)
  126. {
  127.     EnableMenuItem(GetMenu(hWnd), IDM_HANGUPCALL, MF_BYCOMMAND | 
  128.         (bEnable ? MF_ENABLED : MF_GRAYED));
  129.     SendMessage(hWndToolbar, TB_ENABLEBUTTON, (WPARAM) IDM_HANGUPCALL,
  130.         (LPARAM) MAKELONG(bEnable, 0));
  131. }