VS2010下实现一个简单的Windows程序
来源:互联网 发布:米德尔顿 知乎 编辑:程序博客网 时间:2024/04/20 23:26
从今天开始真正学习MFC了,一个真正的高手都是从基本功开始的。下面我将详细解剖我的第一个MFC程序。注意哦,我可是新建的Win32 Application
具体实现功能:当用鼠标左键单击程序窗口的用户区时,计算机的扬声器会发出“叮”的声音。
当我们新建一个工程时,选择win32,会有如下两个选项:
(1)Win32 Project就是普通的常见的窗口应用程序(VC是Win32Application),当然有的界面做得比较个性化,比如圆形的、不规则形状的…它们都是所谓的GUI(Graphics User Interface图形用户接口),我们可以通过鼠标点击来完成控制。Win32 Application是为你开发windows应用程序所准备的,程序以WinMain()为入口,#include<windows.h>,能够使用win32 API函数。
(2)而Win32 Console Application(win32控制台应用程序)往往是像MS-DOS窗口(XP中叫命令提示符)的样子出现,我们得用键盘输入各种命令来使用它,它与纯dos程序区别是:它是32位的;或者叫CUI(Character User Interface字符用户接口)。console程序以main()为入口,不能使用win32 API函数。
很显然,我们不需要Dos界面,所以选择win32 Project
让后添加一个Cpp文件:加入如下代码:
#include<windows.h>
//声明窗口函数原型
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
//
//主函数
int WINAPI WinMain(HINSTANCE hInstance, //当前应用程序实例句柄
HINSTANCE PreInstance, //前一个应用程序实例的句柄
LPSTR lpCmdLine, //指向本程序命令行的指针
int nCmdShow) //决定应用程序窗口显示方式的标志
{
HWND hwnd; //定义窗口句柄
MSG msg; //定义一个用来存储消息的变量
char lpszClassName[]="窗口";
WNDCLASS wc;
wc.style=0;
wc.lpfnWndProc=WndProc;
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.hInstance=hInstance;
wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wc.hCursor=LoadCursor(NULL,IDC_ARROW);
wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszMenuName=NULL;
wc.lpszClassName=lpszClassName;
RegisterClass(&wc); //注册窗口
hwnd=CreateWindow( lpszClassName, //创建窗口
"陈瑶你太帅啦",
WS_OVERLAPPEDWINDOW,
120,50,800,600,
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_LBUTTONDOWN:
{
MessageBeep(0);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,message,wParam,lParam);
}
return 0;
}
最后可能需要把工程属性中的character set 改成Use Multi-Byte Character Set
具体操作:Alt+f7 :Configuration Properties ->General->Character Set->Use Multi-Byte Character Set
最后运行程序,弹出界面如下:
然后再窗口中点击鼠标左键就会发出“叮”的声音啦。
- VS2010下实现一个简单的Windows程序
- 一个简单的Windows下的socket程序
- 一个简单的Windows下的socket程序
- 3、一个简单的Windows下的socket程序
- 一个简单c语言windows程序的实现
- 在Windows 7的VS2010下用gSoap实现简单加法实例*
- VS2010+OSG3.2+CEGUI 0.8.4环境下实现简单的HelloWorld程序
- 【Linux】Linux下实现一个简单的进度条程序
- 整理Windows下用vs2010写的简单看门狗
- 在VS2010下创建一个OpenGL的程序框架
- 一个超简单的Windows程序
- 一个简单的C# WINDOWS服务程序
- 【C#】一个简单的windows服务程序
- vs2010下编写windows服务程序
- 做一个windows下的time程序
- 在VS2010平台下实现Mex程序的调试方法
- 一个最简单的用PYTHON实现的WINDOWS服务程序
- 一个屏蔽广告程序的简单实现
- 11 个惊人的 CSS3 和 jQuery 制作的教程收集
- Notification使用详解之二:可更新进度的通知
- perl stat windows 与 UNIX不同
- “菜单”“定义”“嵌套”列表
- Latex 中文章节
- VS2010下实现一个简单的Windows程序
- JavaScript confirm应用实例
- C++学习笔记之模板
- Ubuntu下载地址
- 移植libjingle v0.5x for IOS(iphone device + iphone simulator)
- (CUDA 编程1).CUDA 线程执行模型分析(一)招兵 ------ GPU的革命
- 如何更改linux文件的拥有者及用户组(chown和chgrp)
- (CUDA 编程2).CUDA 线程执行模型分析(二)大军未动粮草先行
- POJ 2155 C Looooops