zoukankan      html  css  js  c++  java
  • 窗口程序你的第一个Windows程序

    PS:今天上午,非常郁闷,有很多简单基础的问题搞得我有些迷茫,哎,代码几天不写就忘。目前又不当COO,还是得用心记代码哦!

        MSDN线在原文(英文)

        

    你的第一个Windows程序

        在这个模块,我们编写一个最小的Windows程序。它的作用是创立并示显一个空白窗口。这第一个程序含包大约50行代码,不盘算空白行和注释。这将是我们的出发点;当前还会添加图形,文本,用户输入和其它功能。

     

        示例程序屏幕截图

        上面是完全的程序代码:

    #ifndef UNICODE
    #define UNICODE
    #endif
    
    #include <windows.h>
    
    LRESULT CALLBACK WindowProc(HWND hwnd,UINT uMsg, WPARAM wParam,LPARAM lParam);
    
    int wWinMain(HINSTANCE hInstance,HINSTANCE,PWSTR pCmdLine,int nCmdShow)
    {
    	//册注窗口类
    	const wchar_t CLASS_NAME[]=L"Sample Window Class";
    
    	WNDCLASS wc = {};
    	
    	wc.lpfnWndProc		=WindowProc;
    	wc.hInstance		=hInstance;
    	wc.lpszClassName	=CLASS_NAME;
    
    	RegisterClass(&wc);
    
    	//创立窗口
    	HWND hwnd = CreateWindowEx(
    		0,								//可选窗口式样
    		CLASS_NAME,						//窗口类
    		L"Learn to Program Windows",	//窗口文本
    		WS_OVERLAPPEDWINDOW,			//窗口式样
    		//窗口大小和定位
    		CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
    		NULL,							//父窗口
    		NULL,							//菜单
    		hInstance,						//例实柄句
    		NULL							//其它应用程序的据数
    		);
    	
    	if(hwnd == NULL)
    	{
    		return 0;
    	}
    	ShowWindow(hwnd,nCmdShow);
    
    	//运行息消循环
    	MSG msg = {};
    	while(GetMessage(&msg,NULL,0,0))
    	{
    		TranslateMessage(&msg);
    		DispatchMessage(&msg);
    	}
    	return 0;
    
    }
    
    LRESULT CALLBACK WindowProc(HWND hwnd,UINT uMsg, WPARAM wParam,LPARAM lParam)
    {
    	switch(uMsg)
    	{
    	case WM_DESTROY:
    		PostQuitMessage(0);
    		return 0;
    		
    	case WM_PAINT:
    		PAINTSTRUCT ps;
    		HDC hdc = BeginPaint(hwnd,&ps);
    		FillRect(hdc,&ps.rcPaint,(HBRUSH)(COLOR_WINDOW+1));
    		EndPaint(hwnd,&ps);
    		return 0;
    	}
    	return DefWindowProc(hwnd,uMsg,wParam,lParam);
    }
        每日一道理
    悲观的人,先被自己打败,然后才被生活打败;乐观的人,先战胜自己,然后才战胜生活。悲观的人,所受的痛苦有限,前途也有限;乐观的人,所受的磨难无量,前途也无量。在悲观的人眼里,原来可能的事也能变成不可能;在乐观的人眼里,原来不可能的事也能变成可能。悲观只能产生平庸,乐观才能造就卓绝。从卓绝的人那里,我们不难发现乐观的精神;从平庸的人那里,我们很容易找到阴郁的影子。

        
    你可以从Windows Hello World Sample下载完全的Visual Studio项目。

        它会给出一个有助帮的要简概述,说明这段代码是做什么的。随后的题主将细详的析分代码。

        

    1. wWinMain是程序的口入点,当程序动启,他册注应用程序窗口某些行为的信息。其中最主要的信息是一个数函的址地,在这个例子中是WindowProc,这个数函定义窗口的行为——它的表面,如何与用户交互等等。
    2.  下一步,程序创立窗口和接收这个窗口一唯标识的柄句。
    3. 如果这个窗口顺遂地创立,程序进入while循环,程序持保循环,直到程序关闭窗口并出退应用程序。

        请注意程序没有式显地调用WindowProc数函,尽管我们说这是大多数应用程序逻辑的定义。Windows通过一系列的息消与程序信通,While循环内的代码驱动进程。每次程序调用 DispatchMessage 数函,个每息消接间的使Windows调用WindowProc数函。

        细详的代码析分后续......

    文章结束给大家分享下程序员的一些笑话语录: 小沈阳版程序员~~~ \n程序员其实可痛苦的了......需求一做一改,一个月就过去了;嚎~ \n需求再一改一调,一季度就过去了;嚎~ \n程序员最痛苦的事儿是啥,知道不?就是,程序没做完,需求又改了; \n程序员最最痛苦的事儿是啥,知道不? 就是,系统好不容易做完了,方案全改了; \n程序员最最最痛苦的事儿是啥,知道不? 就是,系统做完了,狗日的客户跑了; \n程序员最最最最最痛苦的事儿是啥,知道不? 就是,狗日的客户又回来了,程序给删没了!

  • 相关阅读:
    二项式反演
    快速沃尔什变换
    springMVC的form标签
    springMVC的拦截器配置
    RESTful使用方法
    springMVC数据绑定
    使用spring框架自带的字符拦截器
    将idea中的项目上传至github
    springMVC的使用方式
    springMVC的概述
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3033731.html
Copyright © 2011-2022 走看看