创建对话框

首选需要创建一个对话框

所以应该包含resource.h资源文件

  
  
  
  
  1. .h 文件:  
  2.  
  3. struct DecodeUint{  
  4.  UINT meesage;  
  5.  LONG (*fun)(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);  
  6. };  
  7.  
  8. #define dim(x) (sizeof(x)/sizeof(x[0]))  
  9.  
  10. LONG OnInit(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);  
  11. LONG OnCommand(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);  
  12. LONG OnClose(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);  
  13.  
  14. BOOL CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);  
  15.  

 

  
  
  
  
  1. .c文件:  
  2.  
  3. #include <windows.h>  
  4. #include <windowsx.h>  
  5. #include <CommCtrl.h>  
  6. #include <wingdi.h>  
  7. #include "Border.h"  
  8. #include "resource.h"  
  9.  
  10. struct DecodeUint DlgMessage[] = {  
  11.  WM_INITDIALOG,OnInit,  
  12.  WM_COMMAND,OnCommand,  
  13. };  
  14.  
  15. struct DecodeUint DlgCommand[] = {  
  16.  IDOK,OnClose,  
  17.  IDCANCEL,OnClose,  
  18. };  
  19.  
  20.  
  21. LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);  
  22.  
  23. int WinMain(HINSTANCE hInstance,  
  24.    HINSTANCE hPrevInstance,  
  25.    LPTSTR    lpCmdLine,  
  26.    int       nCmdShow)  
  27. {  
  28.  DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG1),NULL,About);  
  29.  return 1;  
  30. }  
  31.  
  32. BOOL CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)  
  33. {  
  34.     for (int i = 0;i < dim(DlgMessage);i ++)  
  35.     {  
  36.   if (DlgMessage[i].meesage == message)  
  37.   {  
  38.    (*DlgMessage[i].fun)(hDlg,message,wParam,lParam);  
  39.   }  
  40.     }  
  41.  return FALSE;  
  42. }  
  43.  
  44. LONG OnInit(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)  
  45. {  
  46.  return TRUE;  
  47. }  
  48.  
  49. LONG OnCommand(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)  
  50. {  
  51.  for (int i = 0;i < dim(DlgCommand);i ++)  
  52.  {  
  53.   if (DlgCommand[i].meesage == LOWORD(wParam))  
  54.   {  
  55.    (*DlgCommand[i].fun)(hDlg,message,wParam,lParam);  
  56.   }  
  57.  }  
  58.  
  59.  return TRUE;  
  60. }  
  61.  
  62. LONG OnClose(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)  
  63. {  
  64.  EndDialog(hDlg,0);  
  65.  return TRUE;  
  66. }  
  67.  

 

你可能感兴趣的:(资源,文件,对话框)