Windows API在VC下编程简单实例
来源:互联网 发布:java软件编程 编辑:程序博客网 时间:2024/05/17 21:39
在vs 2005下编程时,要在在 Win32项目中 编写,否则会出现"fatal error LNK1120: 1 个无法解析的外部命令" 的错误因为在 Win32项目中, 没有写 WinMain 函数实现就会出现链接错误了。 同样在 Win32 控制台应用程序中, 没有写 main 函数的实现也会出现连接错误一样。另外还要更改工程属性: 配置属性-常规-字符集: unicode字符集改为未设置.否则会出现"error C2440: “=”: 无法从“const char [5]”转换为“LPCWSTR” 与指向的类型无关;转换要求reinterpret_cast、C 样式转换或函数样式转换 "的错误
#include <windows.h>//包含应用程序中所需的数据类型和数据结构的定义
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)//窗口函数
{
switch(message)
{
case WM_DESTROY:
PostQuitMessage(0);//调用PostQuitMessage发出WM_QUIT消息
default://默认时采用系统消息默认处理函数
return DefWindowProc(hwnd,message,wParam,lParam);
}
return(0);
}
//--------以下初始化窗口类-------------
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPSTR lpszCmdLine,int nCmdShow)
{
HWND hwnd;
MSG Msg;
WNDCLASS wndclass;
char lpszClassName[]="窗口";//窗口类名
char lpszTitle[]="My_windows";//窗口标题名
//窗口类的定义
wndclass.style=0;//窗口类型为默认类型
wndclass.lpfnWndProc=WndProc;//窗口处理函数为WndProc
wndclass.cbClsExtra=0;//窗口类无扩展
wndclass.cbWndExtra=0;//窗口实例无扩展
wndclass.hInstance=hInstance;//当前实例句柄
wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);//窗口最小化图标为默认图标
wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);//窗口采用箭头光标
wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//窗口背景为白色
wndclass.lpszMenuName=NULL;//窗口中无菜单
wndclass.lpszClassName=lpszClassName;//窗口类名为“窗口示例“
//---------以下进行窗口类的注册------------
if(!RegisterClass(&wndclass))//如果注册失败则发出警告声音
{
MessageBeep(0);
return FALSE;
}
//创建窗口
hwnd= CreateWindow(lpszClassName,//窗口类名
lpszTitle,//窗口实例的标题名
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;//程序终止时将消息返回系统
}
运行结果:
- Windows API在VC下编程简单实例
- Windows下socket简单的编程实例
- Windows编程 VC++6.0到VS2015 实例小游戏的简单移植 VS下常见错误的排查
- VC++ 6.0下多线程编程的最简单实例
- windows下emacs中c++编程简单实例
- 在windows下用gSoap实现简单加法实例
- 在windows下用gSoap实现简单加法实例
- 在windows下用gSoap实现简单加法实例
- 多线程编程在C++下实现的简单实例
- Windows串口通信VC++编程实例
- vc socket tcp编程的简单实例
- Windows API编程机理及简单范例
- 怎样使用glew(windows下VC编程)
- Windows下VC编程(SOCKET)
- 详解:Windows系统安装OpenSSL 以及在VC环境下编写一个简单OpenSSL程序
- c++关于windows窗体编程简单实例
- 简单的Windows Socket编程实例
- socket在windows下编程
- 论C/C++函数间动态内存的传递(转)
- 浅谈C中的malloc和free(转)
- javascript 动态加载css、js
- Linux系统下的多线程编程入门(转)
- 编译器与解释器的不同(转)
- Windows API在VC下编程简单实例
- 经典C程序设计100例(转)
- C语言面试题(转)
- 水滴石穿C语言之内存使用(转)
- C/C++语言编程修养(转)
- CreateBitmaplndirect
- C语言难点分析(转)
- 时间按处理过程
- 缓冲区溢出的原理和实践