关于Windows程序设计的初步认识

2020.02.01

今年这个春节过得实在是挺特别的,冠状病毒又来和我们“约会”了,并且又是在这个普天中国人同庆的美好时刻……这次它来的依然是那么的匆忙,我们甚至没时间给它取一个国际化的名字,只能叫它新型冠状病毒……玩笑话是这么讲,但是真心地希望这次能够是我们最后一次“请”它来中国来做客,大家都能够涨一点记性,为了个人的口腹之欲让整个国家为你买单,难道真的不会臊得慌吗?于是作为一名平平凡凡的学生,我一定安安静静的在家“躺尸”,不给大家添麻烦!

接下来
关于Windows程序设计的初步认识

一、认识

其实在2019年的时候我就开始自己学习关于Windows程序设计的相关内容了,但是之前我不知道他的学术名称叫做 windows程序设计,仅仅知道MFC这个还是因为自己上学期上了一门叫做计算机图形学的课程。但是结果是自己已经有快有两个月没有再看相关的内容了,所以从今天开始立下一个flag:我要在这学期开学(3.1)之前学完MFC的内容。
先来一段代码
#include //这个头文件一定要加上

//牢记入口函数不再是标准 C/C++ 的 int mian() 而是WinMian() 

int WINAPI/*说明参数如何传递*/ WinMain(HINSTANCE hInstance,/*实例句柄*/
                                       HINSTANCE HPrevInstsnce,/*前一个实例句柄(但是已经被淘汰了,
                                                                 可是因为微软的规则这个参数还是必须写上)*/
                                       PSTR szCmdLine,//这个参数其实不怎么用到
                                       int iCmdShow)
{
    MessageBox(NULL, TEXT("Hello Windows !"), TEXT("Hello World !"), MB_OK);//SDK API函数。
    return 0;
}

关于Windows程序设计的初步认识_第1张图片

上面这段代码除了WinMain()里面的四个参数,稍微有一点难以外其他的也没有什么了,主要是没有剩下什么代码了。

#include

LONG WINAPI WndProc(HWND ,UINT ,WPARAM ,LPARAM);//窗口回调函数

int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInctance,
                   LPSTR ipszCmdLine,
                   int nCmdShow)
{
    HWND hwnd;//窗口句柄
    MSG msg;//消息

    //1、设计一个窗口类
    WNDCLASS wc;//虽然WNDCLASS被叫做窗口类,但是因为整个Windows编程都是采用的C语言,所以它其实是一个结构体。
    wc.style=0;//默认窗口格式
    wc.lpfnWndProc=(WNDPROC)WndProc;//窗口过程---------有点问题,先注释掉
    wc.cbClsExtra=0;//窗口类额外数据
    wc.cbWndExtra=0;//窗口额外数据
    wc.hInstance=hInstance;//实例句柄赋值
    wc.hIcon=LoadIcon(NULL,IDI_WINLOGO);//窗口图标
    wc.hCursor=LoadCursor(NULL,IDC_ARROW);//鼠标的形状函数
    wc.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);//窗口背景
    wc.lpszMenuName=NULL;//菜单名
    wc.lpszClassName=TEXT("myWndClass");//窗口名字

    //2、注册窗口类
    RegisterClass(&wc);

    //3、创建窗口
    hwnd=CreateWindow(TEXT("myWndClass"),
        TEXT("Hello SDK APPlication"),
        WS_OVERLAPPEDWINDOW,/*窗口样式*/
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        NULL,
        NULL,
        hInstance,
        NULL);

    //4、显示与更新窗口

    ShowWindow(hwnd,nCmdShow);
    UpdateWindow(hwnd);

    //5、消息循环

    while(GetMessage(&msg,NULL,0,0))//从消息循环中取得消息
    {
        TranslateMessage(&msg);//翻译消息,主要翻译的是键盘上传来的消息---将键盘上的扫描码转换成ASCALL码
        DispatchMessage(&msg);//转移到窗口过程
    }
}
LONG WINAPI WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
    PAINTSTRUCT ps;
    HDC hdc;//dc句柄主要用于绘画
    //对各种消息进行处理
    switch(message)
    {
    case WM_PAINT:
        return 0;
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
    return DefWndProc(hwnd,message,wParam,lParam);

    }

}
上面这段代码就是创建了一个消息对话窗口,还是最基础的消息对话窗口。从上面这一段代码就可以看出来Windows编程确实不简单。所以为了方便你我他,后来就有了上手简单的操作---明天再见!

你可能感兴趣的:(关于Windows程序设计的初步认识)