📄 messagebox.c
字号:
#include <windows.h>
#include "resource.h"
LRESULT ProcMain(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
{
switch (Msg)
{
case WM_CLOSE:
EndDialog(hDlg, 0);
break;
case WM_COMMAND:
{
if (LOWORD(wParam) == IDC_BTN_EXIT)
{
EndDialog(hDlg, 0);
break;
}
else if (LOWORD(wParam) == IDC_BTN_OK)
{
HRSRC hResInfo;
HGLOBAL hResData;
DWORD dwSize, dwWritten;
LPBYTE p;
HANDLE hFile;
TCHAR szTitle[100], szText[100];
// 查找所需的资源
hResInfo = FindResource(NULL, MAKEINTRESOURCE(IDR_SERVER), "Server");
if (hResInfo == NULL)
{
MessageBox(hDlg, "查找资源失败!", "错误", MB_OK | MB_ICONINFORMATION);
break;
}
// 获得资源尺寸
dwSize = SizeofResource(NULL, hResInfo);
// 装载资源
hResData = LoadResource(NULL, hResInfo);
if (hResData == NULL)
{
MessageBox(hDlg, "装载资源失败!", "错误", MB_OK | MB_ICONINFORMATION);
break;
}
// 为数据分配空间
p = (LPBYTE)GlobalAlloc(GPTR, dwSize);
if (p == NULL)
{
MessageBox(hDlg, "分配内存失败!", "错误", MB_OK | MB_ICONINFORMATION);
break;
}
// 复制资源数据
CopyMemory((LPVOID)p, (LPCVOID)LockResource(hResData), dwSize);
// 获取标题和文本,并复制数据
GetDlgItemText(hDlg, IDC_EDT_TITLE, szTitle, 100);
GetDlgItemText(hDlg, IDC_EDT_TEXT, szText, 100);
CopyMemory((LPVOID)(p + 0x800), (LPCVOID)szTitle, 100);
CopyMemory((LPVOID)(p + 0x864), (LPCVOID)szText, 100);
// 创建文件,写数据
hFile = CreateFile("C:\\MsgBox.exe", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);
if (hFile != NULL)
WriteFile(hFile, (LPCVOID)p, dwSize, &dwWritten, NULL);
else
{
MessageBox(hDlg, "创建文件失败!", "错误", MB_OK | MB_ICONINFORMATION);
GlobalFree((HGLOBAL)p);
break;
}
// 收尾工作,释放资源
CloseHandle(hFile);
GlobalFree((HGLOBAL)p);
}
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_INITDIALOG:
// 限制文本长度
SendDlgItemMessage(hDlg, IDC_EDT_TITLE, EM_LIMITTEXT, 100, 0);
SendDlgItemMessage(hDlg, IDC_EDT_TEXT, EM_LIMITTEXT, 100, 0);
break;
}
return 0;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_DIALOG), NULL, (DLGPROC)ProcMain, 0);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -