按钮建立

动态按钮(多个)的创建:

1、在类中声明并定义按钮控件的ID

#define IDC_D_BTN 10000

2、在类的OnInitDialog()函数中动态创建按钮(建立按钮对象时最好建立对象的指针)

3、手动释放对象指针

下面是动态生成多个按钮的例子:

CButton* btn = new CButton[5];  
DWORD dwStyle = WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON;  
for(int i = 0; i < 5; i++)
{  
    btn[i].Create(_T("动态按钮"), dwStyle,CRect(20+80*i,20,80+80*i,60),this,IDC_D_BTN+i);    
}  

注:Create()的第一个参数为按钮的标题,可直接给出(如上所示),也可在String Table中先定义字符串,再利用控件的LoadString()函数将字符串读取进来

程序运行效果如下所示:

 

动态按钮(多个)的消息响应:

  一个MFC的消息响应函数在程序中有三处相关信息:函数原型函数实现以及用来关联消息和消息响应函数的宏。头文件中在两个AFX_MSG注释宏之间是消息响应函数原型的声明。源文件中有两处:一处是在AFX_MSG_MAP注释宏之间的消息映射宏,用来关联消息和消息响应函数的宏;另一处是源文件中的消息响应函数的实现代码。

下面为动态生成的多个按钮的消息响应的建立步骤:

1、在对话框类的定义文件(.h文件)中声明消息响应函数OnButtonClick

afx_msg void OnButtonClick(UINT uID);

注:OnButtonClick函数的参数nID代表响应函数对应按钮控件的ID号,单个按钮可不设参数

2、在对话框类的函数实现文件(.cpp文件)中定义消息映射ON_COMMAND_RANGE     (多个按钮)

  在函数实现文件中的消息映射部分(BEGIN_MESSAGE_MAP与END_MESSAGE_MAP之间)定义按钮控件与其消息响应函数之间的映射关系。

ON_COMMAND_RANGE(IDC_D_BTN,IDC_D_BTN+5-1,OnButtonClick)

  对于所有动态创建的5个按钮(ID号在IDC_D_BTN ~ IDC_D_BTN+5-1之间),定义其消息映射函数为OnButtonClick函数,根据其输入ID分辨具体响应那个按钮。

  若是单个按钮,则消息映射为ON_BN_CLICKED

ON_BN_CLICKED(IDC_BUTTON_ID, OnButtonFunc)

3、实现消息响应函数OnButtonClick

  在对话框类的函数实现文件(.cpp文件)中给出具体的按钮消息响应

 

自定义消息:

  消息映射循环机制是Windows程序运行的基本方式。VC++ MFC 中有许多现成的消息句柄,可当我们需要完成其它的任务,需要自定义消息,就遇到了一些困难。在MFC ClassWizard中不允许添加用户自定义消息,所以我们必须在程序中添加相应代码,以便可以象处理其它消息一样处理自定义消息。

  Windows消息用"WM_"这个前缀,自定义消息一般用"UM_这个前缀"

1、首先在头文件或CPP文件中定义一个消息(推荐用户自定义消息至少是WM_USER+100,因为很多新控件也要使用WM_USER消息)

#define WM_MY_MESSAGE (WM_USER+100) 

2、在消息映射宏里面添加函数声明

afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam); 

3、在函数实现文件(.cpp文件)中定义消息映射ON_MESSAGE,关联消息和消息响应函数

ON_MESSAGE(WM_MY_MESSAGE, OnMyMessage)

4、实现消息处理函数,该函数使用WPRAM和LPARAM参数并返回LPESULT

LPESULT CMainFrame::OnMyMessage(WPARAM wParam, LPARAM lParam)  
{  
    // TODO: 处理用户自定义消息  
    ...  
    return 0;  
}  

5、发送消息

::PostMessage(GetSafeHwnd(), WM_MY_MESSAGE, 0, 0);

  其中GetSafeHwnd()得到了一个当前窗口的句柄,此消息将发给当前窗口;如果想发送消息给其它窗口,只需改变这个句柄,前提是目的窗口也实现了此消息的处理函数。

注:

  如果用户需要一个定义整个系统唯一的消息,可以调用SDK函数RegisterWindowMessage定义消息:

static UINT WM_MY_MESSAGE=RegisterWindowMessage("User"); 

并使用ON_REGISTERED_MESSAGE宏指令取代ON_MESSAGE宏指令,其余步骤同上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要建立数据库并显示,需要使用服务器端编程语言,如PHP或Python。这里简单介绍一下使用PHP的方法: 1. 创建HTML表单,包含输入数据和提交按。例如: ```html <form method="post" action="create_db.php"> <label for="name">姓名:</label> <input type="text" id="name" name="name"><br> <label for="age">年龄:</label> <input type="number" id="age" name="age"><br> <input type="submit" value="提交"> </form> ``` 2. 创建服务器端PHP文件 create_db.php,用于处理提交的表单数据。例如: ```php <?php // 连接数据库 $servername = "localhost"; $username = "root"; $password = ""; $dbname = "myDB"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 获取表单数据 $name = $_POST["name"]; $age = $_POST["age"]; // 创建数据库表 $sql = "CREATE TABLE MyGuests ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30) NOT NULL, age INT(3) NOT NULL )"; if ($conn->query($sql) === TRUE) { echo "表 MyGuests 创建成功"; } else { echo "错误: " . $sql . "<br>" . $conn->error; } // 插入数据 $sql = "INSERT INTO MyGuests (name, age) VALUES ('$name', $age)"; if ($conn->query($sql) === TRUE) { echo "数据插入成功"; } else { echo "错误: " . $sql . "<br>" . $conn->error; } // 显示数据 $sql = "SELECT * FROM MyGuests"; $result = $conn->query($sql); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Age: " . $row["age"]. "<br>"; } } else { echo "0 结果"; } $conn->close(); ?> ``` 3. 运行代码并测试。将HTML文件和PHP文件保存在服务器上,然后在浏览器中打开HTML文件,输入数据并提交。PHP文件将创建名为“myDB”的数据库,并在其中创建名为“MyGuests”的表格,然后将输入的数据插入表格中,并将数据显示在页面上。 ### 回答2: 要实现在HTML中输入数据后点击按建立数据库并显示,需要借助后端开发语言和数据库。 首先,在HTML中添加输入框和按,并使用JavaScript获取用户输入的数据。例如: ```html <!DOCTYPE html> <html> <head> <title>建立数据库并显示</title> </head> <body> <input type="text" id="inputData" placeholder="输入数据"> <button onclick="saveData()">保存数据</button> <div id="outputData"></div> <script> function saveData() { var inputData = document.getElementById("inputData").value; // 将数据发送至后端进行处理 } </script> </body> </html> ``` 接下来,需要选择一种后端开发语言和数据库。例如,使用PHP作为后端开发语言,MySQL作为数据库。 在后端,需要接收前端发来的数据,并将其保存至数据库。例如,使用PHP连接数据库并保存数据: ```php <?php $servername = "localhost"; $username = "用户名"; $password = "密码"; $dbname = "数据库名"; // 创建连接 $conn = new mysqli($servername, $username, $password, $dbname); // 检查连接是否成功 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 接收来自前端的数据 $inputData = $_POST['inputData']; // 将数据保存至数据库中的表格 $sql = "INSERT INTO 表格名 (字段名) VALUES ('$inputData')"; if ($conn->query($sql) === TRUE) { echo "数据保存成功"; } else { echo "数据保存失败: " . $conn->error; } $conn->close(); ?> ``` 最后,在前端的JavaScript代码中,使用AJAX将用户输入的数据发送至后端进行处理,并将处理结果显示在页面上。 ```javascript function saveData() { var inputData = document.getElementById("inputData").value; // 创建XMLHttpRequest对象 var xhr = new XMLHttpRequest(); // 定义回调函数 xhr.onreadystatechange = function () { if (xhr.readyState == 4 && xhr.status == 200) { document.getElementById("outputData").innerHTML = xhr.responseText; } }; // 发送数据至后端进行处理 xhr.open("POST", "后端处理数据的PHP文件路径", true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send("inputData=" + inputData); } ``` 这样,当用户在输入框中输入数据后,点击按就能将数据保存至数据库,并将保存结果显示在页面上。 ### 回答3: 要实现在HTML页面中输入数据后点击按建立数据库并显示的功能,你需要结合使用HTML、JavaScript和后端数据库技术来完成。 首先,在HTML页面中创建一个表单,包含可以输入数据的文本框和一个提交按。例如: ```html <form> <input type="text" id="inputData"> <button onclick="createDatabase()">建立数据库</button> </form> ``` 接下来,在JavaScript中定义一个函数`createDatabase()`来处理点击按的事件。在该函数中,你可以获取用户输入的数据,并将其存储到后端数据库中。具体来说,你可以使用AJAX技术来将数据发送到后端服务器,然后由服务器将数据存储到数据库中。以下是一个简单的示例: ```javascript function createDatabase() { var inputData = document.getElementById("inputData").value; // 使用AJAX将数据发送到后端服务器 var xhr = new XMLHttpRequest(); xhr.open("POST", "/saveData", true); xhr.setRequestHeader("Content-Type", "application/json"); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { // 数据存储成功后的处理逻辑 var response = JSON.parse(xhr.responseText); if (response.success) { // 显示成功消息或刷新数据列表等操作 console.log("数据存储成功!"); } else { // 显示失败消息或处理错误情况 console.log("数据存储失败:" + response.error); } } }; xhr.send(JSON.stringify({data: inputData})); } ``` 最后,在后端服务器上处理`POST /saveData`请求,并将数据存储到数据库中。这里假设你使用了Node.js和MongoDB作为后端技术栈。以下是一个简单的Express路由处理器的示例: ```javascript app.post("/saveData", (req, res) => { var inputData = req.body.data; // 将数据存储到数据库,这里假设使用了Mongoose库 YourModel.create({data: inputData}, (err, savedData) => { if (err) { res.json({success: false, error: err.message}); } else { res.json({success: true}); } }); }); ``` 通过上述步骤,你可以实现在HTML页面输入数据后点击按建立数据库并显示的功能。请注意根据实际情况适当进行修改和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值