首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > .NET > C#.NET > WinX之ModalDialog背景篇
【标  题】:WinX之ModalDialog背景篇
【关键字】:WinX,ModalDialog
【来  源】:http://blog.csdn.net/Holmescn/archive/2007/01/13/1482246.aspx

WinX之ModalDialog背景篇

好多天不写博了,因为这两天正crack一个小程序头都大了。今天算一个段落了,再学一点WinX吧!

今天是手册的第二部分,BKGND篇。程序写上来先:

/********************************************************************
*
* 文件名称:test_bkgnd.cpp
* 摘 要:简要描述本文件的内容
*
* 当前版本:vv0.1
* 作 者:福柯
* 完成日期:2007年01月13日
*
* Copyright (c) 2007,Programming Lab.
* All rights reserved.
*********************************************************************/
#include <winx.h>
#include "resource.h"

class CHelloDlg1 : public WinX::ModalDialog<CHelloDlg1,IDD_DIALOG1>
{
           WINX_BKGND_BRUSH(BLACK_BRUSH);    //设置对话框背景的颜色
           WINX_CTLBKGND_BRUSH(CtlStatic,GRAY_BRUSH);  //设置对话框上控件的颜色

};

class CHelloDlg2 : public WinX::ModalDialog<CHelloDlg2,IDD_DIALOG1>
{
          WINX_CTLBKGND_NULL(CtlStatic);    //空刷
         WINX_BKGND_PATTERN(IDB_BITMAP1);//背景图片
};

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
                CHelloDlg1 dlg;
                dlg.DoModal();
 
               CHelloDlg2 dlg2;
              dlg2.DoModal();

             return 0;

附加品是,要在工程里加入资源,一个Dialog ,一个bitmap。

在画图片时,设置成空刷,是起一个透明的效果,不然,自己去试试成什么样子吧!

WinX说,没有一个大的继承结构,没有大的虚表,一直不明白是怎么实现的。今天终于有了初步的理解了。

那个WINX_BKGND_BRUCH()会生成一个OnEeaseBkgnd()的成员函数。这就是说,用宏来向类里加函数。当然如果没有用这个宏,就不会有这个函数,也就不会有相应的代码了。这样做,好处是很明显的,代码量受到的控制,但会牺牲一定的灵活性。比如你不能这样写:

class CHelloDlg1 : public WinX::ModalDialog<CHelloDlg1,IDD_DIALOG1>
{
           WINX_BKGND_BRUSH(BLACK_BRUSH);    //设置对话框背景的颜色
           WINX_CTLBKGND_BRUSH(CtlStatic,GRAY_BRUSH);  //设置对话框上控件的颜色
          WINX_CTLBKGND_BRUSH(CtlButton,WHITE_BRUSH);  //让按键的背景是白色
};

这样,同样的函数会被重复定义。不过,现实中,也不一定会有这样的代码。如果要实现这个功能,以后再说吧!
不过,你可以给不同的控件指定相同的实景色,只要把控件类型用|连接就OK了!

请大家帮帮忙!急:【上一篇】
收藏的一些ASP.net 2.0资料:【下一篇】
【相关文章】
  • WINX窗口类对象的内存管理
  • WINX发布新版本,支持Visual C++ .NET 2003
  • Hello!WinX
  • 模式窗口showModalDialog的用法总结
  • WinXP下Vim与Python的相关安装与配置
  • 贺:WINX发布4个月整
  • 目前的一个小项目用winx做界面了。。。
  • 移植MFC程序到WINX
  • 关注一个国人写的GUI framework:WinX
  • 你了解WINX多少?
  • 【随机文章】
  • python上面的图形开发wxPython
  • C#读写注册表
  • VSFTPD服务的配置、使用
  • 令Win32应用程序跳入系统零层
  • Tapestry灵魂——字节码生成
  • Solaris, FreeBSD, Linux内核对比
  • VSTS使用笔记和个人评价
  • 注册码是怎样炼成的(3)
  • 可移动、改变大小的窗口(层)
  • StatusBar显示数据库的属性
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.