SDK的hello world程序!
2006-12-01 08:54
323 查看
#include <windows.h>
//主函数原型,整个函数的执行从该函数开始
int WINAPI WinMain (HINSTANCE, HINSTANCE, LPSTR, int);
LRESULT WINAPI WndProc (HWND, UINT, WPARAM, LPARAM);
//WinMain函数
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
HWND hWnd; //主窗口句柄
MSG msg; //窗口消息
WNDCLASS wc; //窗口类
if ( !hPrevInstance )
{
//填充窗口类信息
wc.style = CS_HREDRAW | CS_VREDRAW; //当长或宽改变的时候重画整个窗口
wc.lpfnWndProc = WndProc; //长指针指向windows过程处理函数
wc.cbClsExtra = 0; //指明了为windows类额外分配的内存的数量,windows初始化为0
wc.cbWndExtra = 0; //指定了为windows实例额外分配的内存的数量,windows初始化为0
wc.hInstance = hInstance; //指向windows程序实例的句柄
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); //为了使用预先定义好的图标,需将第一个参数高为NULL
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH); //背景的画刷
wc.lpszMenuName = NULL; //菜单
wc.lpszClassName = "Sdk 实例"; //指明了windows类的名称
//注册窗口类
RegisterClass(&wc);
}
//创建应用程序主窗口
hWnd = CreateWindow("Sdk 实例", //窗口类名
"Wind32 SDK 应用程序实例", //窗口标题
WS_OVERLAPPEDWINDOW, //窗口样式
CW_USEDEFAULT, //初始化X坐标
CW_USEDEFAULT, //初始化Y坐标
CW_USEDEFAULT, //初始化窗口宽度
CW_USEDEFAULT, //初始化窗口长度
NULL, //父窗口句柄
NULL, //窗口菜单句柄
hInstance, //程序实例句柄
NULL); //创建参数
//显示窗口
ShowWindow(hWnd, SW_SHOW);
//更新主窗口客户区
UpdateWindow(hWnd);
//开始消息循环
while ( GetMessage(&msg, NULL, 0, 0) )
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
//主窗口过程,处理窗口中各种各样的事件
LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
HDC hDC;
switch ( msg )
{
case WM_PAINT:
hDC = GetDC(hWnd);
TextOut(hDC, 10, 100, "你好,SDK编程!", sizeof("你好,SDK编程!")-1);
break;
case WM_DESTROY:
PostQuitMessage(0); //发送退出程序的消息
break;
default:
break;
}
return DefWindowProc(hWnd, msg, wParam, lParam);
}
//主函数原型,整个函数的执行从该函数开始
int WINAPI WinMain (HINSTANCE, HINSTANCE, LPSTR, int);
LRESULT WINAPI WndProc (HWND, UINT, WPARAM, LPARAM);
//WinMain函数
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
HWND hWnd; //主窗口句柄
MSG msg; //窗口消息
WNDCLASS wc; //窗口类
if ( !hPrevInstance )
{
//填充窗口类信息
wc.style = CS_HREDRAW | CS_VREDRAW; //当长或宽改变的时候重画整个窗口
wc.lpfnWndProc = WndProc; //长指针指向windows过程处理函数
wc.cbClsExtra = 0; //指明了为windows类额外分配的内存的数量,windows初始化为0
wc.cbWndExtra = 0; //指定了为windows实例额外分配的内存的数量,windows初始化为0
wc.hInstance = hInstance; //指向windows程序实例的句柄
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); //为了使用预先定义好的图标,需将第一个参数高为NULL
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH); //背景的画刷
wc.lpszMenuName = NULL; //菜单
wc.lpszClassName = "Sdk 实例"; //指明了windows类的名称
//注册窗口类
RegisterClass(&wc);
}
//创建应用程序主窗口
hWnd = CreateWindow("Sdk 实例", //窗口类名
"Wind32 SDK 应用程序实例", //窗口标题
WS_OVERLAPPEDWINDOW, //窗口样式
CW_USEDEFAULT, //初始化X坐标
CW_USEDEFAULT, //初始化Y坐标
CW_USEDEFAULT, //初始化窗口宽度
CW_USEDEFAULT, //初始化窗口长度
NULL, //父窗口句柄
NULL, //窗口菜单句柄
hInstance, //程序实例句柄
NULL); //创建参数
//显示窗口
ShowWindow(hWnd, SW_SHOW);
//更新主窗口客户区
UpdateWindow(hWnd);
//开始消息循环
while ( GetMessage(&msg, NULL, 0, 0) )
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
//主窗口过程,处理窗口中各种各样的事件
LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
HDC hDC;
switch ( msg )
{
case WM_PAINT:
hDC = GetDC(hWnd);
TextOut(hDC, 10, 100, "你好,SDK编程!", sizeof("你好,SDK编程!")-1);
break;
case WM_DESTROY:
PostQuitMessage(0); //发送退出程序的消息
break;
default:
break;
}
return DefWindowProc(hWnd, msg, wParam, lParam);
}
相关文章推荐
- C++ Qt 02:第一个Qt程序,Hello World
- Qt Creator安装和hello world程序编写
- 抛弃cygwin,使用Android SDK+NDK编译Cocos2d-x安卓程序
- 简单的“hello world” windows程序
- DJI SDK开发——第一个程序
- Havok第一个最简单的Hello World程序
- 6个变态的C语言Hello World程序
- 编写VxWorks的Hello World程序
- JavaScript脚本语言介绍并实现第一个Hello World程序
- wxWindows 最简单的Hello World程序
- Linux内核监控模块-1-驱动模块(LKM)开发(以一个简单的hello world程序为例)
- Java学习之路之Hello World小程序
- 从Hello World 程序开始
- Win32 Hello World程序
- socket编程的一个简单的hello world程序
- 在SDK程序中使用MFC中的辅助类
- Alexa SDK庖丁解牛-第一回:主程序结构
- MonoDevelop/MonoTouch SDK开发iOS程序体验!
- Win32 Hello World程序
- NDK入门(一) 在Android Studio中创建并运行第一个ndk程序hello world