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

刘邓

每天收获一点点-目标:富足

 
 
 

日志

 
 

第一个Win32程序(面向过程)  

2012-03-06 13:02:50|  分类: 技术类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
这是我抄写并调试成功的第一个Win32程序,调试过程中出现了很多问题,也学到了很多东西,非常充实和开心。具体的总结报告下午完成。为了能够正确运行还要在项目—属性—连接—输入里的额外支持项中添加user32.lib and Gdi32.lib
第一个Win32程序(面向过程) - 刘邓 - 刘邓
 下面是WIn32的简单界面截图:
第一个Win32程序(面向过程) - 刘邓 - 刘邓
 

#include <windows.h>

const char *g_pClassName = "HelloDirect3D";//窗口类名
const char *g_pWindowName = "Direct3D初始化";//窗口标题

//LPDIRECT3DDEVICE9 g_pd3dDevice = NULL;//声明Direct3D设备接口

//HRESULT InitDirect3D(HWND hWnd); //初始化D3D
//void Direct3DRender(); //渲染图形
//void Direct3DCleanup(); //清理D3D资源

//提前声明消息处理函数
LRESULT CALLBACK WinWNDPROC(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam);



//整个Win32程序入口WinMain函数
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd )
{
//以下部分为初始化窗口类部分
WNDCLASS wndclass;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);//窗口背景初始化
wndclass.hCursor = LoadCursor(NULL,IDC_ARROW);//光标(Cursor)初始化
wndclass.hIcon = LoadIcon(NULL,IDI_APPLICATION);//窗口小图标初始化
wndclass.hInstance = hInstance ;//初始化窗口类句柄
wndclass.lpfnWndProc = WinWNDPROC; //定义窗口类的消息处理函数
wndclass.lpszClassName = g_pClassName;//窗口类名
wndclass.lpszMenuName = NULL;//无菜单栏所以为空
wndclass.style = CS_HREDRAW|CS_VREDRAW;//窗口样式

//以下部分为注册窗口类

if(!RegisterClass(&wndclass))
return 0;

//以下部分为创建窗口部分,直接调用CreatWindow函数即可

HWND hWnd = CreateWindow(
g_pClassName, //窗口类名
g_pWindowName, //窗口标题
WS_OVERLAPPEDWINDOW, //窗口样式
CW_USEDEFAULT, //窗口最初x位置
CW_USEDEFAULT, //窗口最初y位置
CW_USEDEFAULT, //窗口最初宽度
CW_USEDEFAULT, //窗口最初高度(以上均为默认值)
NULL, //窗口父句柄
NULL, //窗口菜单句柄
hInstance, //应用程序实例句柄
NULL //创建窗口的参数
);

//以下部分为显示,更新窗口部分
ShowWindow(hWnd,nShowCmd);
UpdateWindow(hWnd);

//以下部分为消息处理函数,即消息循环

MSG msg; //定义一个message消息实例
while (GetMessage(&msg,NULL,0,0)) //取得消息
{
TranslateMessage(&msg); //翻译消息(把键盘消息传入值对照映射到虚拟表中)
DispatchMessage(&msg); //传递消息(把消息加入Windows队列或者直接加入程序队列中)
}

UnregisterClass("HelloMsg",wndclass.hInstance);
return 0;
}
//消息泵 消息处理中心
LRESULT CALLBACK WinWNDPROC(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_LBUTTONDOWN:
MessageBox(NULL,"欢迎光临","OYea",0);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
}
return DefWindowProc(hWnd,message,wParam,lParam);
}


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

历史上的今天

在LOFTER的更多文章

评论

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

页脚

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