概述
#include
#include
LRESULT CALLBACK WinSunProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);
int WINAPI WinMain(
HINSTANCE hInstance, // handle to current instance当前实例
HINSTANCE hPrevInstance, // handle to previous instance前一个实例
LPSTR lpCmdLine, // command line 字符串指针
int nCmdShow // show state 指定窗口的显示方式最大最小隐藏
)
{
WNDCLASS wndcls; //P6
wndcls.cbClsExtra=0; //1注册窗口类时追加内存空间用于存储附加信息
wndcls.cbWndExtra=0; //2创建窗口类时追加内存空间用于存储附加信息
wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH); //3画刷句柄窗口重绘时指定画刷擦除窗口背景&颜色
wndcls.hCursor=LoadCursor(NULL,IDC_CROSS); //4光标资源句柄
wndcls.hIcon=LoadIcon(NULL,IDI_ERROR); //5图标
wndcls.hInstance=hInstance; //6应用实例句柄,由WinMain函数传进来
wndcls.lpfnWndProc=WinSunProc; //7指向窗口过程回调函数
wndcls.lpszClassName="sunxin2006"; //8指定菜单资源名字
wndcls.lpszMenuName=NULL; //9窗口名
wndcls.style=CS_HREDRAW | CS_VREDRAW; //A窗口样式
RegisterClass(&wndcls); //
HWND hwnd; //创建对象变量
hwnd=CreateWindow("sunxin2006","http://www.sunxin.org",WS_OVERLAPPEDWINDOW,
0,0,600,400,NULL,NULL,hInstance,NULL); //创建的对象变量存放数据
ShowWindow(hwnd,SW_SHOWNORMAL);
UpdateWindow(hwnd);
MSG msg; //消息变量
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg); //转换字符消息
DispatchMessage(&msg); //将消息回传给操作系统
}
return msg.wParam;
}
LRESULT CALLBACK WinSunProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)
{
switch(uMsg)
{
case WM_CHAR: //字符消息
char szChar[20];
sprintf(szChar,"您输入的字符代码为 %d",wParam); //字符打印
MessageBox(hwnd,szChar,"char",0);
break;
case WM_LBUTTONDOWN: //左键
MessageBox(hwnd,"mouse clicked","message",0);
HDC hdc;
hdc=GetDC(hwnd);
TextOut(hdc,0,50,"程序员之家",strlen("程序员之家")); //文本输出
//ReleaseDC(hwnd,hdc);
break;
case WM_RBUTTONDOWN: //右键
MessageBox(hwnd,"mouse clicked","message",0);
HDC hdc1;
hdc1=GetDC(hwnd);
TextOut(hdc1,5,150,"谁的心 落在水乡忘了收",strlen("谁的心 落在水乡忘了收")); //文本输出
//ReleaseDC(hwnd,hdc);
break;
case WM_PAINT: //重绘窗口
HDC hDC;
PAINTSTRUCT ps; //
hDC=BeginPaint(hwnd,&ps); //开始重绘
TextOut(hDC,0,0,"http://www.sunxin.org",strlen("http://www.sunxin.org"));//文本输出
EndPaint(hwnd,&ps); //重绘结束
break;
case WM_CLOSE: //关闭窗口
if(IDYES==MessageBox(hwnd,"是否真的结束?","message",MB_YESNO))//文本输出
{
DestroyWindow(hwnd);
}
break;
case WM_DESTROY: //销毁窗口
PostQuitMessage(0); //发送消息关闭窗口
break;
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam); //
}
return 0;
}
Win32 Application 是标准 windows程序,完全拥有windows的特性,也即我们常说的窗口应用程序!它通过GUI(Graphics User Interface图形
用户接口)可以把窗口界面做得比较个性化,比如圆形的、不规则形状的等等,另外,我们还可以通过鼠标点击来完成控制。所以说它是基于WINDOWS平台的32位
开发环境开发应用程序(即,SDK程序)。入口函数为WinMain()。
Win32 Console Application(win32控制台应用程序)往往是像MS-DOS窗口(XP中叫
命令提示符)的样子出现,我们得用键盘输入各种命令来使用它,它与纯dos程序区别是:它是32位的;或者叫CUI(Character User Interface字符
用户接口)。console程序以main()为入口,可以访问部分windows API函数,比如创建窗口、对话框等等。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27660822/viewspace-776208/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/27660822/viewspace-776208/
最后
以上就是奋斗长颈鹿为你收集整理的VC深入详解 第一个WINMAIN程序 的全部内容,希望文章能够帮你解决VC深入详解 第一个WINMAIN程序 所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复