I'm suspecting this is occurring on the return from WinMain. You can either
cast the value, or else use ExitProcess instead of return. Either one will
Here is my code:
#include <windows.h>
#include "HTM.h"
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);
const int NUMLINES = (sizeof Words) / (sizeof Words[0]);
//My functions
void DrawOptions(HDC,HWND,BOOL,BOOL,int);
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInnstance,
PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT ("HTM");
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
wndclass.style = CS_HREDRAW |CS_VREDRAW;
wndclass.lpfnWndProc = WndProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hInstance = hInstance;
wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION);
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName = szAppName;
if (!RegisterClass (&wndclass))
{
MessageBox (NULL, TEXT ("xxx"),szAppName, MB_ICONERROR);
return 0;
}
hwnd = CreateWindow (szAppName, TEXT ("HTM ! "),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL, hInstance, NULL);
ShowWindow(hwnd, iCmdShow);
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 int cxChar, cxCaps, cyChar, cxClient, cyClient;
HDC hdc;
static int i;
PAINTSTRUCT ps;
TCHAR szBuffer[10];
TEXTMETRIC tm;
static int ColorTYPE = 1;
switch (message)
{
case WM_CREATE:
hdc = GetDC (hwnd);
GetTextMetrics (hdc, &tm);
cxChar = tm.tmAveCharWidth;
cxCaps = (tm.tmPitchAndFamily & 1 ? 3 : 2) * cxChar / 2;
cyChar = tm.tmHeight + tm.tmExternalLeading;
ReleaseDC (hwnd, hdc);
return 0;
case WM_SIZE:
cxClient = LOWORD(lParam);
cyClient = HIWORD(lParam);
return 0;
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps);
//MESSAGE BOARD COLORS
DrawOptions(hdc,hwnd,TRUE,TRUE,ColorTYPE);
for (i = 0; i < NUMLINES; i++)
{
TextOut (hdc,0,cyChar * i,Words[i].szWord,
lstrlen(Words[i].szWord));
TextOut (hdc,20 * cxChar,cyChar * i,szBuffer,
wsprintf(szBuffer,TEXT("%2d"),Words[i].iWLenght));
}
EndPaint (hwnd, &ps);
return 0;
case WM_DESTROY:
PostQuitMessage (0);
return 0;
}
return DefWindowProc (hwnd, message, wParam, lParam);
}
void DrawOptions(HDC hdc,HWND hwnd,BOOL b_OPAQUE,
BOOL b_GRAYBRUSH,int i_ColorTYPE)
{
//Windows objects
HBRUSH hBrush;
//CHOICE OF OPAQUE OR TRANSPARENT
if (b_OPAQUE == TRUE)
{SetBkMode(hdc,OPAQUE);
SetBkColor(hdc,0);}
else
{SetBkMode(hdc,TRANSPARENT);
SetBkColor(hdc,22000);}
//CHOICE OF COLOR TYPE
if (i_ColorTYPE == 1)
{SetTextColor(hdc,65535);}
else if (i_ColorTYPE == 2)
{SetTextColor(hdc,16777215);}
else if (i_ColorTYPE == 3)
{SetTextColor(hdc,9999);}
//SELECT BRUSH COLOR
if (b_GRAYBRUSH == TRUE)
{hBrush = (HBRUSH) GetStockObject(GRAY_BRUSH);}
else
{hBrush = (HBRUSH) GetStockObject(WHITE_BRUSH);}
//SELECT THE BRUSH INTO THE DEVICE CONTEXT
SelectObject(hdc,hBrush);
//DISPLAY RECTANGLE
Rectangle(hdc,0,0,300,300);
}
I have seen this warning before, but now I don't know how to get rid of
it !
Please help, anyone,
Ross