1.MFC之前身win32编程简介

历史简介

很久以前系统不是32位也不是64位而是16位,它们的界面和dos命令窗口几近相同(其实就是),没有美丽的窗口,没有图形化界面,就只是黑乎乎的命令窗口,用键盘输入来实现控制,也压根没有鼠标这种东西,操作起来很是麻烦。直到32位系统windows95的出现,它的出现可谓开天辟地的大事变,友好的操作界面使得受众群体扩大到广大平民百姓,不需要背诵繁琐的命令语句,只用鼠标点击就可以实现各种操作,窗口化界面使得电脑有更多显示动能,实现超越文本的服务。windows95系统当然也就催生了win32程序的兴旺,这也是第一代程序员诞生的时期。随着win32编程的发展越来越多的对越来越多的代码量的反映使得各种win32编程框架出现,mfc就是其中之一,其余的桌面程序框架还有csharp,.net,qt等等。

DOS命令窗:
在这里插入图片描述

学习mfc先得了解win32。因为mfc可以说是win32程序编辑框架,但是平常的win32程序太复杂了,我们应该庆幸有越来越多的开发效率高的编程语言出现。废话不多说,几乎最小最短的代码先奉上,请过目:

#include "windows.h"

LRESULT WndProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
{
    switch (nMsg) {
    case WM_RBUTTONDOWN:
          {
            Beep(500, 203);
            break;
            }
    case WM_LBUTTONDOWN:
        Beep(1000, 200);


    }
       
    return DefWindowProc(hWnd, nMsg, wParam, lParam);
}
//定义WinMain函数
int WinMain(HINSTANCE hInstance, HINSTANCE hPreInstance, LPSTR lpCmdLine, int nCmdShow)
{
    WNDCLASS wc = { 0 };
    HWND hWnd = 0;
    MSG nMsg = { 0 };
    //定义窗口处理函数
    wc.style = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc = (WNDPROC)WndProc;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hInstance = hInstance;
    wc.hIcon = NULL;
    wc.hCursor = NULL;
    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
    wc.lpszMenuName = NULL;
    wc.lpszClassName =L"Main";
    //注册窗口类
    RegisterClass(&wc);
    //创建窗口(在内存中创建)
    hWnd = CreateWindow(L"Main", L"hWnd", WS_OVERLAPPEDWINDOW, 100, 100, 500, 500, NULL, NULL, hInstance, NULL);
    //显示窗口
    ShowWindow(hWnd, SW_SHOW);
    //消息循环
    while (GetMessage(&nMsg, NULL, 0, 0))
    {
        //消息处理
        TranslateMessage(&nMsg);
        DispatchMessage(&nMsg);
    }
    return 0;
}

win32程序设计示例简介

【1】winmain函数是win32程序执行的开端就像是dos程序中的main函数

【2】win32程序中主要包含

(1)窗口的设计,c语言中没有类,对象,窗口是以结构体形式存在,给结构体的各个变量赋值其中包括窗口风格的型号,窗口大小,位 置,背 景颜色,窗口图标等等实现设计。
(2)窗口的注册和创建,窗口注册可以让系统完成窗口与消息处理函数的映射,让A窗口的消息交给A窗口的消息队列。创建使得窗口显示在我们的屏幕上。
(3)消息循环,在一个死循环中不断取得来自消息队列的消息
(4)消息处理函数,标明何种消息对应何种处理,属于回调函数,系统得知怎末处理后进行处理。

【3】Windows程序的运行是依靠外部的事件来驱动。换句话说,程序不断等待,等待任何可能的输入,然后做出判断,再做适当的处理。
系统接收客户的操作(事件),而后将各种复杂的事件以消息的形式传递给我们的程序,我们的程序再做出各种处理。这些处理当中的有一些是我们编辑完成,另外一些默认处理(框架本身自带的处理)即可我们不用碰。即使这样MFC开发工作量也不小。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值