博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
学习window编程1
阅读量:7062 次
发布时间:2019-06-28

本文共 1158 字,大约阅读时间需要 3 分钟。

hot3.png

在学校一直做linux开发,工作做windows开发。今天看了一下最基本的windows API窗体编程。API是基于函数的,C语言。对这种风格的第一次接触,还是在linux上使用MiniGUI开发的时候。

在这个过程 中,分为两部分,一是结构体,二是函数(可能还有一些宏定义)。对于事件的处理都是通过向窗体注册一个回调函数,回调函数有四个参数,分别为窗体资源标识符,事件ID,以及两个事件参数。

结构体:

typedef struct _WNDCLASS {UINT style;// 窗口类型WNDPROC lpfnWndProc;//窗口处理函数int cbClsExtra;//窗口扩展int cbWndExtra;//窗口实例扩展HINSTANCE hInstance;//实例句柄HICON hIcon;//窗口的最小化图标HCURSOR hCursor;//窗口鼠标光标HBRUSH hbrBackground;//窗口背景色LPCTSTR lpszMenuName;//窗口菜单LPCTSTR lpszClassName;// 窗口类名} WNDCLASS, *LPWNDCLASS;
其包含了对窗体的配置参数(类型,图标,菜单等等),其中包括了需要注册的回调函数。

回调函数完成对事件的处理,其一般内容为:

switch(TYPE) {

case TYPE_1:

do_1(...);

break;

case TYPE_2:

do_2(...);

break;

        ...

...

...

default:

return define_do(_1,_2,_3,_4);

return 0;

}

在C/C++中程序入口为main(int argc, char* argv[]),而在此为WinMain,其有四个参数,分别为APP当前实例,APP先前的实例,命令行,和窗体的显示状态。

一个窗体的创建分为四个步骤:

1.设计窗体

2.注册窗体

3.生成窗体

4.显示及更新窗体

第一步,对WNDCLASS进行参数配置,第二调用RegisterClass函数注册,第三调用CreateWindow生成,最后调用ShowWindow显示,调用UpdateWindow更新窗体。在这应该注意RegisterClass,每产生不同的窗体必须重新注册。

窗体的绘制完成后则需要事件进行捕捉。

一般形式为:

MSG msg;

while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}

具体处理在前述的回调函数中。

转载于:https://my.oschina.net/u/854744/blog/418445

你可能感兴趣的文章
mysql 查询缓存配置和查看
查看>>
水王(课堂作业)
查看>>
linux 新添加的硬盘格式化并挂载到目录下
查看>>
学习指引
查看>>
CF&&CC百套计划2 CodeChef December Challenge 2017 Total Diamonds
查看>>
JAVA入门学习: 方法参数的传递(函数传参问题)
查看>>
补第一阶段冲刺站立会议7(应发表日期5月19日)
查看>>
【剑指offer】08二叉树的下一个节点,C++实现
查看>>
局域网络ping不通
查看>>
面向对象如何编写
查看>>
「视频直播技术详解」系列之二:处理
查看>>
zw版【转发·台湾nvp系列Delphi例程】HALCON SetLineStyle1
查看>>
Bzoj4710 [Jsoi2011]分特产
查看>>
pat甲级题目1001 A+B Format详解
查看>>
电话拨号示例
查看>>
day12-迭代器
查看>>
HTML5 <script>元素async,defer异步加载
查看>>
poj2299--归并排序求解逆序对
查看>>
About Common Crypto
查看>>
c/c++关键字分类:
查看>>