wndclass.hbrBackground=GetStockObject(WHITE_BRUSH); 这一句为什么出错?? 解决了就给分
// this is my first windows application
//name: SimpleWindows
//-------------------
#include <windows.h>
LONG FAR PASCAL WindowFun(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain(HINSTANCE CurInstance,HINSTANCE PreInstance,LPSTR CmdParaStr,int ShowStyle )
{
static char ProgName[]="MyProg1_1"; // this is application name
HWND hwnd; //this is windows's piont
MSG msg; //the message struct
WNDCLASS wndclass; //windows type
//register
//regist one time is ok
if(!PreInstance)
{
wndclass.lpszClassName =ProgName;
wndclass.hInstance = CurInstance;
wndclass.lpfnWndProc =WindowFun;
wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wndclass.hCursor =LoadCursor(NULL,IDC_IBEAM);
wndclass.lpszMenuName =NULL;
wndclass.hbrBackground=GetStockObject(WHITE_BRUSH);
wndclass.style =CS_HREDRAW|CS_VREDRAW;
wndclass.cbClsExtra =0;
wndclass.cbWndExtra =0;
RegisterClass(&wndclass);
}
//create the windows
hwnd=CreateWindow(ProgName, //Need register windows class name
ProgName, //the window naem
WS_OVERLAPPEDWINDOW,//the window style
100, //the x
100, // the y
300, // the x
200, //the y
NULL, //father windows handle
NULL, //menu handle
CurInstance, //this window's handle
NULL); //the param
//show windows
ShowWindow(hwnd,ShowStyle);
UpdateWindow(hwnd);
//message
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam ;
}
//-----------------------
//windows process funcation
//-----------------------
long FAR PASCAL WindowFun(HWND hwnd,
UINT message,
WPARAM wParam,
LPARAM lParam)
{
switch(message)
{
case WM_DESTROY: //Close windows
PostQuitMessage(0);
return (0);
case WM_PAINT: //ONPAINT
HDC hDC;
PAINTSTRUCT paintStruct;
hDC=BeginPaint(hwnd,&paintStruct);
EndPaint(hwnd,&paintStruct);
return (0);
default: //other
return DefWindowProc(hwnd,message,wParam,lParam);
}
}
//=====================================
错误信息如下:
Compiling...
SimpleWindows.cpp
E:\WebTest\VCStudy\SimpleWindows\SimpleWindows.cpp(25) : error C2440: '=' : cannot convert from 'void *' to 'struct HBRUSH__ *'
Conversion from 'void*' to pointer to non-'void' requires an explicit cast
Error executing cl.exe.