注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Leo

笑:胸怀,傲:实力,才能笑傲江湖。

 
 
 

日志

 
 

C++学习第一课——WinMain  

2012-03-21 19:47:27|  分类: 大学留笔 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
#include "windows.h"
#include "stdio.h"

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,            // pointer to command line
  int nCmdShow                // show state of window
  )
{
WNDCLASS wndclass;
wndclass.cbClsExtra = 0;                                        //额外类的附加字节数
wndclass.cbWndExtra = 0;                                        //窗口额外附加字节数
wndclass.hbrBackground = (HBRUSH) GetStockObject(BLACK_BRUSH);  //背景,在MSDN中有后面背景色的参数。
wndclass.hCursor = LoadCursor(NULL,IDC_CROSS);                  //光标。第一个参数:应用程序实例号,二:光标的标识符。
wndclass.hIcon = LoadIcon(NULL,IDI_APPLICATION);                //图标
wndclass.hInstance = hInstance;                                 //实例号。参数。
wndclass.lpfnWndProc = WinSunProc;                              //窗口过程函数
wndclass.lpszClassName = "LEO";                                 //类名
wndclass.lpszMenuName = NULL;                                   //菜单
wndclass.style = CS_VREDRAW | CS_HREDRAW;                       //类的类型

/*注册类了*/
RegisterClass(&wndclass);

/*创建窗口*/
HWND hwnd; // 句柄   CreateWindow:看MSDN
hwnd = CreateWindow("LEO","刘其江",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);             //消息转换为charcter消息
DispatchMessage(&msg);              //
}
return 0;
}

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,"Char is %d",wParam);
MessageBox(hwnd,szChar,"LEO",MB_OK);
break;
case WM_LBUTTONDOWN:
MessageBox(hwnd,"LEO点击!","LEO",0);
HDC hdc;
hdc = GetDC(hwnd);
TextOut(hdc,0,50,"这是LEO的WinMain测试程序!",strlen("这是LEO的WinMain测试程序!"));
ReleaseDC(hwnd,hdc);
break;
case WM_PAINT:
HDC hDc;
PAINTSTRUCT ps;
hdc = BeginPaint(hwnd,&ps);
TextOut(hdc,0,0,"LEO",strlen("LEO"));
EndPaint(hwnd,&ps);
break;
case WM_CLOSE:
if (IDYES == MessageBox(hwnd,"是否要关闭?","LEO",MB_YESNO))
{
DestroyWindow(hwnd);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);//系统缺省处理消息。
}
return 0;
}

  评论这张
 
阅读(235)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018