MENU.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:4k
源码类别:

Windows编程

开发平台:

Visual C++

  1. //*---------------------------------------------------------------------------------
  2. //|  ODBC System Administrator
  3. //|
  4. //|  This code is furnished on an as-is basis as part of the ODBC SDK and is
  5. //|  intended for example purposes only.
  6. //|
  7. //|   Title:   MENU.H
  8. //|      This file contains our menu ids.
  9. //*---------------------------------------------------------------------------------
  10. #ifndef menu_DEFS
  11. #define menu_DEFS
  12. #include <Windows.h>
  13. //
  14. // Following are indexes into the menu table
  15. //
  16. enum {
  17.    MENU_SQLTABLES,
  18.    MENU_SQLCOLUMNS,
  19.    MENU_SQLSTATISTICS,
  20.    MENU_SQLPRIMARYKEYS,
  21.    MENU_SQLFOREIGNKEYS,
  22.    MENU_SQLTABLEPRIVILEGES,
  23.    MENU_SQLCOLUMNPRIVILEGES,
  24.    MENU_SQLSPECIALCOLUMNS,
  25.    MENU_SQLPROCEDURES,
  26.    MENU_SQLPROCEDURECOLUMNS,
  27.    MENU_SQLTRANSACT
  28.    };
  29. #define NUM_MENU_FLAGS     MENU_SQLTRANSACT
  30. #define  IDM_WINDOW_POS      6
  31. #define  IDM_FIRSTCHILD       200
  32. #define  IDM_FILE_MENU        0
  33. #define  IDM_CONNECT          100
  34. #define  IDM_DISCONNECT       101
  35. #define  IDM_EXECUTE_FILE     102
  36. #define  IDM_OPEN             103
  37. #define  IDM_CLOSE            104
  38. #define  IDM_SAVE             105
  39. #define  IDM_SAVEAS           106
  40. #define  IDM_EXIT             107
  41. #define  IDM_EDIT_MENU        1
  42. #define  IDM_UNDO             108
  43. #define  IDM_CUT              109
  44. #define  IDM_COPY             110
  45. #define  IDM_PASTE            111
  46. #define  IDM_SELECT_ALL       112
  47. #define  IDM_EXECUTE_MENU     2
  48. #define  IDM_EXECUTE_NOW      113
  49. #define  IDM_COMMIT           115
  50. #define  IDM_ROLLBACK         116
  51. #define  IDM_PIPE_MENU        3
  52. #define  IDM_PIPE_EDIT        120
  53. #define  IDM_PIPE_DO          121
  54. #define  IDM_INFO_MENU        4
  55. #define  IDM_MANAGE_DSNS      125
  56. #define  IDM_DATA_SOURCES     126
  57. #define  IDM_DATA_TYPES       127
  58. #define  IDM_FUNCTIONS        128
  59. #define  IDM_ODBC_INFO        129
  60. #define  IDM_LIST_MENU        5
  61. #define  IDM_TABLES           131
  62. #define  IDM_COLUMNS          132
  63. #define  IDM_STATISTICS       133
  64. #define  IDM_PRIMARY_KEYS     134
  65. #define  IDM_FOREIGN_KEYS     135
  66. #define  IDM_TABLE_PRIVS      136
  67. #define  IDM_COLUMN_PRIVS     137
  68. #define  IDM_SPECIAL_COLUMNS  138
  69. #define  IDM_PROCEDURES       139
  70. #define  IDM_PROC_COLUMNS     140
  71. #define  IDM_WINDOW_MENU      6
  72. #define  IDM_FONT             150
  73. #define  IDM_CASCADE          151
  74. #define  IDM_TILE             152
  75. #define  IDM_ARRANGE          153
  76. #define  IDM_CLOSEALL         154
  77. #define  IDM_ABOUT_MENU       7
  78. #define  IDM_HELP             160
  79. #define  IDM_ABOUT            161
  80. #define  IDM_MOVE_WINDOW      165         // F6 key
  81. #define MNU_HAVE_CONNECTS ((lpActiveConn) ? MF_ENABLED : MF_GRAYED)
  82. // Normally menu numbers start at 0 and go up, which is how each offset is shown
  83. //    in this file.  If a child MDI window is zoomed, however, then the child
  84. //    system menu becomes menu number 0 and others are offset.  The following
  85. //    macro will look at the current active window and return the correct
  86. //    0 based menu number.
  87. #define GETMENUNUM(iMenu) (iMenu - ((hwndCurMDIChild) ? (int)IsZoomed(hwndCurMDIChild) : 0))
  88. #define CBITS (sizeof(UDWORD) * 8)
  89. #define BitSet(lpa, pos)   
  90.    (lpa[((pos) / CBITS)] |= 1 << ((pos) - (CBITS * ((pos) / CBITS))))
  91. #define BitClear(lpa, pos) 
  92.    (lpa[((pos) / CBITS)] &= ~(1 << ((pos) - (CBITS * ((pos) / CBITS)))))
  93. #define BitGet(lpa, pos)   
  94.    (lpa[((pos) / CBITS)] & (1 << ((pos) - (CBITS * ((pos) / CBITS)))))
  95. #define BitFlip(lpa,pos)   
  96.    (BitGet(lpa,pos)) ? BitClear(lpa,pos) : BitSet(lpa,pos)
  97. #define MINREQUIREDINTS(items) (UDWORD)((items / CBITS) + ((items % CBITS) ? 1 : 0))
  98. //*---------------------------------------------------------------------------------
  99. //|   Function prototypes
  100. //*---------------------------------------------------------------------------------
  101. VOID WINAPI ResetMenu(HMENU hMenu, int iMenu);
  102. #endif