window编程之win程序框架

int APIENTRY _tWinMain(_In_ HINSTANCE hInstance,
_In_opt_ HINSTANCE hPrevInstance,
_In_ LPTSTR lpCmdLine,
_In_ int nCmdShow)

1._tWinMain函数为程序的入口点

2.MyRegisterClass 通过调用此函数注册窗口类(设置窗口的属性,样式,回调函数等)

具体函数如下

ATOM MyRegisterClass(HINSTANCE hInstance)            //hInstance:应用程序当前实例
{
    //结构体 ex代表高级版  WNDCLASSEX 结构用于注册窗口类
    WNDCLASSEX wcex;

    wcex.cbSize = sizeof(WNDCLASSEX);

    wcex.style            = CS_HREDRAW | CS_VREDRAW;  //样式
    wcex.lpfnWndProc    = WndProc;                  //指明函数回调函数地址
    wcex.cbClsExtra        = 0;
    wcex.cbWndExtra        = 0;
    wcex.hInstance        = hInstance;
    wcex.hIcon            = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_WIN32PROJECT1));
    wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
    wcex.hbrBackground    = (HBRUSH)(COLOR_WINDOW+1);
    wcex.lpszMenuName    = MAKEINTRESOURCE(IDC_WIN32PROJECT1);
    wcex.lpszClassName    = szWindowClass;
    wcex.hIconSm        = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));

    return RegisterClassEx(&wcex);
}

其中调用RegisterClassEx 来完成注册,告诉系统建立的窗口长成什么样。

3.CreateWindow  创建窗口

BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)

通过上面的函数来调用CreateWindow

参数1:窗口类的名字

参数2:窗口的名字

参数3:可以设置一些窗口的风格

参数8:父窗口的句柄

参数9:菜单的句柄

参数10:初始化的一个消息

 hWnd = CreateWindow(szWindowClass, L"hello", WS_OVERLAPPEDWINDOW,
      500, 500, 100, 100, NULL, NULL, hInstance, NULL);

其中通过第一个参数,szWindowClass -->窗口类的名字--->来告诉系统创建怎样的窗口

在vs2013中可以在 “string table”文件中看到

4.ShowWindow(hWnd, nCmdShow); 显示窗口

UpdateWindow(hWnd);  

5.其它函数的介绍

5.1  LoadString(hInstance, IDC_WIN32PROJECT1, szWindowClass, MAX_LOADSTRING);   //通过loadstring来获取字符串

5.2  回调函数:LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)

响应各种消息。

6 其它知识点

window采用的是消息机制

时间: 2024-10-13 12:40:38

window编程之win程序框架的相关文章

黑马程序员——Java网络编程之UDP传输

网络编程 网络模型 通讯要素:InetAddress(对象):ip地址,网络中设备的标识,不可记忆,可用主机名,本地回环地址:127.0.0.1主机名localhost 端口号 传输协议:UDP,将数据的源及目的封装成数据包中,不需要建立连接,每个数据包的大小限制在64K内,无连接,是不可靠协议,不需要建立连接,速度快.力求速度,不求数据的准确性.比如聊天软件,网络会议. TCP:建立连接,形成传输数据的通道,在连接中进行大数据量传输,通过三次握手完成连接,是可靠协议,必须建立连接效率稍低. S

黑马程序员——网络编程之CTP传输

TCP传输 Socket和ServerSocket,实现了两台机器间的套接字端点,绑定本机IP地址.建立客户端和服务端,客户端对应的对象是Socket,服务端对应的对象是ServerSocket. //客户端部分 public class ClientA { private String filePath ; public String getFilePath() {return filePath;} public void setFilePath(String filePath ) { thi

高效编程之cache命中对于程序性能的影响

下面这个代码用两个双层循环遍历了一个二维数组里所有的元素,以我自己机器的测试 上面那个循环耗时基本为下面的一半,两个循环的时间复杂度相同,为什么会有这么大的差别? 首先要明白的是不管是几维数组,他们都是用一块地址连续的内存来存储所有的元素,而内存布局的顺序是一整行接着下一个整行排列,第一个循环是一行一行访问,所以从内存上看是顺序的遍历了这块内存,每次读取的位置都在上一次的附近,所以cache命中率高.第二个循环是一列一列访问,可以说访问的元素都不是连续的内存访问(相隔了一行的大小),从而降低了c

ASP.NET Core Web 应用程序系列(四)- ASP.NET Core 异步编程之async await

原文:ASP.NET Core Web 应用程序系列(四)- ASP.NET Core 异步编程之async await PS:异步编程的本质就是新开任务线程来处理. 约定:异步的方法名均以Async结尾. 实际上呢,异步编程就是通过Task.Run()来实现的. 了解线程的人都知道,新开一个线程来处理事务这个很常见,但是在以往是没办法接收线程里面返回的值的.所以这时候就该await出场了,await从字面意思不难理解,就是等待的意思. 执行await的方法必须是async修饰的,并且是Task

Android实践--Http 客户端编程之GET请求

Android Http 客户端编程之GET 说起Http编程,不尽然想起GET和POST两种请求方式,本文以简洁明了的的步骤和说明,将Android中常用的Http编程的方式列举出来,给刚刚在Android路上起步的奋斗者参考和指引,希望快速上手应用Android Http编程的同仁可以先绕过下面一段话. 做一件事之前,我们是否能驻足想一下要做这件事,我们需要做哪些工作,然后在经验中积累出模板思路和步骤,在程序界通常用设计模式来概括这些工作良好的解决方案.有了这些总结积累,这样我们就能举一反三

Android实践--Android Http 客户端编程之GET

Android Http 客户端编程之GET 说起Http编程,不尽然想起GET和POST两种请求方式,本文以简洁明了的的步骤和说明,将Android中常用的Http编程的方式列举出来,给刚刚在Android路上起步的奋斗者参考和指引,希望快速上手应用Android Http编程的同仁可以先绕过下面一段话. 做一件事之前,我们是否能驻足想一下要做这件事,我们需要做哪些工作,然后在经验中积累出模板思路和步骤,在程序界通常用设计模式来概括这些工作良好的解决方案.有了这些总结积累,这样我们就能举一反三

一次没有最后期限的编程之旅

今年上半年,是我工作以来最繁忙的六个月,总之遇到了最艰难的教程.最冗长的文档.最繁琐的代码以及最窘迫的合作,最终的极度疲劳成了压垮了我的最后一根稻草. 那年杭州,接连40摄氏度以上的连续高温,忽然一天39度,竟然觉得整个世界都清凉了.人,就是这么犯贱,稍有舒缓,便全然忘记曾经的抓狂. “写一个Apple Watch APP玩玩”,忽然闪过这么一个念头.这对执着于<证明论>和<集合论>的苦行者而言,浮现的不过是一次短暂的旅行. 旅行,不是迁移,抑或流浪,终究是要回归的. 记得还是在2

C#可扩展编程之MEF学习笔记(一):MEF简介及简单的Demo

在文章开始之前,首先简单介绍一下什么是MEF,MEF,全称Managed Extensibility Framework(托管可扩展框架).单从名字我们不难发现:MEF是专门致力于解决扩展性问题的框架,MSDN中对MEF有这样一段说明: Managed Extensibility Framework 或 MEF 是一个用于创建可扩展的轻型应用程序的库. 应用程序开发人员可利用该库发现并使用扩展,而无需进行配置. 扩展开发人员还可以利用该库轻松地封装代码,避免生成脆弱的硬依赖项. 通过 MEF,不

我也来谈javascript高级编程之:javascript函数编译过程

前言 题目有点大,其实也就是手痒...跟大家来扯一下javascript编译过程. 那么到底什么是"编译"呢 这个...本人文笔太差,我还是直接举例子吧. 相信玩过js童鞋应该都看过下面这样一个面试题: var a=3; function fn(){ alert(a); function a(){ a=5; } a(); alert(a); } fn(); alert(a); 请问上面的题目执行结果如何呢? 各位童鞋答对了没.没答对?...没关系.别急.下面进一段js科普: 各位童鞋都