随笔分类 - [14] 每日一练(Windows)
摘要:在上一节中我们练习了注册一个类,并通用此类实例化一个对象。 今天我们反过来学, 对于己实例化的窗体如何读取自身的注册信息,Window 同样提供了对应的方法。 (一) 函数声明 int GetClassName(HWND hWnd, LPTSTR lpClassName, int nMaxCount ); 获取实例窗体类名 BOOL GetCl...
        阅读全文
            
摘要:所有窗体在创建前都必须注册窗体类,只有注册的窗体类才被系统认知并允许实例化,换句话说通过注册告诉进程窗体管理器此类窗体的属性如: 背景色,窗体上的鼠标样式以及窗体事件处理函数等; 有一些控件类系统自带了的可以不用注册即可实例化,在不需要时反注册掉,以便释放类占用的内存。 (一) 函数声明 I). 类注册 ATOM RegisterClassEx(CONST WND...
        阅读全文
            
摘要:正如前面的几节中我们讲述的, Windows是由一系列的窗体组合而成,而Windows在对一个窗体操作前需要得到这个窗体的句柄,那如何读取一个窗休的句柄呢,Windows提供了许多的函数来达到这样的目的,今天我们先了学习最常用和直接的二个方法: (一) 函数声明 HWND FindWindowEx(HWND hwndParent, HWND hwndChildAfter, LPC...
        阅读全文
            
摘要:在我们【改变窗体的位置及大小】中有讲解类似的内容, 这一节将讲述更高级一些的API,它不仅改变窗体的位置,大小还可以改变窗体间的前后顺序即Z-ORDER, 另外支持控制窗体其他属性如:显示/隐藏, 更新后窗体刷新状态等. (一) 函数定义及演示代码 BOOL SetWindowPos(HWND hWnd, HWND hInsertAfter, int x, int y, int...
        阅读全文
            
摘要:窗体有三个最基本的属性:位置,大小,Z-Order, Windows 对于改变窗体位置和大小这两个更常用提供了更简单的函数. (一)改变窗体大小和位置 BOOL MoveWindow(HWND hWnd, int x, int y, int nWidth, int nHeight, BOOL bRepaint) 改变指定窗体的起始位置以及窗体大小,最后一个参数...
        阅读全文
            
摘要:在Windows系统中几乎我们看到的元素都是窗体,通常我们将带有WS_OVERLAPPED或WS_POPUP风格的窗体被称之为顶层窗体,而WS_CHILD风格属性的窗体称之为控件如: Button, ListBox, CommboBox, TreeView等; 为了创建窗体以及控件Window提供了二个函数: (一)创建窗体 HWND CreateWindowEx(DWO...
        阅读全文
            
摘要:正如Windows操作系统的名称一样, 窗体操作系统, 是的, 在Windows 系统中几乎所有可见的部件都是一个窗体, 比如我们看到的桌面,Word主窗体,各种对话框,按钮,树形列表以及菜单. Windows 系统正是围绕着窗体而展开的,它提供了非常与窗体有关的函数,以今起我们将逐步来练习窗体以及窗体的属性,以及常用的窗体函数. 今天我们先看看Windows 将窗体划分的类型: 1...
        阅读全文
            
摘要:由于Windows系统是由C开发而来的,而C语言又是一种面向过程的语言,为了实现一些数据的封装采用了许多结构体并定义了操作结构体相关的函数; 我们今天选出几个与绘图有关的二个数据结构: RECT, POINT 随便也看看SIZE 1. RECT – 定义一个矩形的左上角以及右下角座标,此结构体主要用于表示一个矩形区域如: 存储窗体的位置 typedef struct _RECTL/* rcl */ { LONGleft; LONGtop; LONGright; LONGbottom; } RECTL, *PRECTL, *LPRECTL; 相关函数: SetRectEmpty Creates 
        阅读全文
            
摘要:由于Windows系统是由C开发而来的,而C语言又是一种面向过程的语言,为了实现一些数据的封装采用了许多结构体并定义了操作结构体相关的函数; 我们今天选出几个与绘图有关的二个数据结构: RECT, POINT 随便也看看SIZE 1. RECT – 定义一个矩形的左上角以及右下角座标,此结构体主要用于表示一个矩形区域如: 存储窗体的位置 typedef str...
        阅读全文
            
摘要:路径可能大家在实际工作中接触的不多,它与系统默认的图形对象(pen, brush, font)不同, 它被创建后会直接选入到DC中,选入之后我们可以其描边,填充以及同时描边和填充还支持将捕捉图形的路径,并可以将路径直接转换成区域等; 我们在实现镂空字时会用到,带有背景字体的地方也会用到, 就以上所有的相对常用的方法进行展开学习. 一、API 学习 1. 创建路径 BOOL...
        阅读全文
            
摘要:这段时间忙4S项目,真的太忙了,这个Demo写了许久,一直都没能写完,同时也搁置了许多的Demo,后面慢慢多写了。 今天我们继续讲解GDI对象--字体, 字体对于系统而言有关极其重要的作用,有了它UI才能与用户进行交互,我们仍然看看字体的创建方法、字体的属性、字体操作函数以及与字体相关的函数 一、创建 1. HFONT CreateFont(int nHeight, int ...
        阅读全文
            
摘要:区域作为Windows绘图对象之一,它用于描述一个区域块的形状如: 矩形,带圆角的矩形,圆形以及不规则的多边形等等几乎可以描述所有图形的形状; GDI除了为其提供了创建不同的区域形状外,还提供了填充,绘制,反色填充和根据区域形状描绘指定大小的边框以及区域间连接,大小比较,判定点或矩形是否在区域内,还有读取包含区域的最大矩形。 一、创建区域 根据区域形状的不同GDI提供了不同的创建函数 ...
        阅读全文
            
摘要:调色板作为GDI绘图对象之一在当前的硬件情况下作用越来越小了, 调色板在显示设备还处于256色时代时,它的作用极其显著。 8位色显示设备中提供驱动为系统提供调色板为控制显示设备,此调色板仅能由一个程序提供使用,但只有是Win32程序都会用到调色板,Windows为解决这个问题为每个使用调色板的Win32程序创建一个逻辑调色板。
        阅读全文
            
摘要:前文中我们讲述了GDI绘图对象之一画笔, 今天继续学习绘图对象之二画刷,画刷通常用于将特定的颜色或图案填充到封闭式区域的图形中,封闭式图形有矩形,圆形,多边形, 路径等; 它和画笔一样也具备自身的属性: 样式(风格,图案)和行为.  一、创建画刷  GDI 提供四种方法创建画刷:  1. HBRUSH CreateSolidBrush(COLORREF crColor)  crColor -- ...
        阅读全文
            
摘要:正如前文所述,DC 相当黑板, 黑板有了没笔也画不了图, 现在我们就来看看画笔(GDI 图形对象之一). GDI 绘图对象包括: 画笔,画刷,位图,调色板,区域, 每一个绘图对象都有着自身特点和功能,今天请的画笔又有什么功能呢? 画笔主要用于绘制直线和曲线,还有着:大小, 颜 色, 线条类型等属性; 一、创建画笔  GDI提供了三种方法:  1. HPEN CreatePen(int fnPenS...
        阅读全文
            
 
                    
                     
                    
                 
                    
                 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号