5-9 c语言之【初识win32编程】
---恢复内容开始---
今天学习了win32的相关知识,首先win32是指是指可以在32位或以上Windows系统中运行的程序,我学习的主要利用c/c++语言编写的win32程序,
首先在win32中开始一个项目需要经历 1.窗口设计 2. 注册 3.创建 4.显示 五个部分,其中的难点就在于窗口设计中 lpfnWndProc 消息处理函数的编写,win32的精髓就在于它的消息机制,
在百度百科中关于消息机制是这样阐述的:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
- 应用实例:应用只有一个,实例可以多个,比如qq一台电脑只能装一个,但可以点开多个窗口,此时多个窗口每个都是应用实例
- 句柄:类似于指针,保存的是地址,但是只能看内容,不能对其进行修改;
- 在创建窗口的过程中,屏幕的左上角为坐标原点,并且长度的单位,为像素;
- 前一个应用实例:比如通过微信打开qq,微信为qq的应用实例(区别于子窗口)
- 调用约定:是指当一个函数被调用时,函数的参数会被传递给被调用的函数和返回值会被返回给调用函数。函数的调用约定就是描述参数是怎么传递和由谁平衡堆栈的,当然还有返回值
先放上来一个 利用win32创建窗口的程序
#include<Windows.h>
LRESULT CALLBACK MyWNDPROC(HWND hwnd,UINT message,WPARAM wparam,LPARAM lparam);
int CALLBACK Winmain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
)
{
MSG msg;
HWND hwnd;
WNDCLASSEX ex;
ex.style = CS_HREDRAW | CS_VREDRAW;
ex.cbSize = sizeof(ex);
ex.cbClsExtra = ;
ex.cbWndExtra = ;
ex.hInstance = hInstance;
ex.hIcon = NULL;
ex.hCursor = NULL;
ex.hbrBackground = CreateSolidBrush(RGB(,,));
ex.hIconSm = NULL;
ex.lpfnWndProc = &MyWNDPROC;
ex.lpszMenuName = NULL;
ex.lpszClassName = "AA"; RegisterClassEx(&ex); hwnd = CreateWindow(ex.lpszClassName,"你好中国",WS_OVERLAPPEDWINDOW,,,,,NULL,NULL,hInstance,NULL); ShowWindow(hwnd,SW_SHOW); while(GetMessage(&msg,NULL,,))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
} return ;
}
LRESULT CALLBACK MyWNDPROC(HWND hwnd,UINT message,WPARAM wparam,LPARAM lparam)
{
switch(message)
case WM_CLOSE:
break;
return DefWindowProc(hwnd,message,wparam,lparam);
}
2019-05-09 23:56:50 编程小菜鸟自我反省,大佬勿喷,谢谢!!!
5-9 c语言之【初识win32编程】的更多相关文章
- Win32编程之静态库编写与使用.动态链接库的编写与使用
Win32编程之静态库编写与使用.动态链接库的编写与使用 一丶什么是静态库.什么是动态链接库. 静态库其实就是解决模块开发的一种解决方案.在以前.我们写代码的时候.每个人都可以独立写一个项目.但是现在 ...
- Java基础-初识面向对象编程(Object-Oriented-Programming)
Java基础-初识面向对象编程(Object-Oriented-Programming) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Java是一门面向对象的程序设计语言.那么什 ...
- 2018.3.5 Java语言基础与面向对象编程实践
Java语言基础与面向对象编程实践 第一章 初识Java 1.Java特点 http://www.manew.com/blog-166576-20164.html Java语言面向对象的 Java语言 ...
- C语言与MATLAB接口 编程与实例 李传军编着
罗列一下以前自己学习C语言与MATLAB混编的笔记,顺便复习一遍. <C语言与MATLAB接口 编程与实例 李传军编着>(未看完,目前看到P106) 目录P4-8 ************ ...
- 单片机C 语言与汇编语言混合编程
在单片机应用系统设计中,过去主要采用汇编语言开发程序. 汇编语言编写的程序对单片机硬件操作很方便,编写的程序代码短,效率高,但系统设计的周期长,可读性和可移植性都很差.C语言程序开发是近年来单片机系统 ...
- GitHub的实现是否是基于此语言的支持网络编程性呢?
我觉好像是的,我之前很奇怪为什么那样就可以引用了,后来发现GitHub中的java JavaScript phton等语言都支持网络编程.
- win32编程简介
win32编程简介 复习Win32整理下知识. 为什么学习win32? 我们要编写windos程序.都离不开API. 也就是我们所说的win32程序. 所以学好win32是你能不能再windows下编 ...
- 【WIN32编程】利用汇编写cs1.6辅助
这篇文章本来在2018.5.1号就写完发圈子去了,这两天跟朋友在网吧打单击才想起来,就顺便把内容发上去把 作者:admin-神风 用CE找到功能的地址 CS1.6下载地址:https://pan.ba ...
- C语言中的多线程编程
很久很久以前,我对C语言的了解并不是很多,我最早听说多线程编程是用Java,其实C语言也有多线程编程,而且更为简单.方便.强大.下面就让我们简单领略一下Unix C语言环境下的多线程编程吧! 下面先看 ...
随机推荐
- Java学习日记——基础篇(三-上)基本语法之运算符和流程控制
运算符 算术运算符 听其名而知其意,就是用于计算的,java中常用的是: + 加 - 减 * 乘 / 除 % 取模,取余——%可以用来得到两个数相除的余数 小练习——写一个ja ...
- commit 没有提交图片,但是出现了commit的修改
.gitignore里面写上 image/cache/ 就好了
- selinux 开启和关闭
对于新手来说,linux的selinux困扰了一大批学员,开启后,导致文件权限修改不了等问题,下面就是关闭设置setlinux的方法 查看SELinux状态: 1./usr/sbin/sestatus ...
- VM 15 永久激活密钥
VMware Workstation 15 永久激活密钥 YG5H2-ANZ0H-M8ERY-TXZZZ-YKRV8 UG5J2-0ME12-M89WY-NPWXX-WQH88 UA5 ...
- OpenJudge计算概论-苹果和虫子
/*======================================================== 苹果和虫子 总时间限制: 1000ms 内存限制: 65536kB 描述 你买了一 ...
- echarts3.0之关系图详解
近期需要使用echarts关系图,当我打开echarts3.0官方demo后发现,对于新手而言,直接看懂有点儿难度,固写这样一篇文章让自己加深记忆,也便新手迅速上手.话不多说,开整生气! echart ...
- Bitmap之extractAlpha函数抽取alpha值
package com.loaderman.customviewdemo; import android.app.Activity; import android.graphics.Bitmap; i ...
- requests与urllib.request
requests很明显,在写法上与urllib.request不同,前者多一个 S.导入包时:import requestsimport urllib.requesturllib.request请求模 ...
- java调用科大讯飞流式(websocket)语音识别接口
要使用讯飞的能力,需先注册讯飞开发平台账号(讯飞官网参见https://www.xfyun.cn/). 再创建应用,点击右上角的控制台 -> 创建新应用: 每个应用都有一个appId,由这个ap ...
- 阶段5 3.微服务项目【学成在线】_day07 课程管理实战_03-新增课程-课程分类查询
2 新增课程 2.1 需求分析 用户操作流程如下: 1.用户进入“我的课程”页面,点击“新增课程”,进入新增课程页面 2.填写课程信息,选择课程分类.课程等级.学习模式等. 3.信息填写完毕,点击“提 ...