Исходник |
#include <windows.h>
#include <iostream>
#include <exception>
#include "resource.h"
HWND hList=NULL;
HINSTANCE hInstance;
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
HWND hWnd;
MSG msg;
WNDCLASS w;
memset(&w, 0, sizeof(WNDCLASS));
w.style = CS_HREDRAW | CS_VREDRAW;
w.lpfnWndProc = WndProc;
w.hInstance = hInstance;
w.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
w.lpszClassName = L"My Class";
w.lpszMenuName=MAKEINTRESOURCE(IDR_MENU1);
RegisterClass(&w);
hWnd = CreateWindow(L"My Class", L"Notepad Status", WS_OVERLAPPEDWINDOW,
200, 200, 200, 200, NULL, NULL, hInstance, NULL);
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lParam)
{
static HDC hdc;
PAINTSTRUCT ps;
static int x, y;
static BOOL bTracking = FALSE;
switch (Message){
case WM_CREATE:
hdc = GetDC(hWnd);
hList=CreateWindowEx(WS_EX_CLIENTEDGE,L"LISTBOX",L"",LBS_STANDARD|LBS_NOINTEGRALHEIGHT|WS_CHILD|WS_VISIBLE,10,10,150,100,hWnd,(HMENU)101,hInstance,NULL);
break;
case WM_COMMAND:
switch(LOWORD(wParam)){
case ID_MENU_TEST2:
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory(&si,sizeof(STARTUPINFO));
ZeroMemory(&pi,sizeof(PROCESS_INFORMATION));
si.cb=sizeof(STARTUPINFO);
si.dwFlags=STARTF_USESHOWWINDOW;
si.wShowWindow=SW_SHOWNORMAL;
CreateProcess(L"C:\\Program Files\\Counter-Strike 2D\\CounterStrike2D.exe",NULL,NULL,NULL,FALSE,NULL,NULL,NULL,&si,&pi);
WaitForInputIdle(GetCurrentProcess(),INFINITE);
if(pi.hProcess){
DWORD dwExitCode=STILL_ACTIVE;
while(dwExitCode==STILL_ACTIVE){
WaitForSingleObject(pi.hProcess,3000);
GetExitCodeProcess(pi.hProcess,&dwExitCode);
SendMessage(hList,LB_INSERTSTRING,0,(LPARAM)L"CS2D is running");
UpdateWindow(hWnd);
}
}
break;
}
break;
case WM_LBUTTONDOWN:
bTracking = TRUE;
x = LOWORD(lParam); //lo - low
y = HIWORD(lParam); //hi - high
MoveToEx(hdc, x, y, NULL);
break;
case WM_LBUTTONUP:
if(bTracking){
bTracking = FALSE;
}
break;
case WM_MOUSEMOVE:
if(bTracking){
x = LOWORD(lParam);
y = HIWORD(lParam);
LineTo(hdc, y, x);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, Message, wParam, lParam);
}
return 0;
}
Комментировать | « Пред. запись — К дневнику — След. запись » | Страницы: [1] [Новые] |