VS2010下实现一个简单的Windows程序

来源:互联网 发布:米德尔顿 知乎 编辑:程序博客网 时间:2024/04/20 23:26

从今天开始真正学习MFC了,一个真正的高手都是从基本功开始的。下面我将详细解剖我的第一个MFC程序。注意哦,我可是新建的Win32 Application


具体实现功能:当用鼠标左键单击程序窗口的用户区时,计算机的扬声器会发出“叮”的声音。

当我们新建一个工程时,选择win32,会有如下两个选项:


(1Win32 Project就是普通的常见的窗口应用程序(VC是Win32Application),当然有的界面做得比较个性化,比如圆形的、不规则形状的它们都是所谓的GUI(Graphics User Interface图形用户接口),我们可以通过鼠标点击来完成控制。Win32 Application是为你开发windows应用程序所准备的,程序以WinMain()为入口,#include<windows.h>,能够使用win32 API函数。
2)而Win32 Console Applicationwin32控制台应用程序)往往是像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


最后运行程序,弹出界面如下:


然后再窗口中点击鼠标左键就会发出“叮”的声音啦。