Windows 程序设计,谁来给我解释一下代码,每行都不懂。

#include"Windows.h"HANDLEghInstance;LRESULTCALLBACKMainWndProc(HWNDhwndMain,UINTmsg,W... #include"Windows.h"

HANDLE ghInstance;
LRESULT CALLBACK MainWndProc(HWND hwndMain,UINT msg,
WPARAM wParam,LPARAM lParam);
int PASCAL WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpszCmdLine,
int nCmdShow)

{
WNDCLASS wc;
MSG msg;

if(!hPrevInstance)
{
wc.lpszClassName="GenericAppClass";
wc.lpfnWndProc=MainWndProc;
wc.style=CS_OWNDC|CS_VREDRAW|CS_HREDRAW;
wc.hInstance=hInstance;
wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wc.hCursor=LoadCursor(NULL,IDC_ARROW);
wc.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
wc.lpszMenuName="GenericAppMenu";
wc.cbClsExtra=0;
wc.cbWndExtra=0; wc.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_ICON1);

RegisterClass(&wc);
}
ghInstance=hInstance;

HWND hwndMain=CreateWindow("GenericAppClass",
"Super Video",
WS_POPUP|WS_OVERLAPPEDWINDOW,
0,0,
500,
500,
NULL,NULL,
hInstance,
NULL
);

ShowWindow(hwndMain,nCmdShow);
UpdateWindow(hwndMain);

while(GetMessage(&msg,NULL,0,0)){
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return true;
}

LRESULT CALLBACK MainWndProc(HWND hwndMain,UINT msg,WPARAM wParam,
LPARAM lParam)

{
switch(msg){
case WM_COMMAND:
case WM_DESTROY:
PostQuitMessage(0);
break;
}
return (DefWindowProc(hwndMain,msg,wParam,lParam));
}
尤其是参数,干什么用的,都不懂,怎么个调用方式和原理啊
展开
 我来答
百度网友8bf4721dd
2010-03-24 · TA获得超过514个赞
知道小有建树答主
回答量:378
采纳率:0%
帮助的人:379万
展开全部
HANDLE ghInstance; //窗口句柄,每个窗口都有唯一的句柄
LRESULT CALLBACK MainWndProc(HWND hwndMain,UINT msg, //回调函数
WPARAM wParam,LPARAM lParam);
int PASCAL WinMain(HINSTANCE hInstance, //主窗口函数,相当于C
//中的main,不过跟main
//加载的过程不一样,
//c加载都要windows给一
//个控制台,(黑呼呼的那
//个,跟dos似的),这
//个不用,直接由windows生
//成窗口。

HINSTANCE hPrevInstance, //第一个参数是本窗口句柄
LPSTR lpszCmdLine, //第二个参数是父窗口句柄
int nCmdShow)

{
WNDCLASS wc;
MSG msg; //消息对象

if(!hPrevInstance) //如果没有父窗口
{
wc.lpszClassName="GenericAppClass"; //名称
wc.lpfnWndProc=MainWndProc; //设置父窗口
wc.style=CS_OWNDC|CS_VREDRAW|CS_HREDRAW; //风格
wc.hInstance=hInstance; //句柄
wc.hIcon=LoadIcon(NULL,IDI_APPLICATION); //图标
wc.hCursor=LoadCursor(NULL,IDC_ARROW); //指针类型
wc.hbrBackground=(HBRUSH)(COLOR_WINDOW+1); //背景刷
wc.lpszMenuName="GenericAppMenu"; //菜单项
wc.cbClsExtra=0;
wc.cbWndExtra=0; wc.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_ICON1);

RegisterClass(&wc); //跟windows注册窗口
}
ghInstance=hInstance; //获得注册好的句柄

HWND hwndMain=CreateWindow("GenericAppClass", //按照定义好的格
//式生成窗口对象
"Super Video",
WS_POPUP|WS_OVERLAPPEDWINDOW,
0,0, //起始点
500, //长
500, //宽
NULL,NULL,
hInstance, //句柄
NULL
);

ShowWindow(hwndMain,nCmdShow);
UpdateWindow(hwndMain);

while(GetMessage(&msg,NULL,0,0)){ //如果获得消息
TranslateMessage(&msg); //获取消息
DispatchMessage(&msg); //派发消息
}
return true;
}

LRESULT CALLBACK MainWndProc(HWND hwndMain,UINT msg,WPARAM wParam,
LPARAM lParam) //刚才的回调函数就在这
//回调的意思就是派发
//消息必须给这个函数

{
switch(msg){
case WM_COMMAND: case
WM_DESTROY: //如果是WM_DESTROY、WM_COMMAND就退出

PostQuitMessage(0);
break;
}
return (DefWindowProc(hwndMain,msg,wParam,lParam));//推出
百度网友6bbce5dea
2010-03-24 · TA获得超过869个赞
知道小有建树答主
回答量:678
采纳率:0%
帮助的人:622万
展开全部
“Windows.h”
说明这是hscript语言,语言本身就不是常见的BASIC、C++,我也是一行都不懂
,估计只有微软牛人才懂
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冰火梦幻
2010-03-24 · TA获得超过2308个赞
知道小有建树答主
回答量:1095
采纳率:57%
帮助的人:428万
展开全部
这是Windows下开发窗口程序的标准途经
LoadIcon 加载图标供程序使用。

LoadCursor 加载鼠标光标供程序使用。

GetStockObject 取得一个图形对象(在这个例子中,是取得绘制窗口背景的画刷对象)。

RegisterClass 为程序窗口注册窗口类别。

MessageBox 显示消息框。

CreateWindow 根据窗口类别建立一个窗口。

ShowWindow 在屏幕上显示窗口。

UpdateWindow 指示窗口自我更新。

GetMessage 从消息队列中取得消息。

TranslateMessage 转译某些键盘消息。

DispatchMessage 将消息发送给窗口消息处理程序。

PlaySound 播放一个声音文件。

BeginPaint 开始绘制窗口。

GetClientRect 取得窗口显示区域的大小。

DrawText 显示字符串。

EndPaint 结束绘制窗口。

PostQuitMessage 在消息队列中插入一个「退出程序」消息。

DefWindowProc 执行内定的消息处理。

推荐阅读《windows程序设计》电子版chm格式的“窗口和消息”章,到处都有下载
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
止易巧0p
2010-03-24 · TA获得超过482个赞
知道小有建树答主
回答量:325
采纳率:0%
帮助的人:265万
展开全部
楼上的大姐姐,着语言不是C就是C++是标准的WINDIOWS程序。
int PASCAL WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpszCmdLine,
int nCmdShow)
//这是WINDOWS程序的主函数,程序的入口点,相当于DOS下的main()函数,具体的参数我就不说了,既然楼主能找到这段代码,那就一定能找到关于参数的说明。
HWND hwndMain=CreateWindow("GenericAppClass",
"Super Video",
WS_POPUP|WS_OVERLAPPEDWINDOW,
0,0,
500,
500,
NULL,NULL,
hInstance,
NULL
);

ShowWindow(hwndMain,nCmdShow);
UpdateWindow(hwndMain);
//这是创建窗口的
while(GetMessage(&msg,NULL,0,0)){
TranslateMessage(&msg);
DispatchMessage(&msg);
}
//windows是消息传递的,这是一个循环的消息队列。
楼主,要看一遍,在看一遍,多了就懂了。我当然,这么长的东需不需要你记住,只要会复制过来,改改代码就行了。没人能记得住的。真的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式