c++可视化编程的问题

源程序代码如下:#include<windows.h>//窗口函数说明LRESULTCALLBACKWndProc(HWND,UINT,WPARAM,LPARAM);//... 源程序代码如下:
#include <windows.h>
//窗口函数说明
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
//初始化窗口类
//WinMain函数说明
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,
LPSTR lpszCmdLine,int nCmdShow)
//窗口类的定义
wndclass.style = 0;
//窗口类型为缺省类型
wndclass.lpfnWndProc = WndProc ;
//窗口处理函数为WndProc
wndclass.cbClsExtra= 0 ;
//窗口类无扩展
wndclass.cbWndExtra= 0 ;
//窗口实例无扩展
wndclass.hbrBackground= (HBRUSH)GetStockObject( WHITE_BRUSH) ;
//窗口背景为白色
wndclass.lpszMenuName = NULL ;
//窗口中无菜单
wndclass.lpszClassName = lpszClassName //窗口类名为“窗口示例”
//窗口类注册
if( !RegisterClass( &wndclass))
//如果注册失败,则发出警告声音
{
MessageBeep(0) ;
return FALSE ;
}
//创建窗口
hwnd=CreateWindow(lpszClassName,//窗口类名
lpszTitle, //窗口实例的标题名
WS_OVERLAPPEDWINDOW, //窗口的风格
CW_USEDEFAULT,
CW_USEDEFAULT, //窗口左上角坐标为缺省值
CW_USEDEFAULT,
CW_USEDEFAULT,, //窗口的高和宽为缺省值
NULL, //此窗口无父窗口
NULL, //此窗口无主菜单
hInstance, //创建此窗口的应用程序的当前句柄
NULL) ; //不使用该值
//显示窗口
ShowWindow( hwnd, nCmdShow) ;
//窗口函数
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam, LPARAM lParam)
{
switch(message)
{
case WM_DESTROY:
PostQuitMessage(0);
//调用PostQuitMessage发出WM_QUIT消息

default:
//默认时采用系统消息默认处理函数
return DefWindowProc(hwnd,message,wParam,lParam);
}
return (0);
}
我是用vc++编译器编的,编译时出错,我不知道是哪里有问题?
我想,稍微懂的人都知道这个问题的出在哪里的吧!
帮忙解释下,
还有,学习可视化编程的话,看什么书比较合适刚学完c++语法的人?
谢啦!!
展开
 我来答
铸心剑
2009-04-18 · TA获得超过141个赞
知道小有建树答主
回答量:336
采纳率:0%
帮助的人:169万
展开全部
#include <windows.h>
//窗口函数说明
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
//初始化窗口类
//WinMain函数说明
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,
LPSTR lpszCmdLine,int nCmdShow)
//窗口类的定义
{
TCHAR szAppName[]=TEXT("IconDemo");
HWND hwnd;
MSG msg;

WNDCLASS wndclass;
wndclass.style =0; //!!
//窗口类型为缺省类型
wndclass.lpfnWndProc =WndProc;
//窗口处理函数为WndProc
wndclass.cbClsExtra= 0 ;
//窗口类无扩展
wndclass.cbWndExtra= 0 ;
//窗口实例无扩展
wndclass.hbrBackground= (HBRUSH)GetStockObject( WHITE_BRUSH) ;
//窗口背景为白色
wndclass.lpszMenuName = NULL ;
//窗口中无菜单
wndclass.lpszClassName = "lpszClassName"; //窗口类名为“窗口示例” !!,!!
//窗口类注册
if( !RegisterClass( &wndclass))
//如果注册失败,则发出警告声音
{
MessageBeep(0) ;
return FALSE ;
}
//创建窗口
hwnd=CreateWindow("lpszClassName",//窗口类名!!
TEXT("lpszTitle"), //窗口实例的标题名 !!
WS_OVERLAPPEDWINDOW, //窗口的风格
CW_USEDEFAULT,
CW_USEDEFAULT, //窗口左上角坐标为缺省值
CW_USEDEFAULT,
CW_USEDEFAULT,//窗口的高和宽为缺省值!!
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)
{
//HDC hdc;//设备描述表句柄
//HINSTANCE hInstance;//实例句柄
static int cxIcon, cyIcon, cxClient,cyClient;
switch(message)
{
case WM_DESTROY:
PostQuitMessage(0);
//调用PostQuitMessage发出WM_QUIT消息
return 0;
case WM_SIZE:
cxClient=LOWORD (lParam);
cyClient=HIWORD (lParam);
return 0;
default:
//默认时采用系统消息默认处理函数
return DefWindowProc(hwnd,message,wParam,lParam);
}
return DefWindowProc(hwnd,message,wParam,lParam);
//return (0);
}
//缺少消息响应函数,还有一些默认的参数,
//!!的是错误地方,自己思考下吧,不一一说了。
还有,这是你自编的程序吧,好像有漏洞。LINK不能通过,不过上面的语法已经没问题了,还希望有其他高手看看。。
cgsd2004
2009-04-18 · TA获得超过419个赞
知道小有建树答主
回答量:518
采纳率:55%
帮助的人:407万
展开全部
最好知道你的错误。
你的好多对象没有定义,WNDCLASS,MSG,lpszClassName等都没有;
你没有消息循环,类似while(GetMessage);
没有UpdayeWindow函数

建议你看下
Windows程序设计
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
syzh120
2009-04-18 · 超过47用户采纳过TA的回答
知道答主
回答量:193
采纳率:0%
帮助的人:168万
展开全部
windows 核心编程 必看的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
左_后卫
2009-04-18 · TA获得超过118个赞
知道小有建树答主
回答量:267
采纳率:0%
帮助的人:169万
展开全部
帮你改过来了,你的消息处理写的不多,所以窗口没有显示出来。
程序中注释加hello windows的地方是我改的。
#include <windows.h>
//窗口函数说明
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
//初始化窗口类
//WinMain函数说明
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,
LPSTR lpszCmdLine,int nCmdShow)
{
WNDCLASS wndclass;//hello windows
HWND hwnd;//hello windows
static TCHAR lpszTitle[] = TEXT ("windows title");//hello windows
static TCHAR lpszClassName[] = TEXT ("you forget");//hello windows
//窗口类的定义
wndclass.style = 0;
//窗口类型为缺省类型
wndclass.lpfnWndProc = WndProc ;
//窗口处理函数为WndProc
wndclass.cbClsExtra= 0 ;
//窗口类无扩展
wndclass.cbWndExtra= 0 ;
//窗口实例无扩展
wndclass.hbrBackground= (HBRUSH)GetStockObject(WHITE_BRUSH) ;
//窗口背景为白色
wndclass.lpszMenuName = NULL ;
//窗口中无菜单
wndclass.lpszClassName = lpszClassName; //窗口类名为“窗口示例”
//窗口类注册
if( !RegisterClass( &wndclass))
//如果注册失败,则发出警告声音
{
MessageBeep(0) ;
return FALSE ;
}
//创建窗口
hwnd=CreateWindow(lpszClassName,//窗口类名
lpszTitle, //窗口实例的标题名
WS_OVERLAPPEDWINDOW, //窗口的风格
CW_USEDEFAULT,
CW_USEDEFAULT, //窗口左上角坐标为缺省值
CW_USEDEFAULT,
CW_USEDEFAULT,, //窗口的高和宽为缺省值
NULL, //此窗口无父窗口
NULL, //此窗口无主菜单
hInstance, //创建此窗口的应用程序的当前句柄
NULL) ; //不使用该值
//显示窗口
ShowWindow( hwnd, nCmdShow) ;
}
//窗口函数
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam, LPARAM lParam)
{
switch(message)
{
case WM_DESTROY:
PostQuitMessage(0);
//调用PostQuitMessage发出WM_QUIT消息

default:
//默认时采用系统消息默认处理函数
return DefWindowProc(hwnd,message,wParam,lParam);
}
return (0);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式