#include <windows.h> // 头文件INT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
// 窗口函数声明,这一函数将处理发往应用程序窗口的各种消息
char szClassName[]="windowclass1"; // 窗体结构的名称
char szAppTitle[]="chen"; // 窗口的标题
INT PASCAL WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR
lpszCmdParam,INT nCmdShow)// WinMain()函数的定义
{
HWND hMainWnd; // 窗口句柄
MSG msg; // 消息结构体
WNDCLASS myWC; // 窗口结构体 if(!hPrevInstance) // hPrevInstance表示前一应用程序实例句柄,
// 这一语句的作用是判断是否已有应用程序的
// 的实例在运行// 应用程序在建立窗口之前,应先规定所要建立的窗口的特征,下面的一系列语句通过给窗口
// 结构体的数据成员赋值来规定所要建立的窗口的特征
{
myWC.style=CS_HREDRAW|CS_VREDRAW; // 窗口风格
myWC.lpfnWndProc=WndProc; // 本窗口的消息处理函数(窗口函数)
myWC.cbClsExtra=0; // 附加参数
myWC.cbWndExtra=0; // 附加参数
myWC.hInstance=hInstance; // 当前应用程序实例句柄
myWC.hIcon=LoadCursor(NULL,IDI_APPLICATION);
// 窗口图标
myWC.hbrBackground=GetStockObject(WHITE_BRUSH);
// 窗口背景色
myWC.lpszMenuName=NULL; // 窗口菜单
myWC.lpszClassName=szClassName; // 给窗体结构体命名
// CreateWindow()函数将根据窗口结构体
// 的名称来建立窗口
RegisterClass(&myWC); // 注册窗口 } hMainWnd=CreateWindow(szClassName, // 窗体结构体的名称
szAppTitle, // 窗口的标题
WS_OVERLAPPEDWINDOW,//窗口风格为可重叠窗口
// 下面四个参数代表窗口左上角x,y坐标和窗口的宽度与高度,都使用默认值
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
// 下面参数分别为父窗口句柄、窗口菜单句柄、应用程序实例句柄和附加参数
NULL,NULL,hInstance,NULL);
ShowWindow(hMainWnd,SW_SHOWMAXIMIZED); // 显示最大化窗口
UpdateWindow(hMainWnd); // 更新窗口
// 下面用While()循环来建立消息循环
while(GetMessage(&msg,NULL,0,0)) // 获取消息,填充msg结构体
{
TranslateMessage(&msg); // 翻译键盘消息
DispatchMessage(&msg); // 向窗口函数发送消息,让窗口函数处理
}
return msg.wParam;
}INT CALLBACK WndProc(HWND hMainwnd,UINT message,WPARAM wParam,LPARAM lParam)
{ // 窗口函数定义
char messageleft[]="the left button have been pushed";
char messageright[]="the right button have been pushed";
switch(message) // 判定消息标识符
{
case WM_RBUTTONDOWN:
{
MessageBox(GetFocus(),messageright,"chen",MB_OK|MB_ICONINFORMATION);
break;
}
case WM_LBUTTONDOWN:
{
MessageBox(GetFocus(),messageleft,"chen",MB_OK|MB_ICONINFORMATION);
break;
}
case WM_DESTROY: // 关闭应用程序窗口时发出的消息
{
PostQuitMessage(0); // 发出WM_QUIT消息,结束应用程序
return 0;
}
default :
break;
} return DefWindowProc(hMainwnd,message,wParam,lParam);
// 其他没有处理的消息交给Windows做默认处理
}--------------------Configuration: Project4_2 - Win32 Debug--------------------
Compiling...
Cpp1.cpp
D:\Visual C++6.0程序设计\Project4_2\Project4_2\Cpp1.cpp(23) : error C2440: '=' : cannot convert from 'int (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)' to 'long (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
D:\Visual C++6.0程序设计\Project4_2\Project4_2\Cpp1.cpp(29) : 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.Project4_2.exe - 2 error(s), 0 warning(s)提示错误的是以下两个
myWC.lpfnWndProc=WndProc; // 本窗口的消息处理函数(窗口函数)
myWC.hbrBackground=GetStockObject(WHITE_BRUSH);
你的窗口函数定义不对LRESULT CALLBACK WindowProc( HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
);myWC.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
第一个,将定义的int 改成LRESULT看看
// 窗口函数声明,这一函数将处理发往应用程序窗口的各种消息
char szClassName[]="windowclass1"; // 窗体结构的名称
char szAppTitle[]="chen"; // 窗口的标题
INT PASCAL WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR
lpszCmdParam,INT nCmdShow)// WinMain()函数的定义
{
HWND hMainWnd; // 窗口句柄
MSG msg; // 消息结构体
WNDCLASS myWC; // 窗口结构体
if(!hPrevInstance) // hPrevInstance表示前一应用程序实例句柄,
// 这一语句的作用是判断是否已有应用程序的
// 的实例在运行
// 应用程序在建立窗口之前,应先规定所要建立的窗口的特征,下面的一系列语句通过给窗口
// 结构体的数据成员赋值来规定所要建立的窗口的特征
{
myWC.style=CS_HREDRAW|CS_VREDRAW; // 窗口风格
myWC.lpfnWndProc=WndProc; // 本窗口的消息处理函数(窗口函数)
myWC.cbClsExtra=0; // 附加参数
myWC.cbWndExtra=0; // 附加参数
myWC.hInstance=hInstance; // 当前应用程序实例句柄
myWC.hIcon= LoadCursor(NULL,IDI_APPLICATION);
// 窗口图标
myWC.hbrBackground= (HBRUSH)GetStockObject(WHITE_BRUSH);
// 窗口背景色
myWC.lpszMenuName=NULL; // 窗口菜单
myWC.lpszClassName=szClassName; // 给窗体结构体命名
// CreateWindow()函数将根据窗口结构体
// 的名称来建立窗口
RegisterClass(&myWC); // 注册窗口
}
hMainWnd=CreateWindow(szClassName, // 窗体结构体的名称
szAppTitle, // 窗口的标题
WS_OVERLAPPEDWINDOW,//窗口风格为可重叠窗口
// 下面四个参数代表窗口左上角x,y坐标和窗口的宽度与高度,都使用默认值
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
// 下面参数分别为父窗口句柄、窗口菜单句柄、应用程序实例句柄和附加参数
NULL,NULL,hInstance,NULL);
ShowWindow(hMainWnd,SW_SHOWMAXIMIZED); // 显示最大化窗口
UpdateWindow(hMainWnd); // 更新窗口
// 下面用While()循环来建立消息循环
while(GetMessage(&msg,NULL,0,0)) // 获取消息,填充msg结构体
{
TranslateMessage(&msg); // 翻译键盘消息
DispatchMessage(&msg); // 向窗口函数发送消息,让窗口函数处理
}
return msg.wParam;
}LRESULT CALLBACK WndProc(HWND hMainwnd,UINT message,WPARAM wParam,LPARAM lParam)
{ // 窗口函数定义
char messageleft[]="the left button have been pushed";
char messageright[]="the right button have been pushed";
switch(message) // 判定消息标识符
{
case WM_RBUTTONDOWN:
{
MessageBox(GetFocus(),messageright,"chen",MB_OK|MB_ICONINFORMATION);
break;
}
case WM_LBUTTONDOWN:
{
MessageBox(GetFocus(),messageleft,"chen",MB_OK|MB_ICONINFORMATION);
break;
}
case WM_DESTROY: // 关闭应用程序窗口时发出的消息
{
PostQuitMessage(0); // 发出WM_QUIT消息,结束应用程序
return 0;
}
default :
break;
}
return DefWindowProc(hMainwnd,message,wParam,lParam);
// 其他没有处理的消息交给Windows做默认处理
}改成这样,lz对照一下吧。