Нужно собрать инфу о компьютере , думаю сделать это функцией GetSystemInfo. Как вывести информацию по нажатию кнопки в область окна?? Пробовал разные функции но выдает ошибку что нельзы преобразовывать DWORD в LPCSTR, как устранить эти ошибки?
Код | #include <windows.h> #include <windowsx.h>
#define BT_FIRSTBUTTON 10001 void SimWnd_OnDestroy(HWND hwnd); BOOL SimWnd_OnCreate(HWND hwnd, CREATESTRUCT* pCreateStruct); void SimWnd_OnCommand(HWND hwnd, int id , HWND hwndCtl, UINT codeNotify); LRESULT CALLBACK WndProc(HWND hwnd, UINT message,WPARAM wParam,LPARAM lParam); BOOL InitApplication(HINSTANCE hInstance); BOOL InitInstance(HINSTANCE hInsatance, int nCmdShow); LPCSTR szClassName="FrameWndAPI"; LPCSTR szTitle="Создание Windows- приложений";
typedef struct systemInfo { union { DWORD dwOemId; struct { WORD wProcessorArchitecture; WORD wReserved; }; }; DWORD dwPageSize; LPVOID lpMinimumApplicationAddress; LPVOID lpMaximumApplicationAddress; DWORD dwActiveProcessorMask; DWORD dwNumberOfProcessors; DWORD dwProcessorType; DWORD dwAllocationGranularity; WORD wProcessorLevel; WORD wProcessorRevision; } systemInfo; int WINAPI WinMain( HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow) { void GetSystemInfo(systemInfo); // заполнение структуры if(!hPrevInstance) { if(!InitApplication(hInstance)) return FALSE; } if(!InitInstance(hInstance,nCmdShow)) return FALSE; MSG msg; while(GetMessage(&msg,NULL,0,0)) { TranslateMessage(&msg); DispatchMessage(&msg); } typedef struct tagMSG { HWND hwnd; UINT message; WPARAM wParam; LPARAM lParam; DWORD time; POINT pt; }MSG; return static_cast<int>(msg.wParam); } BOOL InitApplication(HINSTANCE hInstance) { WNDCLASS wc; typedef struct tagWNDCLASSA { UINT style; WNDPROC lpfnWndProc; int cbWndExtra; HINSTANCE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackgroud; LPCSTR lpszMenuName; LPCSTR lpszClassName; }WNDCLASS; wc.style=CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc=static_cast<WNDPROC>(WndProc); wc.cbClsExtra=0; wc.cbWndExtra=0; wc.hInstance=hInstance; wc.hIcon=LoadIcon(NULL, IDI_ASTERISK); wc.hCursor=LoadCursor(NULL,IDC_ARROW); wc.hbrBackground= reinterpret_cast<HBRUSH>(COLOR_WINDOW+1); wc.lpszMenuName=NULL; wc.lpszClassName= "FrameWndAPI"; return RegisterClass(&wc); } BOOL InitInstance( HINSTANCE hInstance, int nCmdShow) { HWND hWnd; hWnd = CreateWindow( "FrameWndAPI", "Создание Windows- приложений",WS_OVERLAPPEDWINDOW | WS_VSCROLL,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL, hInstance,NULL); if(!hWnd)return FALSE; if(ShowWindow(hWnd, nCmdShow)) return FALSE; if(!UpdateWindow(hWnd)) return FALSE; return TRUE; } LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam, LPARAM lParam) { switch(message) { HANDLE_MSG(hwnd, WM_DESTROY, SimWnd_OnDestroy); HANDLE_MSG(hwnd,WM_CREATE,SimWnd_OnCreate); HANDLE_MSG(hwnd,WM_COMMAND,SimWnd_OnCommand); CreateWindowEx (WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILDWINDOW | WS_BORDER | WS_VISIBLE | WS_TABSTOP | ES_LEFT | ES_AUTOHSCROLL, 5, 65, 400, 24, hwnd, (HMENU) 102, NULL, 0); SetWindowText (hwnd, "Функция вывода текста и его тени на экран"); return 0; break; default: return DefWindowProc(hwnd,message,wParam,lParam); } return 0; } void SimWnd_OnDestroy(HWND hwnd) { PostQuitMessage(0); } BOOL SimWnd_OnCreate(HWND hwnd, CREATESTRUCT* pCreateStruct) { CreateWindow("button","Кнопка",WS_CHILD | WS_VISIBLE,10,10,90,25,hwnd,HMENU(BT_FIRSTBUTTON), pCreateStruct->hInstance, NULL); return TRUE; } void SimWnd_OnCommand(HWND hwnd, int id , HWND hwndCtl, UINT codeNotify) { switch(id) { case BT_FIRSTBUTTON: // вывод GetSystemInfo break; } }
|
|