游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2567|回复: 0

HOHO_UI问题

[复制链接]

6

主题

47

帖子

53

积分

注册会员

Rank: 2

积分
53
发表于 2005-3-14 16:56:00 | 显示全部楼层 |阅读模式
void CreatMap(const char *Text)
{
        char tmp[50]={0};
        //如果输入的内容为空时
        if(Text==NULL || *Text=='\0')
        {
                return;
        }
        //将输入内容按'*'两边分开
        for(int i=0;(tmp=*Text)!='*' && (tmp=*Text)!='\0';++i,++Text);
        CMap.Create(atoi(tmp),atoi(++Text));
}
void NewMap()
{
        //弹出"新建地图对话框"
        InputDlg* pDialog = new InputDlg;
        std::wstring str = UI_T("  新建地图(行*列)");
        ulong ulStyle = ui_CWindow::uiWS_VISIBLE | ui_CWindow::uiWS_MOVE | ui_CDialog::uiDS_CRFRAME;        // | ui_CWindow::uiWS_VSCROLL | ui_CWindow::uiWS_HSCROLL
        ui_CRect Rect;
        Rect.top() = 300;
        Rect.bottom() = Rect.top() + 120;
        Rect.left() = 550;
        Rect.right() = Rect.left() + 200;
        //最后的参数为回调函数指针
        pDialog->Create( str, ulStyle, Rect, UI_WINDOWS_START_ID ,CreatMap );
        pDialog->RedrawWin();
}

#pragma once
#include "stdafx.h"
class InputDlg :
        public ui_CDialog
{
        ui_CButton* m_pButton;
        void (*Run)(const char *);
public:
        InputDlg(void);
        virtual ~InputDlg(void);

public:
        //消息映射
        UI_DECLARE_MESSAGE_MAP()
        //初始化对话框
        void OnInitDialog( void );

        //点击确定时的处理函数
        void ButtonOK_Clicked(void);
        void Create( std::wstring& str_name, ulong ul_style, ui_CRect& st_rect, ulong ul_id ,void (*P)(const char*))
        {
                ui_CDialog::Create(str_name,ul_style,st_rect,ul_id);
                Run=P;
        }
};

#include ".\inputdlg.h"

class CMyEdit1 : public ui_CEdit
{
public:
        CMyEdit1(void):ui_CEdit(){};
        virtual ulong GetDrawBackColor( void ){        return (ulong)0;}
};

UI_BEGIN_MESSAGE_MAP( InputDlg, ui_CDialog )
uiON_DM_INITDIALOG()
//如确定点击是,调用ButtonOK_Clicked
uiON_BN_CLICKED( UIIDD_MYBUTTON, ButtonOK_Clicked )

UI_END_MESSAGE_MAP()

InputDlg::InputDlg(void)
:        UI_NS::ui_CDialog()
{
}

InputDlg::~InputDlg(void)
{
}

void InputDlg::OnInitDialog( void )
{
        std::wstring str;
        ulong ulStyle;
        ui_CRect Rect;

        ui_CEdit* pEdit = new CMyEdit1;
        str = UI_T("");
        ulStyle = uiWS_VISIBLE | uiWS_TABSTOP | ui_CEdit::uiES_CENTER | ui_CEdit::uiES_NOHIDESEL | ui_CEdit::uiES_WANTRETURN;
        Rect.top() = 40;
        Rect.bottom() = Rect.top() + 20;
        Rect.left() = 10;
        Rect.right() = Rect.left() + 180;
        //UIIDD_MYBUTTON+1是这个控件的ID.
        pEdit->Create( str, ulStyle, Rect, this, UIIDD_MYBUTTON+1 );
        pEdit->SetSel( 0, 5 );
        pEdit->SetLimitText( 30 );

        m_pButton = new ui_CButton;
        str = UI_T("确定");
        ulStyle = uiWS_VISIBLE | uiWS_TABSTOP | ui_CButton::uiBS_BOTTOM | ui_CButton::uiBS_CENTER;
        Rect.top() = 80;
        Rect.bottom() = Rect.top() + 20;
        Rect.left() = 110;
        Rect.right() = Rect.left() + 80;
        m_pButton->Create( str, ulStyle, Rect, this, UIIDD_MYBUTTON );

        ui_CDialog::OnInitDialog();        // 基类对话框的初始化函数
}


void InputDlg::ButtonOK_Clicked(void)
{
        std::string strText;
        GetDlgItem(UIIDD_MYBUTTON+1)->GetWinText(strText);
        Run(strText.c_str());
}

我想输入完了,就关闭对话框的.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-5-13 18:11

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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