c ++ mit zu viel CPU
ok Ich erstelle ein Spiel, aber es verwendet zu viel CPU, aber es verwendet nicht zu viel Speicher. Die CPU nimmt zu und ab. Ich habe zu viele Timer in meinem Spiel. Ich schalte den Timer aus, wenn ich ihn nicht mehr benutze. Das sollte ein Problem verursachen, aber was ich denke, das das Problem verursacht, ist, dass zu viele Nachrichten in meiner Nachrichten-Warteschlange sind. Ich habe einen neuen Laptop, es ist 5 Monate alt und es hat eine hohe CPU. es benutzt ungefähr 40% meiner CPU. Gibt es einen Weg, es zu reduzieren, denn wenn es 40% erreicht, verlangsamt sich das Spiel.
hier ist mein Code
// Xstrike.cpp : Defines the entry point for the application.
//
#include "stdafx.h"
#include "Xstrike.h"
#include <vector>
#define MAX_LOADSTRING 100
// Global Variables:
HINSTANCE hInst; // current instance
TCHAR szTitle[MAX_LOADSTRING]; // The title bar text
TCHAR szWindowClass[MAX_LOADSTRING]; // the main window class name
RECT *rect;
const UINT_PTR EVERYTHING_ID=0x1;
const UINT_PTR LBUTTONDOWN_ID=0x3;
const UINT_PTR TDENEMIE1_ID=0x4;
const UINT_PTR TAENEMIE1_ID=0x5;
const UINT_PTR PROTECTED_ID=0x6;
int conno=2;
int health=0;
int life=3;
int score=0;
int level=1;
int protect=0;
int cursor=0;
HCURSOR hCursor[3];
// Forward declarations of functions included in this code module:
ATOM MyRegisterClass(HINSTANCE hInstance);
BOOL InitInstance(HINSTANCE, int);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM);
struct Enemies
{
int cEnemie1;
int dEnemie1;
int aEnemie1;
int sEnemie1;
int pEnemie1;
bool e1;
time_t now;
time_t tEnemie1;
vector <POINT> vS1Enemie1;
vector <POINT> vS2Enemie1;
};
vector <POINT> vRegularShots;
Enemies Enemie1;
VOID installising()
{
Enemie1.cEnemie1=0;
Enemie1.dEnemie1=1;
Enemie1.aEnemie1=0;
Enemie1.sEnemie1=1;
Enemie1.pEnemie1=550;
Enemie1.e1=true;
POINT pt;
pt.x=0;
pt.y=0;
vRegularShots.push_back(pt);
}
VOID Paint(HDC hdc, HWND hWnd)
{
int lifePos=200;
hdc=GetDC(hWnd);
HDC memDC=CreateCompatibleDC(hdc);
HBITMAP hMemMap=CreateCompatibleBitmap(hdc, 225, 350);
HBITMAP hOldMap=(HBITMAP)SelectObject(memDC, hMemMap);
Graphics draw(memDC);
// Drawing
Image bg(L"bg.jpg");
draw.DrawImage(&bg, 0, 0);
// if regular cursor
if(cursor==0)
{
// Regular shots
Image shot(L"RegularShots.png");
long s=vRegularShots.size();
// Draw shots
for(long index=0; index < (long)vRegularShots.size(); ++index)
{
draw.DrawImage(&shot, vRegularShots[index].x, vRegularShots[index].y);
}
// Update the shots
for(long index=0; index < (long)vRegularShots.size(); ++index)
{
vRegularShots[index].y--;
}
// Delete Shots
for(long index=0; index < (long)vRegularShots.size(); index++)
{
if(vRegularShots[index].y<-16)
{
vRegularShots.erase(vRegularShots.begin()+index);
}
}
// Create Enemies
if(Enemie1.dEnemie1==0)
{
if(Enemie1.cEnemie1<2)
{
if(Enemie1.aEnemie1==0)
{
SetTimer(hWnd, TAENEMIE1_ID, 550, NULL);
}
Enemie1.aEnemie1=1;
Enemie1.cEnemie1++;
}
else
{
KillTimer(hWnd, TDENEMIE1_ID);
}
Enemie1.dEnemie1=1;
}
// Draw enemies
for(long index=0; index < (long)Enemie1.vS1Enemie1.size(); ++index)
{
Image iEnemie1(L"Enemie1.png");
draw.DrawImage(&iEnemie1, Enemie1.vS1Enemie1[index].x, Enemie1.vS1Enemie1[index].y);
}
for(long index=0; index < (long)Enemie1.vS2Enemie1.size(); ++index)
{
Image iEnemie1(L"Enemie1.png");
draw.DrawImage(&iEnemie1, Enemie1.vS2Enemie1[index].x, Enemie1.vS2Enemie1[index].y);
}
// Update enemies
for(long index=0; index < (long)Enemie1.vS1Enemie1.size(); index++)
{
Enemie1.vS1Enemie1[index].x++;
Enemie1.vS1Enemie1[index].y++;
}
for(long index=0; index < (long)Enemie1.vS2Enemie1.size(); index++)
{
Enemie1.vS2Enemie1[index].x--;
Enemie1.vS2Enemie1[index].y++;
}
// Delete enemies
for(long index=0; index < (long)Enemie1.vS1Enemie1.size(); index++)
{
if(Enemie1.vS1Enemie1[index].x>225)
{
Enemie1.vS1Enemie1.erase(Enemie1.vS1Enemie1.begin()+index);
}
// Stop enemie1 timer
if(Enemie1.vS1Enemie1.size()==0&&Enemie1.vS2Enemie1.size()==0)
{
KillTimer(hWnd, TAENEMIE1_ID);
}
}
for(long index=0; index < (long)Enemie1.vS2Enemie1.size(); index++)
{
if(Enemie1.vS2Enemie1[index].x<-21)
{
Enemie1.vS2Enemie1.erase(Enemie1.vS2Enemie1.begin()+index);
}
// Stop enemie1 timer
if(Enemie1.vS1Enemie1.size()==0&&Enemie1.vS2Enemie1.size()==0)
{
KillTimer(hWnd, TAENEMIE1_ID);
}
}
// player hits
if(Enemie1.pEnemie1==550)
{
POINT pt;
GetCursorPos(&pt);
ScreenToClient(hWnd, &pt);
for(long index=0; index < (long)Enemie1.vS1Enemie1.size(); index++)
{
if(((pt.x+5)>=Enemie1.vS1Enemie1[index].x&&(pt.x+5)<=(Enemie1.vS1Enemie1[index].x+17)&&pt.y>=Enemie1.vS1Enemie1[index].y&&pt.y<=(Enemie1.vS1Enemie1[index].y+17))||((pt.x+15)>=Enemie1.vS1Enemie1[index].x&&pt.y>=Enemie1.vS1Enemie1[index].y&&pt.y<=(Enemie1.vS1Enemie1[index].y+17)&&(pt.x+14)<=(Enemie1.vS1Enemie1[index].x+17))||((pt.x+21)>=Enemie1.vS1Enemie1[index].x&&(pt.y+14)>=Enemie1.vS1Enemie1[index].y&&(pt.y+14)<=(Enemie1.vS1Enemie1[index].y+17)&&(pt.x+21)<=(Enemie1.vS1Enemie1[index].x+17))||((pt.x+23)>=Enemie1.vS1Enemie1[index].x&&(pt.y+22)>=Enemie1.vS1Enemie1[index].y&&(pt.y+22)<=(Enemie1.vS1Enemie1[index].y+17)&&(pt.x+23)<=(Enemie1.vS1Enemie1[index].x+17))||((pt.x+13)>=Enemie1.vS1Enemie1[index].x&&(pt.y+31)>=Enemie1.vS1Enemie1[index].y&&(pt.y+31)<=(Enemie1.vS1Enemie1[index].y+17)&&(pt.x+13)<=(Enemie1.vS1Enemie1[index].x+17))||(pt.x>=Enemie1.vS1Enemie1[index].x&&(pt.y+22)>=Enemie1.vS1Enemie1[index].y&&(pt.y+22)<=(Enemie1.vS1Enemie1[index].y+17)&&pt.x<=(Enemie1.vS1Enemie1[index].x+21))||((pt.x+3)>=Enemie1.vS1Enemie1[index].x&&(pt.y+14)>=Enemie1.vS1Enemie1[index].y&&(pt.y+14)<=(Enemie1.vS1Enemie1[index].y+21)&&(pt.x+3)<=(Enemie1.vS1Enemie1[index].x+21)))
{
health+=30;
Enemie1.pEnemie1=0;
InvalidateRect(hWnd, rect, false);
}
}
for(long index=0; index < (long)Enemie1.vS2Enemie1.size(); index++)
{
if(((pt.x+5)>=Enemie1.vS2Enemie1[index].x&&(pt.x+5)<=(Enemie1.vS2Enemie1[index].x+17)&&pt.y>=Enemie1.vS2Enemie1[index].y&&pt.y<=(Enemie1.vS2Enemie1[index].y+17))||((pt.x+15)>=Enemie1.vS2Enemie1[index].x&&pt.y>=Enemie1.vS2Enemie1[index].y&&pt.y<=(Enemie1.vS2Enemie1[index].y+17)&&(pt.x+14)<=(Enemie1.vS2Enemie1[index].x+17))||((pt.x+21)>=Enemie1.vS2Enemie1[index].x&&(pt.y+14)>=Enemie1.vS2Enemie1[index].y&&(pt.y+14)<=(Enemie1.vS2Enemie1[index].y+17)&&(pt.x+21)<=(Enemie1.vS2Enemie1[index].x+17))||((pt.x+23)>=Enemie1.vS2Enemie1[index].x&&(pt.y+22)>=Enemie1.vS2Enemie1[index].y&&(pt.y+22)<=(Enemie1.vS2Enemie1[index].y+17)&&(pt.x+23)<=(Enemie1.vS2Enemie1[index].x+17))||((pt.x+13)>=Enemie1.vS2Enemie1[index].x&&(pt.y+31)>=Enemie1.vS2Enemie1[index].y&&(pt.y+31)<=(Enemie1.vS2Enemie1[index].y+17)&&(pt.x+13)<=(Enemie1.vS2Enemie1[index].x+17))||(pt.x>=Enemie1.vS2Enemie1[index].x&&(pt.y+22)>=Enemie1.vS2Enemie1[index].y&&(pt.y+22)<=(Enemie1.vS2Enemie1[index].y+17)&&pt.x<=(Enemie1.vS2Enemie1[index].x+21))||((pt.x+3)>=Enemie1.vS2Enemie1[index].x&&(pt.y+14)>=Enemie1.vS2Enemie1[index].y&&(pt.y+14)<=(Enemie1.vS2Enemie1[index].y+21)&&(pt.x+3)<=(Enemie1.vS2Enemie1[index].x+21)))
{
health+=30;
Enemie1.pEnemie1=0;
InvalidateRect(hWnd, rect, false);
}
}
}
if(health>225)
{
cursor=1;
SetTimer(hWnd, PROTECTED_ID, 1000, NULL);
life--;
health=0;
InvalidateRect(hWnd, rect, false);
}
// Hits
for(long index=0; index < (long)vRegularShots.size(); index++)
{
for(long indexs=0; indexs < (long)Enemie1.vS1Enemie1.size(); indexs++)
{
if((vRegularShots[index].x>=Enemie1.vS1Enemie1[indexs].x && vRegularShots[index].y>=Enemie1.vS1Enemie1[indexs].y && vRegularShots[index].y<=(Enemie1.vS1Enemie1[indexs].y+17) && vRegularShots[index].x<=(Enemie1.vS1Enemie1[indexs].x+17))||(Enemie1.vS1Enemie1[indexs].x>=vRegularShots[index].x && Enemie1.vS1Enemie1[indexs].y>=vRegularShots[index].y && Enemie1.vS1Enemie1[indexs].y<=(vRegularShots[index].y+16) && Enemie1.vS1Enemie1[indexs].x<=(vRegularShots[index].x+5)))
{
Enemie1.vS1Enemie1.erase(Enemie1.vS1Enemie1.begin()+indexs);
vRegularShots[index].y=-17;
score+=100;
// Stop enemie1 timer
if(Enemie1.vS1Enemie1.size()==0&&Enemie1.vS2Enemie1.size()==0)
{
KillTimer(hWnd, TAENEMIE1_ID);
}
}
}
for(long indexs=0; indexs < (long)Enemie1.vS2Enemie1.size(); indexs++)
{
if((vRegularShots[index].x>=Enemie1.vS2Enemie1[indexs].x && vRegularShots[index].y>=Enemie1.vS2Enemie1[indexs].y && vRegularShots[index].y<=(Enemie1.vS2Enemie1[indexs].y+17) && vRegularShots[index].x<=(Enemie1.vS2Enemie1[indexs].x+17))||(Enemie1.vS2Enemie1[indexs].x>=vRegularShots[index].x && Enemie1.vS2Enemie1[indexs].y>=vRegularShots[index].y && Enemie1.vS2Enemie1[indexs].y<=(vRegularShots[index].y+16) && Enemie1.vS2Enemie1[indexs].x<=(vRegularShots[index].x+5)))
{
Enemie1.vS2Enemie1.erase(Enemie1.vS2Enemie1.begin()+indexs);
vRegularShots[index].y=-17;
score+=100;
// Stop enemie1 timer
if(Enemie1.vS1Enemie1.size()==0&&Enemie1.vS2Enemie1.size()==0)
{
KillTimer(hWnd, TAENEMIE1_ID);
}
}
}
}
}
// If protected
if(cursor==1)
{
if(protect!=4)
{
// Regular shots
Image shot(L"RegularShots.png");
// Draw shots
for(long index=0; index < (long)vRegularShots.size(); ++index)
{
draw.DrawImage(&shot, vRegularShots[index].x, vRegularShots[index].y);
}
// Update the shots
for(long index=0; index < (long)vRegularShots.size(); ++index)
{
vRegularShots[index].y--;
}
// Delete Shots
for(long index=0; index < (long)vRegularShots.size(); index++)
{
if(vRegularShots[index].y<-16)
{
vRegularShots.erase(vRegularShots.begin()+index);
}
}
// Delete Shots
for(long index=0; index < (long)vRegularShots.size(); index++)
{
if(vRegularShots[index].y<-16)
{
vRegularShots.erase(vRegularShots.begin()+index);
}
}
// Create Enemies
if(Enemie1.dEnemie1==0)
{
if(Enemie1.cEnemie1<2)
{
if(Enemie1.aEnemie1==0)
{
SetTimer(hWnd, TAENEMIE1_ID, 550, NULL);
}
Enemie1.aEnemie1=1;
Enemie1.cEnemie1++;
}
else
{
KillTimer(hWnd, TDENEMIE1_ID);
}
Enemie1.dEnemie1=1;
}
// Draw enemies
for(long index=0; index < (long)Enemie1.vS1Enemie1.size(); ++index)
{
Image iEnemie1(L"Enemie1.png");
draw.DrawImage(&iEnemie1, Enemie1.vS1Enemie1[index].x, Enemie1.vS1Enemie1[index].y);
}
for(long index=0; index < (long)Enemie1.vS2Enemie1.size(); ++index)
{
Image iEnemie1(L"Enemie1.png");
draw.DrawImage(&iEnemie1, Enemie1.vS2Enemie1[index].x, Enemie1.vS2Enemie1[index].y);
}
// Update enemies
for(long index=0; index < (long)Enemie1.vS1Enemie1.size(); index++)
{
Enemie1.vS1Enemie1[index].x++;
Enemie1.vS1Enemie1[index].y++;
}
for(long index=0; index < (long)Enemie1.vS2Enemie1.size(); index++)
{
Enemie1.vS2Enemie1[index].x--;
Enemie1.vS2Enemie1[index].y++;
}
// Delete enemies
for(long index=0; index < (long)Enemie1.vS1Enemie1.size(); index++)
{
if(Enemie1.vS1Enemie1[index].x>225)
{
Enemie1.vS1Enemie1.erase(Enemie1.vS1Enemie1.begin()+index);
}
// Stop enemie1 timer
if(Enemie1.vS1Enemie1.size()==0&&Enemie1.vS2Enemie1.size()==0)
{
KillTimer(hWnd, TAENEMIE1_ID);
}
}
}
else
{
KillTimer(hWnd, PROTECTED_ID);
cursor=0;
protect=0;
}
}
// Draw Lifes
for(long index=0; index != life; index++)
{
Image lifes(L"lifes.png");
draw.DrawImage(&lifes, lifePos, 275);
lifePos-=30;
}
SolidBrush textColor(Color(255, 255, 54, 0));
LinearGradientBrush linGrBrush(
Point(1000, 20),
Point(health, 20),
Color(255, 255, 0, 0), // opaque black
Color(0, 0, 0, 0)); // opaque red
SolidBrush databrush(Color(0, 225, 0));
draw.FillRectangle(&databrush, 0, 0, 225, 30);
draw.FillRectangle(&linGrBrush, 0, 0, 225, 30);
FontFamily courieNew(L"Courier New");
Font font(&courieNew, 12, 0, UnitPixel);
PointF pLevel(5.0f, 6.0f);
PointF pScore(100.0f, 6.0f);
WCHAR wLevel[11];
WCHAR wScore[60];
_swprintf(wLevel, L"Level : %d", level);
_swprintf(wScore, L"Score : %d", score);
draw.DrawString(wLevel, -1, &font, pLevel, &textColor);
draw.DrawString(wScore, -1, &font, pScore, &textColor);
BitBlt(hdc, 0, 0, 225, 350, memDC, 0, 0, SRCCOPY);
ReleaseDC(hWnd, hdc);
SelectObject(memDC, hOldMap);
DeleteObject(hMemMap);
DeleteDC(memDC);
}
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
// TODO: Place code here.
MSG msg;
HACCEL hAccelTable;
// Cursors
hCursor[0]=LoadCursor(hInstance, MAKEINTRESOURCE(IDC_CURSOR));
hCursor[1]=LoadCursor(hInstance, MAKEINTRESOURCE(IDC_PROTECTED));
// Initialize GDI+.
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
// Initialize global strings
LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
LoadString(hInstance, IDC_XSTRIKE, szWindowClass, MAX_LOADSTRING);
MyRegisterClass(hInstance);
// Perform application initialization:
if (!InitInstance (hInstance, nCmdShow))
{
return FALSE;
}
hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_XSTRIKE));
// Main message loop:
while (GetMessage(&msg, NULL, 0, 0))
{
if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
GdiplusShutdown(gdiplusToken);
return (int) msg.wParam;
}
//
// FUNCTION: MyRegisterClass()
//
// PURPOSE: Registers the window class.
//
// COMMENTS:
//
// This function and its usage are only necessary if you want this code
// to be compatible with Win32 systems prior to the 'RegisterClassEx'
// function that was added to Windows 95. It is important to call this function
// so that the application will get 'well formed' small icons associated
// with it.
//
ATOM MyRegisterClass(HINSTANCE hInstance)
{
WNDCLASSEX wcex;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_XSTRIKE));
wcex.hCursor = LoadCursor(hInstance, MAKEINTRESOURCE(IDC_CURSOR));
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wcex.lpszMenuName = MAKEINTRESOURCE(IDC_XSTRIKE);
wcex.lpszClassName = szWindowClass;
wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));
return RegisterClassEx(&wcex);
}
//
// FUNCTION: InitInstance(HINSTANCE, int)
//
// PURPOSE: Saves instance handle and creates main window
//
// COMMENTS:
//
// In this function, we save the instance handle in a global variable and
// create and display the main program window.
//
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
HWND hWnd;
hInst = hInstance; // Store instance handle in our global variable
hWnd = CreateWindow(szWindowClass, szTitle, (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX),
CW_USEDEFAULT, 0, 225, 350, NULL, NULL, hInstance, NULL);
if (!hWnd)
{
return FALSE;
}
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
return TRUE;
}
//
// FUNCTION: WndProc(HWND, UINT, WPARAM, LPARAM)
//
// PURPOSE: Processes messages for the main window.
//
// WM_COMMAND - process the application menu
// WM_PAINT - Paint the main window
// WM_DESTROY - post a quit message and return
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;
POINT pt;
switch (message)
{
case WM_CREATE:
installising();
SetTimer(hWnd, EVERYTHING_ID, 1, NULL);
break;
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
// Parse the menu selections:
switch (wmId)
{
case IDM_ABOUT:
DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
break;
case IDM_EXIT:
DestroyWindow(hWnd);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
Paint(hdc, hWnd);
EndPaint(hWnd, &ps);
break;
case WM_LBUTTONDOWN:
GetCursorPos(&pt);
ScreenToClient(hWnd, &pt);
if(conno==1)
{
conno++;
}
else
{
pt.x+=18;
conno--;
}
vRegularShots.push_back(pt);
SetTimer(hWnd, LBUTTONDOWN_ID, 350, NULL);
InvalidateRect(hWnd, rect, false);
break;
case WM_LBUTTONUP:
KillTimer(hWnd, LBUTTONDOWN_ID);
break;
case WM_TIMER:
switch(wParam)
{
case EVERYTHING_ID:
if(Enemie1.e1==true)
{
Enemie1.now=time(NULL);
Enemie1.tEnemie1=Enemie1.now+1;
Enemie1.e1=false;
}
Enemie1.now=time(NULL);
if(Enemie1.now==Enemie1.tEnemie1)
{
SetTimer(hWnd, TDENEMIE1_ID, 550, NULL);
}
InvalidateRect(hWnd, rect, false);
break;
case LBUTTONDOWN_ID:
GetCursorPos(&pt);
ScreenToClient(hWnd, &pt);
if(conno==1)
{
if(cursor==0)
{
conno++;
}
else if(cursor==1)
{
pt.x+=2;
conno++;
}
}
else
{
if(cursor==0)
{
pt.x+=18;
}
else if(cursor==1)
{
pt.x+=15;
}
conno--;
}
vRegularShots.push_back(pt);
break;
case TDENEMIE1_ID:
pt.y=5;
pt.x=-21;
Enemie1.vS1Enemie1.push_back(pt);
pt.y=5;
pt.x=219;
Enemie1.vS2Enemie1.push_back(pt);
Enemie1.dEnemie1=0;
InvalidateRect(hWnd, rect, false);
break;
case TAENEMIE1_ID:
if(Enemie1.pEnemie1!=550)
{
Enemie1.pEnemie1+=550;
}
InvalidateRect(hWnd, rect, false);
break;
case PROTECTED_ID:
protect++;
break;
}
break;
case WM_SETCURSOR:
SetCursor(hCursor[cursor]);
return 0;
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
// Message handler for about box.
INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
UNREFERENCED_PARAMETER(lParam);
switch (message)
{
case WM_INITDIALOG:
return (INT_PTR)TRUE;
case WM_COMMAND:
if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
{
EndDialog(hDlg, LOWORD(wParam));
return (INT_PTR)TRUE;
}
break;
}
return (INT_PTR)FALSE;
}
irgendeine Idee