CPC_GUI.cpp
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:5k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /* Copyright (C) 2003 MySQL AB
  2.    This program is free software; you can redistribute it and/or modify
  3.    it under the terms of the GNU General Public License as published by
  4.    the Free Software Foundation; either version 2 of the License, or
  5.    (at your option) any later version.
  6.    This program is distributed in the hope that it will be useful,
  7.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  8.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  9.    GNU General Public License for more details.
  10.    You should have received a copy of the GNU General Public License
  11.    along with this program; if not, write to the Free Software
  12.    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
  13. #include "stdafx.h"
  14. HINSTANCE hInst ;
  15. TCHAR szTitle[MAX_LOADSTRING] ;
  16. TCHAR szWindowClass[MAX_LOADSTRING] ;
  17. static CNdbControls controls ;
  18. int APIENTRY WinMain(HINSTANCE hInstance,
  19.                      HINSTANCE hPrevInstance,
  20.                      LPSTR     lpCmdLine,
  21.                      int       nCmdShow){
  22. MSG msg;
  23. HACCEL hAccelTable;
  24. LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING) ;
  25. LoadString(hInstance, IDC_CPC_GUI, szWindowClass, MAX_LOADSTRING) ;
  26. NdbRegisterClass(hInstance);
  27. if (!InitInstance (hInstance, nCmdShow)) {
  28. return FALSE;
  29. }
  30. hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_CPC_GUI);
  31. while (GetMessage(&msg, NULL, 0, 0)){
  32. if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)){
  33. TranslateMessage(&msg);
  34. DispatchMessage(&msg);
  35. }
  36. }
  37. return msg.wParam;
  38. }
  39. ATOM NdbRegisterClass(HINSTANCE hInstance){
  40. WNDCLASSEX wcex;
  41. wcex.cbSize = sizeof(WNDCLASSEX); 
  42. wcex.style = CS_HREDRAW | CS_VREDRAW ;
  43. wcex.lpfnWndProc = (WNDPROC)WndProc;
  44. wcex.cbClsExtra = 0;
  45. wcex.cbWndExtra = 0;
  46. wcex.hInstance = hInstance;
  47. wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_CPC_GUI);
  48. wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
  49. wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW);
  50. wcex.lpszMenuName = (LPCSTR)IDC_CPC_GUI;
  51. wcex.lpszClassName = szWindowClass;
  52. wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL);
  53. return RegisterClassEx(&wcex);
  54. }
  55. BOOL InitInstance(HINSTANCE hInstance, int nCmdShow){
  56.    
  57. HWND hWnd;
  58.    hInst = hInstance;
  59.    hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
  60.       CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
  61.  InitCommonControls(); 
  62.    if (!hWnd) return FALSE ;
  63.    ShowWindow(hWnd, nCmdShow) ;
  64.    UpdateWindow(hWnd) ;
  65.    return TRUE;
  66. }
  67. LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){
  68. int wmId, wmEvent;
  69. PAINTSTRUCT ps;
  70. HDC hdc;
  71. int c = 0 ;
  72. switch (message) 
  73. {
  74. case WM_CREATE:
  75. _assert(controls.Create(hInst, hWnd)) ;
  76. return 0 ;
  77. case WM_COMMAND:
  78. wmId    = LOWORD(wParam); 
  79. wmEvent = HIWORD(wParam); 
  80. switch (wmId){
  81. case IDM_ABOUT:
  82.    DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);
  83.    break;
  84. case IDM_EXIT:
  85.    DestroyWindow(hWnd);
  86.    break;
  87. default:
  88.    return DefWindowProc(hWnd, message, wParam, lParam);
  89. }
  90. break;
  91. case WM_NOTIFY:
  92. switch (((LPNMHDR) lParam)->code) { 
  93. case TTN_GETDISPINFO: {
  94. LPTOOLTIPTEXT lpttt; 
  95. lpttt = (LPTOOLTIPTEXT) lParam; 
  96. lpttt->hinst = hInst;
  97. int idButton = lpttt->hdr.idFrom; 
  98.         
  99. switch (idButton){ 
  100. case IDM_NEW: 
  101. lpttt->lpszText = MAKEINTRESOURCE(IDS_TIP_NEW); 
  102. break; 
  103. case IDM_DELETE: 
  104. lpttt->lpszText = MAKEINTRESOURCE(IDS_TIP_DELETE); 
  105. break; 
  106. case IDM_PROPS: 
  107. lpttt->lpszText = MAKEINTRESOURCE(IDS_TIP_PROPS); 
  108. break; 
  109. break; 
  110. }
  111. case TVN_SELCHANGED: {
  112. LPNMTREEVIEW pnmtv ;
  113. pnmtv = (LPNMTREEVIEW) lParam ;
  114. controls.ToggleListViews(pnmtv) ;
  115. break ;
  116. }
  117. case NM_RCLICK: {
  118. LPNMHDR lpnmh ;
  119. lpnmh = (LPNMHDR) lParam ;
  120. switch(lpnmh->idFrom){
  121. case ID_TREEVIEW:
  122. break;
  123. default:
  124. break ;
  125. }
  126. }
  127.         default: 
  128.             break; 
  129.     } 
  130. case WM_PAINT:
  131. hdc = BeginPaint(hWnd, &ps) ;
  132. EndPaint(hWnd, &ps);
  133. break;
  134. case WM_SIZE:
  135. controls.Resize() ;
  136.       return 0 ;
  137. case WM_DESTROY:
  138. PostQuitMessage(0);
  139. break;
  140. default:
  141. return DefWindowProc(hWnd, message, wParam, lParam);
  142.    }
  143.    return 0;
  144. }
  145. LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam){
  146. switch (message){
  147. case WM_INITDIALOG:
  148. return TRUE;
  149. case WM_COMMAND:
  150. if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL){
  151. EndDialog(hDlg, LOWORD(wParam));
  152. return TRUE;
  153. }
  154. break;
  155. }
  156.     return FALSE;
  157. }