百度首页 | 百度空间
 
查看文章
 
孙鑫VC++第1课我自己的理解
2008年01月15日 星期二 23:05

#include <windows.h> //windows头文件
#include <stdio.h>    //C语言头文件

LRESULT CALLBACK WinSunProc( //CALLBACK调用
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
);
int WINAPI WinMain(     //winmain程序入口点函数
HINSTANCE hInstance,
HINSTANCE hPrecInstance,
LPSTR lpCmdLine,
int nCmdShow
)
{
WNDCLASS wndcls; //wndcls窗口类
wndcls.cbClsExtra=0; //窗口类为0
wndcls.cbWndExtra=0; //窗口类为0
wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH); //HBRUSH强制转换//GetStockObject窗体底板耶颜色 BLACK_BRUSH颜色
wndcls.hCursor=LoadCursor(NULL,IDC_CROSS); //LoadCursor鼠标IDC_CROSS鼠标显示样式
wndcls.hIcon=LoadIcon(NULL,IDI_ERROR); //LoadIcon图标IDI_ERROR图标类型可以更换
wndcls.hInstance=hInstance; //形参 hInstance使用winmain程序入口函数里的 应用程序实例号
wndcls.lpfnWndProc=WinSunProc; //窗口过程函数 WinSunProc回条函数下面有
wndcls.lpszClassName="toulan"; //类名
wndcls.lpszMenuName=NULL; //NULL设置为空没有菜单
wndcls.style=CS_HREDRAW|CS_VREDRAW; //CS_HREDRAW水平重画整个窗口//CS_VREDRAW垂直重画整个窗口
RegisterClass(&wndcls); //RegisterClass注册窗口 //wndcls窗口类

HWND hwnd; //句柄类
hwnd=CreateWindow("toulan","第一个程序", //CreateWindow创建窗口
WS_OVERLAPPEDWINDOW,0,0,600,400,NULL/*副窗口*/,NULL/*菜单*/,hInstance/*当前实例的句柄*/,NULL/*多文档和单文档指针*/); //WS_OVERLAPPEDWINDOW窗口类型
                   //0,0,600,400 0,0 软件显示位置 600,400长度和宽度
ShowWindow(hwnd,SW_SHOWNORMAL); //SW_SHOWNORMAL显示方式
UpdateWindow(hwnd); //UpdateWindow更新窗口

   MSG msg;
while(GetMessage(&msg,NULL,0,0)) //while循环 //GetMessage消息队列中获取消息//0,0 最大值 最小值 0,0 获取全部消息
{
   TranslateMessage(&msg); //TranslateMessage转换消息
   DispatchMessage(&msg);   //DispatchMessage把消息传递给窗口

}
return 0;

}
LRESULT CALLBACK WinSunProc( //回条函数
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
)
{
switch(uMsg) //switch(uMsg)判断是那句
{
case WM_CHAR: //WM_CHAR按下了某个键
   char szChar[20]; //数组保存
   sprintf(szChar,"char is %d",wParam); //sprintf往屏幕上输出一个文本 wParam得到的按键信息保存到szChar数组里
   MessageBox(hwnd,szChar,"标题",MB_OK); //MessageBox弹出窗口szChar键盘敲击字符的ascii码 "偷懒"标题 MB_OK消息框的类型
   break;
case WM_LBUTTONDOWN: //WM_LBUTTONDOWN鼠标左键按下消息
   MessageBox(hwnd,"鼠标左键","标题",MB_OK);
   HDC hdc; //HDC句柄类型
   hdc=GetDC(hwnd); //GetDC获取hdc句柄 hwnd窗口句柄
   TextOut(hdc,0,20,"第一个程序2",strlen("第一个程序2")); //TextOut文本输出函数 hdc获取句柄上边已经获取了 0,20, X,Y坐标 "第一个程序2"输出的文本内容 strlen获取字符串长度  
   ReleaseDC(hwnd,hdc); //ReleaseDC释放DC 一定要释放要不内存泄露
   break;
case WM_PAINT: //消息重绘
   HDC hDc;
   PAINTSTRUCT ps;
   hDc=BeginPaint(hwnd,&ps); //BeginPaint获取DC
   TextOut(hDc,0,0,"你好中国",strlen("你好中国"));
   EndPaint(hwnd,&ps); //EndPaint释放DC
   break;
case WM_CLOSE: //当窗口关闭响应这个消息
   if(IDYES==MessageBox(hwnd,"是否退出?","标题",MB_YESNO)) //判断IDYES=YES为真
   {
    DestroyWindow(hwnd); //DestroyWindow销毁这个窗口
   }
   break;
case WM_DESTROY:
   PostQuitMessage(0); //退出程序
   break;
default: //消息循环必须要有default
   return DefWindowProc(hwnd,uMsg,wParam,lParam); //DefWindowProc缺省处理
}
return 0; //返回值
}


类别:我的vc++ | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码:
 

     

©2008 Baidu