学习windows编程 day3 之 自定义画笔的两种方法
- LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
- {
- HDC hdc;
- PAINTSTRUCT ps;
- RECT rect;
- HPEN hPen, hOldPen;
- switch (message)
- {
- case WM_PAINT:
- hdc = BeginPaint(hwnd, &ps);
- GetClientRect(hwnd, &rect);
- //1.获取画笔
- //hPen=GetStockObject(BLACK_PEN);
- //2.自己新建画笔
- //方法一:
- //封闭图像时,使用线宽中间作为边界,所以会比想要的大小多出来一部分(线宽大小)
- //hPen = CreatePen(PS_SOLID, 100, RGB(255,0,0));
- //对于虚线而言,若是线宽大于1则会显示实现,原来线条的样式失效
- //hPen = CreatePen(PS_DASH ,0.1, RGB(255, 0, 0));
- //hPen = CreatePen(PS_DASHDOT, 0.1, RGB(255, 0, 0));
- //hPen = CreatePen(PS_DASHDOTDOT, 0.1, RGB(255, 0, 0));
- //用于封闭图像的使用:在后面可以进行填充 边框向内压缩
- //hPen = CreatePen(PS_INSIDEFRAME, 10, RGB(255, 0, 0));
- //方法二:
- LOGPEN pen[];
- for (int i = ; i < ;i++)
- {
- pen[i].lopnStyle = PS_SOLID;
- pen[i].lopnWidth.x = (i + ) * ;
- pen[i].lopnColor = RGB( * i, , );
- }
- //设置多个画笔样式
- //使用createpenindorect直接取出样式使用,代码简洁明了,也更加具有可重用性
- for (int i = ; i < ;i++)
- {
- hPen = CreatePenIndirect(&pen[i]);
- hOldPen = SelectObject(hdc, hPen);
- Ellipse(hdc, +*i, , +*i, );
- DeleteObject(hPen);
- }
- // MoveToEx(hdc, rect.left, (rect.bottom-rect.top) / 2, NULL);
- // LineTo(hdc, rect.right, (rect.bottom - rect.top) / 2);
- //只能删除自己定义的对象,系统带有的不允许删除
- //DeleteObject(hPen);
- SelectObject(hdc, hOldPen);
- EndPaint(hwnd, &ps);
- break;
- case WM_DESTROY:
- PostQuitMessage();
- return ;
- }
- return DefWindowProc(hwnd, message, wParam, lParam);
- }
学习windows编程 day3 之 自定义画笔的两种方法的更多相关文章
- 学习windows编程 day3 之滚动条完善
1.不再使用setscrollrange,setscrollpos,getscrollrange,getscrollpos这些函数,这只是有助于理解其中运行原理 2.改用setscrollinfo,g ...
- windows 7中添加新硬件的两种方法(本地回环网卡)
最近在windows7上使用VMwareWorkstation7玩一些实验,遇到需要配置不同网络的问题. 因为在windows2003server上习惯使用要本地回环网卡了,那就想着在Windows7 ...
- 学习windows编程 day4 之 自定义映射
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { HDC hdc; PAINTSTRU ...
- 学习windows编程 day3 之 设置当前的背景颜色
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { HDC hdc; PAINTSTRU ...
- 学习windows编程 day3 之窗口绘画二:边框绘制函数
#include <windows.h> LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM l ...
- 学习windows编程 day3 之窗口绘画一:点线绘制
#include <windows.h> #include <math.h> LRESULT CALLBACK WndProc(HWND hwnd, UINT message, ...
- iOS 中使用 XIB 自定义cell 的两种方法 以及 编译出现常见 的错误 ++++(xcode6.0之后)
一. 注册cell 1.创建自定义cell并勾选 xib :(勾选xib就会自动生成与cell文件关联的xib) 2.在 tableViewController里注册自定义Cell (或者遵守tabl ...
- .Net实现Windows服务安装完成后自动启动的两种方法
考虑到部署方便,我们一般都会将C#写的Windows服务制作成安装包.在服务安装完成以后,第一次还需要手动启动服务,这样非常不方便. 方法一:在安装完成事件里面调用命令行的方式启动服务 此操作之前要先 ...
- iOS 中使用 XIB 自定义cell的两种方法以及编译出现常见 的错误 (xcode6.0之后)
一. 注册cell 1.创建自定义cell并勾选 xib :(勾选xib就会自动生成与cell文件关联的xib) 2.在 tableViewController里注册自定义Cell (或者遵守tabl ...
随机推荐
- Beta 冲刺报告模板
Beta 冲刺报告模板 十分钟左右站立会议,控制好时间,不要在此会议上讨论细节问题. 每组一份博客,组内共享,每人都需提交. 模板 队名:xxx 组员1(组长) 过去两天完成了哪些任务 文字/口头描述 ...
- 『编程题全队』"Gugua"事务管理系统项目宣传文案
一.项目简介 1.项目简介 Gugua是为了解决有事务管理需要的人群的痛苦, 他们需要 一个便利和高效的个人和团体事务管理平台,但是现有的方案并没有很好地解决这些需求,我们有独特的办法是提供跨平台的软 ...
- Bootstrap Validator使用特性,动态(Dynamic)添加的input的验证问题
http://1000hz.github.io/bootstrap-validator/#validator-usage Validated fields By default, the valida ...
- Linux预处理、编译、汇编、链接和运行的过程(包括一些基本的命令)
转自Quinn0918的博客 一.预编译 1.将所有的#define删除,并展开所有的宏定义: 2.处理所有的预编译指令,例如:#if,#elif,#else,#endif; 3.处理#include ...
- ubuntu安装steam
增加第三方自由库的软件支持 sudo add-apt-repository multiverse 增加更新支持包 sudo add-apt-repository multiverse 安装steam ...
- Spring的各个jar包的作用介绍
spring4中各个jar包的介绍: Spring AOP:Spring的面向切面编程,提供AOP(面向切面编程)的实现 Spring Aspects:Spring提供的对AspectJ框架的整合Sp ...
- html DOM導航
getElementByTagname()獲取所有相同標籤的節點列表,length表示節點的長度: lastchild表示最後一個子節點,firstchild表示第一個子節點,parentnode表示 ...
- Python——socketsever模块
1.作用:同时与多个客户端通信 import socketserver class MyServer(skcketserver.BaseRequestHandler): def handle(self ...
- React 组件库框架搭建
前言 公司业务积累了一定程度,需要搭建自己的组件库,有了组件库,整个团队开发效率会提高恨多. 做组件库需要提供开发调试环境,和组件文档的展示,调研了几个比较主流的方案,如下: docz 配置简单,功能 ...
- iOS开发中@property的属性weak nonatomic strong readonly等
请看 https://www.cnblogs.com/liubeimeng/p/4244686.html