内存使用监视器[对话框]
#include <windows.h> #include "resource.h" #define IDT_TIMER 3000 BOOL __stdcall DlgProc(HWND, UINT, WPARAM, LPARAM); int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int) { int nResult = ::DialogBoxParam( hInstance, // 实例句柄 (LPCTSTR)IDD_MAIN, // 对话框资源ID号 NULL, // 父窗口句柄 DlgProc, // 消息处理函数 NULL); // 对话框初始化的值,在WM_INITDIALOG消息的lParam参数中取出 return 0; } BOOL __stdcall DlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { switch(message) { case WM_INITDIALOG: // 初始化对话框 ::SetTimer(hDlg, IDT_TIMER, 500, NULL); break; case WM_TIMER: char sz[5][32]; MEMORYSTATUS ms; // 取得内存状态信息 ::GlobalMemoryStatus(&ms); wsprintf(sz[0], "%-5d MB", ms.dwTotalPhys/(1024*1024)); ::SetWindowText(::GetDlgItem(hDlg, IDC_STATIC1), sz[0]); wsprintf(sz[1], "%-5d MB", ms.dwAvailPhys/(1024*1024)); ::SetWindowText(::GetDlgItem(hDlg, IDC_STATIC2), sz[1]); wsprintf(sz[2], "%-5d MB", ms.dwTotalVirtual/(1024*1024)); ::SetWindowText(::GetDlgItem(hDlg, IDC_STATIC3), sz[2]); wsprintf(sz[3], "%-5d MB", ms.dwAvailVirtual/(1024*1024)); ::SetWindowText(::GetDlgItem(hDlg, IDC_STATIC4), sz[3]); wsprintf(sz[4], "%d%%", ms.dwMemoryLoad); ::SetWindowText(::GetDlgItem(hDlg, IDC_STATIC5), sz[4]); break; case WM_COMMAND: switch(LOWORD(wParam)) { case IDCANCEL: ::EndDialog (hDlg, IDCANCEL); break; } break; } return 0; }