中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] ... [20] »
作者:
标题: DOS的界面开发终结者 上一主题 | 下一主题
ArmKing
初级用户





积分 66
发帖 22
注册 2006-8-27
状态 离线
『第 91 楼』:  如何支持 LCD Touch Panel?

请问配备相关硬件情况下,软件如何支持 LCD Touch Panel?

2006-8-28 02:03
查看资料  发送邮件  发短消息 网志  OICQ (396052549)  编辑帖子  回复  引用回复
ArmKing
初级用户





积分 66
发帖 22
注册 2006-8-27
状态 离线
『第 92 楼』:  

WinSail 内的某些控件做的有些小问题, 请问如何修改啊? 内核源码, 控件源码会公开吗?

2006-8-28 02:06
查看资料  发送邮件  发短消息 网志  OICQ (396052549)  编辑帖子  回复  引用回复
firstsail
高级用户





积分 668
发帖 295
注册 2005-7-26
来自 广东深圳
状态 离线
『第 93 楼』:  

关于鼠标触摸屏:

(1)在InitSystem()这前,向WinSail内核注册用户自己编写的鼠标功能调用函数
   ::AfxRegisterMouseFc(::MyMouse_Touch);

    其中MyMouse_Touch的原型为:
    void far MyMouse_Touch(unsigned int ax, unsigned int bx,
        unsigned int cx, unsigned int dx);


void far MyMouse_Touch(unsigned int ax, unsigned int bx,
    unsigned int cx, unsigned int dx)
{
    //Register AX = 0  --> Reset Mouse
    //Register AX = 1  --> Open  Mouse
    //Register AX = 2  --> Close Mouse
    //Register AX = 3  --> IsMouseDown
    //Register AX = 4  --> SetMouseLocation


    REGS regs;
    _fmemset(&regs, 0, sizeof(REGS));


    /*
        在这时编写您自己的代码,参考鼠标功能调用INT33,根据入口和出口格式化regs寄存器
          Register AX = 0  --> Reset Mouse ->复位鼠标
            Register AX = 1  --> Open  Mouse ->显示鼠标
            Register AX = 2  --> Close Mouse ->不显示鼠标
            Register AX = 3  --> IsMouseDown ->取按键信息
            Register AX = 4  --> SetMouseLocation ->设置鼠标位置      
    */   
    //.....
    //.....
    //....


    //这里根据regs返回值,格式化鼠标消息结构MOUSEMSG SystemMouse

        switch(ax)
        {
                case   0: //Reset Mouse
                {
                        if (regs.x.ax == (unsigned) - 1)
                        {
                                SystemMouse.exist = 1;
                        }
                        else
                        {
                                SystemMouse.exist = 0;
                        }
                        SystemMouse.visible = FALSE;

                        break;
                }
                case 1:   //Open  Mouse
                case 2:   //Close Mouse
                {
                    break;
                }
                case 3: //IsMouseDown
                {
                        SystemMouse.statue = regs.x.bx;
                        SystemMouse.point.x = regs.x.cx;
                        SystemMouse.point.y = regs.x.dx;
                        break;
                }
                case   4: //SetMouseLocation
                {
                        SystemMouse.statue  = 0;
                        SystemMouse.times   = 0;
                        SystemMouse.point.x = cx;
                        SystemMouse.point.y = dx;
                        break;
                }
       
                default:
                {
                         break;
                }
        }

        return;
}

2006-8-28 11:26
查看资料  访问主页  发短消息 网志   编辑帖子  回复  引用回复
profree
中级用户




积分 478
发帖 132
注册 2003-7-2
状态 离线
『第 94 楼』:  

winsail里如何获得复选框和单选框的状态?
我用GetRadio()不能获取

2006-9-18 23:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
firstsail
高级用户





积分 668
发帖 295
注册 2005-7-26
来自 广东深圳
状态 离线
『第 95 楼』:  

用CRadio::SetBox()函数来设置复选框还是单选框。
用CRadio::SetRadio()函数来设置复选框/单选框的状态。
用CRadio::GetRadio()函数来获得复选框/单选框的状态。
用CRadio::GetStatic()函数来设置单选框的组属性。
对于单选框来说:有一个“组”的问题,如同Windows中的VC按钮控件的WS_GROUP属性。在一组中,只有组中的第一个CRadio才能有WS_GROUP属性。

假设有3个单选按钮,其构成3选一的一组逻辑操作,分别是
CRadio* pRadio1 ---  单选按钮1,内容为“男性”
CRadio* pRadio2 ---  单选按钮2,内容为“女性”
CRadio* pRadio3 ---  单选按钮3,内容为“保密”

.........

CRadio* pRadio1 = new CRadio(pDialog);  //分配实例
CRadio* pRadio2 = new CRadio(pDialog);  //分配实例
CRadio* pRadio3 = new CRadio(pDialog);  //分配实例

pRadio1->CreateObject(10,30 + 18 * 0, 100, 16, "男性");
pRadio2->CreateObject(10,30 + 18 * 1, 100, 16, "女性");
pRadio3->CreateObject(10,30 + 18 * 2, 100, 16, "保密");

pRadio1->SetBoX(FALSE); //是单选按钮,不是复选按钮
pRadio2->SetBoX(FALSE); //是单选按钮,不是复选按钮
pRadio3->SetBoX(FALSE); //是单选按钮,不是复选按钮

pRadio1->SetStatic(TRUE); //Radio1控件是Radio1~3单选按钮一组的第一个。


................


为了获得该组中是哪一个被选中,只能遍历该组中的每一个成员。
if (pRadio1->GetRadio())
{
}
else if (pRadio2->GetRadio())
{
}
else if (pRadio3->GetRadio())
{
}

........

所以profree提出的问题,可能是指“单选按钮”吧!

2006-9-19 03:55
查看资料  访问主页  发短消息 网志   编辑帖子  回复  引用回复
profree
中级用户




积分 478
发帖 132
注册 2003-7-2
状态 离线
『第 96 楼』:  

谢谢回复
如果是复选框又怎么获得哪些项被选中了呢?
我很是搞不明白,如果我的一个窗口中有多个单选框/复选框,是分为一个以上组的,怎么分清是属于哪个组,又要怎么设置才能分开呢?
比如:
性别 分为 男,女,
年龄分为:15-20,21-30,31-40,
学历:大专,本科,硕士,博士
以上三个组都是同一窗口中,怎么分开设置,我认为应该有一个“归属于哪个组”的概念就好办多了
另外,如果一个对话框要设计成上一步,下一步,具体该怎么做?难道是上一步,下一步都要分别调用另一个函数来“画”对话框吗?这样如果对话框“画”多了,程序会就自动退出(应该是内存不够吧)

2006-9-19 22:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
firstsail
高级用户





积分 668
发帖 295
注册 2005-7-26
来自 广东深圳
状态 离线
『第 97 楼』:  

VC++生成对话框,MakeDlg转换成WinSail的源代码,阅读之,可以较好的了解。

关于单选按钮(适用于WinSail及微软的Windows)
(1)一个对话框中,可以有多“组”单选按钮
(2)一组单选按钮中,所有的单选按钮必须是连续分配的。
(3)一组单选按钮中的第一个单选按钮的属性是带有WS_GROUP窗口风格的
      如果是VC,在单选按钮的属性框中选中Static属性。
   如果是Winsail,调用CRadio::SetStatic(TRUE);
(4)假设有3组单选按钮
      第一组是性别 分为 男,女,
      第二组是年龄:15-20,21-30,31-40,
      第三组是学历:大专,本科,硕士,博士


//第一组
CRadio* pRadio1 = new CRadio(pDialog);  //分配实例
CRadio* pRadio2 = new CRadio(pDialog);  //分配实例

pRadio1->CreateObject(10,30 + 18 * 0, 100, 16, "男");
pRadio2->CreateObject(10,30 + 18 * 1, 100, 16, "女");

pRadio1->SetBox(FALSE); //是单选按钮,不是复选按钮
pRadio2->SetBox(FALSE); //是单选按钮,不是复选按钮

pRadio1->SetStatic(TRUE); //Radio1控件是Radio1-2的组带头人


//第二组
CRadio* pRadio3 = new CRadio(pDialog);  //分配实例
CRadio* pRadio4 = new CRadio(pDialog);  //分配实例
CRadio* pRadio5 = new CRadio(pDialog);  //分配实例

pRadio3->CreateObject(10,50 + 18 * 0, 100, 16, "15-20");
pRadio4->CreateObject(10,50 + 18 * 1, 100, 16, "21-30");
pRadio5->CreateObject(10,50 + 18 * 2, 100, 16, "31-40");

pRadio3->SetStatic(TRUE); //Radio3控件是Radio3-5的组带头人


//第三组
CRadio* pRadio6 = new CRadio(pDialog);  //分配实例
CRadio* pRadio7 = new CRadio(pDialog);  //分配实例
CRadio* pRadio8 = new CRadio(pDialog);  //分配实例
CRadio* pRadio9 = new CRadio(pDialog);  //分配实例

pRadio6->CreateObject(10,70 + 18 * 0, 100, 16, "大专");
pRadio7->CreateObject(10,70 + 18 * 1, 100, 16, "本科");
pRadio8->CreateObject(10,70 + 18 * 2, 100, 16, "硕士");
pRadio9->CreateObject(10,70 + 18 * 3, 100, 16, "博士");


pRadio6->SetStatic(TRUE); //Radio6控件是Radio6-9的组带头人


------------------------------------------------------------
WinSail V2.0的GUI有一些已经更新,可重新下载了!

2006-9-20 05:04
查看资料  访问主页  发短消息 网志   编辑帖子  回复  引用回复
firstsail
高级用户





积分 668
发帖 295
注册 2005-7-26
来自 广东深圳
状态 离线
『第 98 楼』:  

(1)WinSail V2.0的全局控件句柄只有120个。
    #define MAX_OBJECT_LIST_COUNT 120
(2)WinSail V2.0运行于实模式,受DOS的640K内存限制。
(3) 每一个窗口/对话框中的控件不限,受内存和全局控件句柄个数限制。

2006-9-20 05:19
查看资料  访问主页  发短消息 网志   编辑帖子  回复  引用回复
profree
中级用户




积分 478
发帖 132
注册 2003-7-2
状态 离线
『第 99 楼』:  

我的窗口需要使用下一步,上一步来完成,我想按下一步或上一步时,删除本窗口,重新生成新的窗口,我定义一个全局变量,在执行下一步时,先删除上一窗口,再生成新的窗口,但不成功,不知是为什么

2006-9-21 00:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
firstsail
高级用户





积分 668
发帖 295
注册 2005-7-26
来自 广东深圳
状态 离线
『第 100 楼』:  

不能在本窗口的“控件”函数里面删除其父窗口。
只能发出窗口退出消息,可通过
   void CloseWindow(CObject* pObj); -------- 窗口返回值为“IDCLOSE”
   void ClickCloseButton(CObject* pObj); --- 窗口返回值为“IDCLOSE”
   void ClickEnterButton(CObject* pObj); --- 窗口返回值为“IDOK”
   void ClickCancelButton(CObject* pObj); -- 窗口返回值为“IDCANCEL”
   void ClickYesButton(CObject* pObj); ----- 窗口返回值为“IDYES”
   void ClickNoButton(CObject* pObj); ------ 窗口返回值为“IDNO”
   void ClickRetryButton(CObject* pObj); --- 窗口返回值为“IDRETRY”

窗口消息循环函数为:  int CWindow::PurseMessage();
对话框消息循环函数为:int CDialog::DoModal();

int CDialog::DoModal()的函数源代码为
int CDialog::DoModal()
{
        return(CWindow::PurseMessage());
}


void ClickEnterButton(CObject* pObj)的函数源代码为
void ClickEnterButton(CObject* pObj)
{
   ::CloseWindow(pObj);

   extern int nAfxMessageFlags;
   nAfxMessageFlags = IDOK;
}

void ClickCancelButton(CObject* pObj)的函数源代码为
void ClickCancelButton(CObject* pObj)
{
   ::CloseWindow(pObj);

   extern int nAfxMessageFlags;
   nAfxMessageFlags = IDCANCEL;
}

2006-9-21 21:28
查看资料  访问主页  发短消息 网志   编辑帖子  回复  引用回复
firstsail
高级用户





积分 668
发帖 295
注册 2005-7-26
来自 广东深圳
状态 离线
『第 101 楼』:  

int CWindow::PurseMessage()的函数源代码为
int CWindow::PurseMessage()
{
    int nOldMessageFlags = nAfxMessageFlags; // 保护原值
    nAfxMessageFlags = IDNULL; //刷新窗口退出标志

    //......

    //窗口消息循环
    while (nAfxMessageFlags == IDNULL)
    {
        //....
    }


    //...

   
   int nResult = nAfxMessageFlags;
   nAfxMessageFlags = nOldMessageFlags; //恢复原值
   return (nResult);
}

2006-9-21 21:34
查看资料  访问主页  发短消息 网志   编辑帖子  回复  引用回复
firstsail
高级用户





积分 668
发帖 295
注册 2005-7-26
来自 广东深圳
状态 离线
『第 102 楼』:  发给一个实用的“向导”类

/*
向导属性封装,由于WinSail受640K内存限制,可以这样来设计
(1)向“向导页”注册的页是函数,函数原型为
   int far page(CObject* pObj);
   对返回值要求
   IDNO ------ 表示单击了“上一步”按钮
   IDYES ----- 表示单击了“下一步”按钮
   IDCANCEL -- 表示单击了“退出”按钮
(2)最多支持MAX_WIZARD_COUNT ( =10)个页
*/

#include <Symbol.h>
#include <Myframe.h>


#define MAX_WIZARD_COUNT  10
class CWizard
{
private:
       int  m_nOrder;
       int  m_nCount;
       int far (*m_psFc[MAX_WIZARD_COUNT])(CObject *);
public:
       BOOL  AddDialog(int far (*pFc)(CObject*));
public:
       int   DoWizard();

public:

     CWizard();
     ~CWizard();
};


CWizard::CWizard()
{
    m_nOrder = 0;
    m_nCount = 0;
    for (int i = 0; i < MAX_WIZARD_COUNT; i++)
    {
        m_psFc[i] = NULL;
    }
}

CWizard::~CWizard()
{
}

BOOL  CWizard::AddDialog(int far (*pFc)(CObject *))
{
    if (pFc == NULL || m_nCount >= MAX_WIZARD_COUNT)
    {
        return (FALSE);
    }

    m_psFc[m_nCount++] = pFc;

    return (TRUE);
}

int   CWizard::DoWizard()
{
    //1 - IDNO   --  Prev
    //2 - IDYES  --  Next
    //3 - Cancel --  Cancel
    int far (*pFc)(CObject *) = NULL;

    int nResult = IDCLOSE;
    while (1)
    {
        pFc = m_psFc[m_nOrder];

        if (pFc == NULL)
        {
            break;
        }

        nResult = pFc(NULL);

        if (nResult == IDNO)
        {
            if (m_nOrder > 0)
            {
                m_nOrder--;
            }
            continue;
        }
        else if (nResult == IDYES)
        {
            if (m_nOrder + 1 < m_nCount)
            {
                m_nOrder++;
            }
            continue;
        }

        break;
    }

    return (nResult);
}

2006-9-21 23:53
查看资料  访问主页  发短消息 网志   编辑帖子  回复  引用回复
firstsail
高级用户





积分 668
发帖 295
注册 2005-7-26
来自 广东深圳
状态 离线
『第 103 楼』:  

将CWizard::AddDialog()函数改名为CWizard::AddPage()函数
现举例如下:

#include <Symbol.h>
#include <MyFrame.h>

int far Page1(CObject* pCurObj)
{
        //Create a Dialog On the Center of Desktop
        CDialog* pDialog = new CDialog;//分配实例
        pDialog->CreateWindow(0, 0, 321, 240, "第一页:1");//建立窗口
        pDialog->Center();//窗口对中


        //Create Close's Button Control
        CCloseButton* pCloseButton = new CCloseButton(pDialog);//分配和建立关闭按钮

        //Create a Button Control
        CButton* pButton1 = new CButton(pDialog);
        pButton1->CreateObject(10, 199, 93, 24, "上一步(\x3P\x3)");
        pButton1->SetShortcutKey(VK_ALT_P);
        pButton1->SetFc(ClickNoButton);

        //Create a Button Control
        CButton* pButton2 = new CButton(pDialog);
        pButton2->CreateObject(111, 199, 93, 24, "下一步(\x3N\x3)");
        pButton2->SetShortcutKey(VK_ALT_N);
        pButton2->SetFc(ClickYesButton);

        //Create a Button Control
        CButton* pButton3 = new CButton(pDialog);
        pButton3->CreateObject(211, 199, 93, 24, "退出(\x3\C\x3)");
        pButton3->SetShortcutKey(VK_ALT_C);
        pButton3->SetFc(ClickCancelButton);


        //Create Radio Control
        CRadio* pRadio1 = new CRadio(pDialog);
        pRadio1->CreateObject(28, 59, 57, 24, "男姓");
        pRadio1->SetStatic(TRUE);
        pRadio1->SetRadio(TRUE);
        pRadio1->SetID(RADIOBASE + 1 - 1);

        //Create Radio Control
        CRadio* pRadio2 = new CRadio(pDialog);
        pRadio2->CreateObject(100, 61, 57, 24, "女性");
        pRadio2->SetID(RADIOBASE + 2 - 1);

        //Create Radio Control
        CRadio* pRadio3 = new CRadio(pDialog);
        pRadio3->CreateObject(171, 61, 57, 24, "保密");
        pRadio3->SetID(RADIOBASE + 3 - 1);

        //Create Radio Control
        CRadio* pRadio4 = new CRadio(pDialog);
        pRadio4->CreateObject(28, 148, 57, 24, "大专");
        pRadio4->SetStatic(TRUE);
        pRadio4->SetRadio(TRUE);
        pRadio4->SetID(RADIOBASE + 4 - 1);

        //Create Radio Control
        CRadio* pRadio5 = new CRadio(pDialog);
        pRadio5->CreateObject(100, 148, 57, 24, "本科");
        pRadio5->SetID(RADIOBASE + 5 - 1);

        //Create Radio Control
        CRadio* pRadio6 = new CRadio(pDialog);
        pRadio6->CreateObject(169, 148, 57, 24, "硕士");
        pRadio6->SetID(RADIOBASE + 6 - 1);

        //Create Radio Control
        CRadio* pRadio7 = new CRadio(pDialog);
        pRadio7->CreateObject(229, 147, 57, 24, "博士");
        pRadio7->SetID(RADIOBASE + 7 - 1);

        //Create Group Control
        CStatic* pGroup1 = new CStatic(pDialog);
        pGroup1->CreateObject(10, 29, 285, 67, "性别");

        //Create Group Control
        CStatic* pGroup2 = new CStatic(pDialog);
        pGroup2->CreateObject(10, 118, 285, 66, "学位");

        //Show Window
        pDialog->ShowWindow();//显示窗口

        //go into Message Loop
        int nResult = pDialog->DoModal();//进入窗口消息循环

        //Destroy Window
        delete pDialog;//删除对话框


        return (nResult);

}

int far Page2(CObject* pCurObj)
{
        //Create a Dialog On the Center of Desktop
        CDialog* pDialog = new CDialog;//分配实例
        pDialog->CreateWindow(0, 0, 321, 240, "第二页:2");//建立窗口
        pDialog->Center();//窗口对中

        //Create Close's Button Control
        CCloseButton* pCloseButton = new CCloseButton(pDialog);//分配和建立关闭按钮

        //Create a Button Control
        CButton* pButton1 = new CButton(pDialog);
        pButton1->CreateObject(10, 199, 93, 24, "上一步(\x3P\x3)");
        pButton1->SetShortcutKey(VK_ALT_P);
        pButton1->SetFc(ClickNoButton);

        //Create a Button Control
        CButton* pButton2 = new CButton(pDialog);
        pButton2->CreateObject(111, 199, 93, 24, "下一步(\x3N\x3)");
        pButton2->SetShortcutKey(VK_ALT_N);
        pButton2->SetFc(ClickYesButton);

        //Create a Button Control
        CButton* pButton3 = new CButton(pDialog);
        pButton3->CreateObject(211, 199, 93, 24, "退出(\x3\C\x3)");
        pButton3->SetShortcutKey(VK_ALT_C);
        pButton3->SetFc(ClickCancelButton);

        //Create Radio Control
        CRadio* pRadio1 = new CRadio(pDialog);
        pRadio1->CreateObject(28, 64, 57, 24, "北京");
        pRadio1->SetStatic(TRUE);
        pRadio1->SetRadio(TRUE);
        pRadio1->SetID(RADIOBASE + 1 - 1);

        //Create Radio Control
        CRadio* pRadio2 = new CRadio(pDialog);
        pRadio2->CreateObject(100, 65, 57, 24, "上海");
        pRadio2->SetID(RADIOBASE + 2 - 1);

        //Create Radio Control
        CRadio* pRadio3 = new CRadio(pDialog);
        pRadio3->CreateObject(171, 65, 57, 24, "广州");
        pRadio3->SetID(RADIOBASE + 3 - 1);

        //Create Combo Control
        CComboBox* pComboBox1 = new CComboBox(pDialog);
        pComboBox1->CreateCombo(124, 122, 169, 24, NULL);
        pComboBox1->SetID(COMBOBASE + 1 - 1);


        //Create Group Control
        CStatic* pGroup1 = new CStatic(pDialog);
        pGroup1->CreateObject(10, 34, 285, 67, "籍贯");

        //Create a Label Control
        CLabel* pLabel1 = new CLabel(pDialog);
        pLabel1->CreateObject(13, 125, 67, 12, "选择年份(N)");


        //Show Window
        pDialog->ShowWindow();//显示窗口

        //go into Message Loop
        int nResult = pDialog->DoModal();//进入窗口消息循环

        //Destroy Window
        delete pDialog;//删除对话框


        return (nResult);

}

int far Page3(CObject* pCurObj)
{
        //Create a Dialog On the Center of Desktop
        CDialog* pDialog = new CDialog;//分配实例
        pDialog->CreateWindow(0, 0, 321, 240, "第三页:3");//建立窗口
        pDialog->Center();//窗口对中

        //Create Close's Button Control
        CCloseButton* pCloseButton = new CCloseButton(pDialog);//分配和建立关闭按钮

        //Create a Button Control
        CButton* pButton1 = new CButton(pDialog);
        pButton1->CreateObject(10, 199, 93, 24, "上一步(\x3P\x3)");
        pButton1->SetShortcutKey(VK_ALT_P);
        pButton1->SetFc(ClickNoButton);

        //Create a Button Control
        CButton* pButton2 = new CButton(pDialog);
        pButton2->CreateObject(111, 199, 93, 24, "下一步(\x3N\x3)");
        pButton2->SetShortcutKey(VK_ALT_N);
        pButton2->SetFc(ClickYesButton);

        //Create a Button Control
        CButton* pButton3 = new CButton(pDialog);
        pButton3->CreateObject(211, 199, 93, 24, "退出(\x3\C\x3)");
        pButton3->SetShortcutKey(VK_ALT_C);
        pButton3->SetFc(ClickCancelButton);

        //Create Slider Control
        CSliderCtrl* pSliderCtrl1 = new CSliderCtrl(pDialog);
        pSliderCtrl1->CreateObject(37, 153, 241, 24, NULL);
        pSliderCtrl1->SetID(SLIDERBASE + 1 - 1);
        pSliderCtrl1->SetHorz(TRUE);

        //Create Slider Control
        CSliderCtrl* pSliderCtrl2 = new CSliderCtrl(pDialog);
        pSliderCtrl2->CreateObject(138, 38, 30, 111, NULL);
        pSliderCtrl2->SetID(SLIDERBASE + 2 - 1);
        pSliderCtrl2->SetHorz(FALSE);


        //Show Window
        pDialog->ShowWindow();//显示窗口

        //go into Message Loop
        int nResult = pDialog->DoModal();//进入窗口消息循环

        //Destroy Window
        delete pDialog;//删除对话框


        return(nResult);

}

void DemoWizard()
{
    CWizard *pWizard = new CWizard;


    pWizard->AddPage (Page1);
    pWizard->AddPage (Page2);
    pWizard->AddPage (Page3);


    pWizard->DoWizard();

    DELETE(pWizard);
}

2006-9-21 23:58
查看资料  访问主页  发短消息 网志   编辑帖子  回复  引用回复
profree
中级用户




积分 478
发帖 132
注册 2003-7-2
状态 离线
『第 104 楼』:  

非常感谢firstsail的热心帮助!
这几天一直在看winsail的资料,现有几个建议:
一、好像winsail没有驱动器列表,选项卡控件和数值增减控件,不知firstsail能否加入
二、本人以前也反映过firstsail的界面和控件的美观问题,firstsail能否再考虑
前久下载了chicago9的源代码(全部为源代码),里面有可执行文件,包括驱winsail没有动器列表控件,数值增减控件等控件,运行截图如下:








建议firstsail能取其长处,这个文件可以到网上下载,或需要的话我可以上传

[ Last edited by profree on 2006-9-23 at 02:32 ]

2006-9-23 00:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
firstsail
高级用户





积分 668
发帖 295
注册 2005-7-26
来自 广东深圳
状态 离线
『第 105 楼』:  

WinSail V2.0内核已经重新上传。

     (1) 演示程序所在的目录是“Sail3000”
     (2)“向导”类已经被“WinSail”内核支持。
     (3)“向导”类的详细设计文档名为“界面非控件类_CWizard向导类详细设计.doc”
     (4)“向导”演示模块在“sail3000\Wizard2.cpp”文件
     (5) 可在Win98,Windows2000,WindowsXP运行Sail3000\sail2000.exe可执行文件。
     (6) 鼠标只能在“Win98”或“纯DOS”下显示。

     所有用WinSail V2.0开发出来的界面,只要按下“F3”功能键,就自动会将当前窗口的画
面以256色的“a.bmp”文件形式记录下来,方便写说明书。

2006-9-23 06:04
查看资料  访问主页  发短消息 网志   编辑帖子  回复  引用回复
« [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] ... [20] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: