首选需要创建一个对话框
所以应该包含resource.h资源文件
- .h 文件:
- struct DecodeUint{
- UINT meesage;
- LONG (*fun)(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
- };
- #define dim(x) (sizeof(x)/sizeof(x[0]))
- LONG OnInit(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
- LONG OnCommand(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
- LONG OnClose(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
- BOOL CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
- .c文件:
- #include <windows.h>
- #include <windowsx.h>
- #include <CommCtrl.h>
- #include <wingdi.h>
- #include "Border.h"
- #include "resource.h"
- struct DecodeUint DlgMessage[] = {
- WM_INITDIALOG,OnInit,
- WM_COMMAND,OnCommand,
- };
- struct DecodeUint DlgCommand[] = {
- IDOK,OnClose,
- IDCANCEL,OnClose,
- };
- LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
- int WinMain(HINSTANCE hInstance,
- HINSTANCE hPrevInstance,
- LPTSTR lpCmdLine,
- int nCmdShow)
- {
- DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG1),NULL,About);
- return 1;
- }
- BOOL CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
- {
- for (int i = 0;i < dim(DlgMessage);i ++)
- {
- if (DlgMessage[i].meesage == message)
- {
- (*DlgMessage[i].fun)(hDlg,message,wParam,lParam);
- }
- }
- return FALSE;
- }
- LONG OnInit(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
- {
- return TRUE;
- }
- LONG OnCommand(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
- {
- for (int i = 0;i < dim(DlgCommand);i ++)
- {
- if (DlgCommand[i].meesage == LOWORD(wParam))
- {
- (*DlgCommand[i].fun)(hDlg,message,wParam,lParam);
- }
- }
- return TRUE;
- }
- LONG OnClose(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
- {
- EndDialog(hDlg,0);
- return TRUE;
- }
转载于:https://blog.51cto.com/591819849/1104318