需要先添加对话框,并且修改确定按钮的ID值
- .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);
- LONG OnBtnClick(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[] = {
- IDBTN,OnBtnClick,
- IDCANCEL,OnClose,
- };
- HINSTANCE g_hInst;
- HWND hStatic;
- LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
- int WinMain(HINSTANCE hInstance,
- HINSTANCE hPrevInstance,
- LPTSTR lpCmdLine,
- int nCmdShow)
- {
- g_hInst = hInstance;
- 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 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 OnInit(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
- {
- hStatic = CreateWindow(TEXT("static"),TEXT("static text"),WS_CHILD | WS_VISIBLE | WS_BORDER | SS_CENTER | SS_CENTERIMAGE,
- 10,10,200,200,hDlg,(HMENU)101,g_hInst,NULL);
- return TRUE;
- }
- LONG OnClose(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
- {
- EndDialog(hDlg,0);
- return TRUE;
- }
- LONG OnBtnClick(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
- {
- //1 获取文本内容 修改对话框标题
- //TCHAR * pc;
- //int count = Static_GetTextLength(hStatic);
- //pc = new TCHAR[count+1];
- //Static_GetText(hStatic,pc,count+1);
- //SetWindowText(hDlg,pc);
- //delete pc;
- //2 设置按钮不可用
- Button_Enable(GetDlgItem(hDlg,IDCANCEL),FALSE);
- return 0;
- }