炫彩界面库论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 5581|回复: 5

如何在元素的XE_PAINT消息中绘制图形?

[复制链接]

该用户从未签到

发表于 2016-3-10 13:24:53 | 显示全部楼层 |阅读模式
10炫彩币
能不能给个例子画一条线就可以了。。。

最佳答案

查看完整内容

编程助手 047 代码如下

该用户从未签到

发表于 2016-3-10 13:24:54 | 显示全部楼层
编程助手 047


代码如下
  1. #include "Common.h"



  2. class CWindow_Demo
  3. {
  4. public:
  5.     HWINDOW m_hWindow;
  6.         HELE        m_hEle;
  7.     CWindow_Demo()
  8.     {
  9.         Init();
  10.     }
  11.     void Init()
  12.     {
  13.         m_hWindow = XWnd_Create(0, 0, 300, 200, L"炫彩界面库窗口",NULL, xc_window_style_default);
  14.         XBtn_SetType(XBtn_Create(10, 5, 60, 20,L"close",m_hWindow),button_type_close);
  15.         XWnd_RegEventCPP(m_hWindow,WM_DESTROY,&CWindow_Demo::OnDestroy);

  16.                 m_hEle = XEle_Create(8,30,250,150,m_hWindow);
  17.                 XEle_RegEventCPP(m_hEle,XE_PAINT,&CWindow_Demo::OnDraw);
  18.         XWnd_ShowWindow(m_hWindow,SW_SHOW);
  19.     }
  20.         int OnDraw(HDRAW hDraw,BOOL *pbHandled)
  21.         {
  22.                 RECT rt = {0,0,250,150};
  23.                 XDraw_GradientFill2(hDraw,RGB(255,0,0),255,RGB(0,255,0),255,&rt,GRADIENT_FILL_RECT_H);
  24.                 return 0;
  25.         }
  26.     int OnDestroy(BOOL* pbHandled)
  27.     {
  28.         return 0;
  29.     }
  30. };

  31. int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
  32. {
  33.     XInitXCGUI();
  34.     CWindow_Demo  MyWindow;
  35.     XRunXCGUI();
  36.     XExitXCGUI();
  37.     return TRUE;
复制代码


回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2016-3-10 13:36:29 | 显示全部楼层


这样怎么不行!
  1. int OnDraw(HDRAW hDraw, BOOL *pbHandled)
  2.         {
  3.                 RECT rt = { 0, 0, 250, 150 };
  4.                 XDraw_DrawLine(hDraw, 0, 0, 100, 100);
  5.                 //XDraw_GradientFill2(hDraw, RGB(255, 0, 0), 255, RGB(0, 255, 0), 255, &rt, GRADIENT_FILL_RECT_H);
  6.                 return 0;
  7.         }
复制代码
回复

使用道具 举报

该用户从未签到

发表于 2016-3-10 13:39:30 | 显示全部楼层

*pbHandled = TRUE;就行了。。

还有一个

#define  XE_PAINT_END   3
  该元素及子元素绘制完成事件.启用该功能需要调用XEle_EnableEvent_XE_PAINT_END();  


具体区别,你可以写代码实验一下
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2016-3-10 14:00:50 | 显示全部楼层
dasemimi 发表于 2016-3-10 13:39
*pbHandled = TRUE;就行了。。

还有一个

谢谢回答,还有个问题,为什么改变不了线条颜色呢?创建笔,怎么选入到HDRAW?
回复

使用道具 举报

该用户从未签到

发表于 2016-3-10 14:03:34 | 显示全部楼层
小马哥 发表于 2016-3-10 14:00
谢谢回答,还有个问题,为什么改变不了线条颜色呢?创建笔,怎么选入到HDRAW? ...

void WINAPI  XDraw_SetBrushColor (HDRAW hDraw, COLORREF color, BYTE alpha)
  设置画刷颜色.  
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

QQ|Archiver|手机版|小黑屋|炫彩界面库 ( 鄂ICP备2023014763号-1 )

GMT+8, 2024-9-19 09:47 , Processed in 0.082108 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表