我的第一个API程序-VS2013
2015-06-10 20:45
204 查看
RT:创将一个空的窗口
方法:1.打开VS2013-->新建项目--->Win32项目--->空项目--->OK.
2.在该文件下新建一个源文件,代码如下:
#include<windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); //函数说明
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst, LPSTR lpszCmdLine, int nCmdShow)
{
HWND hwnd;
MSG msg;
WNDCLASS wndcls;//定义的窗口的类
wndcls.style = 0;
wndcls.lpfnWndProc = WndProc;//定义窗口过程函数
wndcls.cbClsExtra = 0;//额外的类的附加字节数
wndcls.cbWndExtra = 0;//额外的窗口的附加字节数
wndcls.hInstance = hInstance; //应用程序的实例号
wndcls.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);//窗口背景为白色
wndcls.hCursor = LoadCursor(NULL, IDC_ARROW); //光标
wndcls.hIcon = LoadIcon(NULL, IDI_ERROR);//图标
wndcls.lpszClassName =L"窗口";//类名
wndcls.lpszMenuName = NULL;//窗口中菜单为空
//注册窗口类
if (!RegisterClass(&wndcls))//如果注册失败
{
MessageBeep(0);
return FALSE;
}
//创建窗口
hwnd = CreateWindow(L"窗口", L"Alice", WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT, NULL, NULL, hInstance, NULL);
//显示窗口
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);
//消息循环
while (GetMessage(&msg, NULL, 0, 0))//获取所有消息
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;// 消息循环结束即将信息返回系统
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_DESTROY:
PostQuitMessage(0);
default://缺省时采用消息缺省处理函数
return DefWindowProc(hwnd, message, wParam, lParam);
}
return 0;
}
方法:1.打开VS2013-->新建项目--->Win32项目--->空项目--->OK.
2.在该文件下新建一个源文件,代码如下:
#include<windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); //函数说明
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst, LPSTR lpszCmdLine, int nCmdShow)
{
HWND hwnd;
MSG msg;
WNDCLASS wndcls;//定义的窗口的类
wndcls.style = 0;
wndcls.lpfnWndProc = WndProc;//定义窗口过程函数
wndcls.cbClsExtra = 0;//额外的类的附加字节数
wndcls.cbWndExtra = 0;//额外的窗口的附加字节数
wndcls.hInstance = hInstance; //应用程序的实例号
wndcls.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);//窗口背景为白色
wndcls.hCursor = LoadCursor(NULL, IDC_ARROW); //光标
wndcls.hIcon = LoadIcon(NULL, IDI_ERROR);//图标
wndcls.lpszClassName =L"窗口";//类名
wndcls.lpszMenuName = NULL;//窗口中菜单为空
//注册窗口类
if (!RegisterClass(&wndcls))//如果注册失败
{
MessageBeep(0);
return FALSE;
}
//创建窗口
hwnd = CreateWindow(L"窗口", L"Alice", WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT, NULL, NULL, hInstance, NULL);
//显示窗口
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);
//消息循环
while (GetMessage(&msg, NULL, 0, 0))//获取所有消息
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;// 消息循环结束即将信息返回系统
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_DESTROY:
PostQuitMessage(0);
default://缺省时采用消息缺省处理函数
return DefWindowProc(hwnd, message, wParam, lParam);
}
return 0;
}
相关文章推荐
- [安卓]手机管家(一)splash
- 微软100题(74)数组中超过长度一半的数字
- 常见的MySQL Replication Error
- java匿名内部类
- [LeetCode]Integer to Roman整数转罗马数字
- Spark学习笔记:(一)入门 glance
- 无法连接mysql,请检查mysql是否已启动及用户密码是否设置正确
- [.net程序员必看]微软新动向之Android和IOS应用 visual studio 2015 Cordova[原创]
- 包含min函数的栈
- 获取导航栏,状态栏,标签栏的高度
- POJ 2125 Destroying The Graph 二分图最小点权覆盖 最小割
- Chrome rem bug
- 高程拾取器App上线
- 基于FPGA的双口RAM设计方法
- HDU 4998
- Android IllegalStateException: Fragment not attached to Activity
- 模式识别:k-均值聚类算法的研究与实现
- MySQL 数据(数据库)迁移
- HDU 1013 Digital Roots
- java发送http的get、post请求