⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.cpp

📁 MONA是为数不多的C++语言编写的一个很小的操作系统
💻 CPP
字号:
// This file's encoding is UTF-8.#include <monapi.h>#include <gui/System/Mona/Forms/Application.h>#include <gui/System/Mona/Forms/Form.h>#include <gui/System/Mona/Forms/Label.h>#include <gui/System/Mona/Forms/Button.h>/* higepon */using namespace System;using namespace System::Drawing;using namespace System::Mona::Forms;class Form1 : public Form{public:    _P<Label> label0, label1, label2, label3, label4, label5, label6;	_P<Button> button1;    Form1()    {        this->InitializeComponent();        this->SetLabels(this, EventArgs::get_Empty());    }private:    char format[256];	void SetLabels(_P<Object> sender, _P<EventArgs> e)	{        syscall_set_ps_dump();        PsInfo info;        String message1 = "tid\n----\n";        String message2 = "state\n-------\n";        String message3 = "eip\n---------\n";        String message4 = "esp\n---------\n";        String message5 = "cr3\n---------\n";        String message6 = "name\n---------------\n";        while (syscall_read_ps_dump(&info) == 0)        {            sprintf(format, "%04d\n", info.tid);            message1 += format;            message2 += info.state ? "running\n" : "waiting\n";            sprintf(format, "%08x\n", info.eip);            message3 += format;            sprintf(format, "%08x\n", info.esp);            message4 += format;            sprintf(format, "%08x\n", info.cr3);            message5 += format;            sprintf(format, "%s\n", info.name);            message6 += format;        }        this->label1->set_Text(message1);        this->label2->set_Text(message2);        this->label3->set_Text(message3);        this->label4->set_Text(message4);        this->label5->set_Text(message5);        this->label6->set_Text(message6);	}	    void InitializeComponent()    {        this->label0 = new Label();        this->label1 = new Label();        this->label2 = new Label();        this->label3 = new Label();        this->label4 = new Label();        this->label5 = new Label();        this->label6 = new Label();        this->button1 = new Button();        this->label0->set_Bounds(Rectangle(10,  10, 60, 150));        this->label1->set_Bounds(Rectangle(70,  10, 30, 180));        this->label2->set_Bounds(Rectangle(100, 10, 45, 180));        this->label3->set_Bounds(Rectangle(145, 10, 60, 180));        this->label4->set_Bounds(Rectangle(205, 10, 60, 180));        this->label5->set_Bounds(Rectangle(265, 10, 60, 180));        this->label6->set_Bounds(Rectangle(325, 10, 95, 180));        this->button1->set_Bounds(Rectangle(10, 170, 40, 20));        this->set_ForeColor(Color::FromArgb(100, 112, 76));        this->set_BackColor(Color::FromArgb(168, 189, 128));        this->set_Location(Point(150, 50));        this->set_ClientSize(Size(430, 200));        this->set_Text("こんなスレッドが動いているらしい");        this->label0->set_Text(            "   スレッド         \n"            "------------     \n"            "                 \n"            "    ∧ ∧    \n"            "   (゚ー゚*)    \n"            "   ノ つつ    \n"            " 〜(_OO      \n"            );        this->button1->set_Text("更新");        this->button1->add_Click(new EventHandler<Form1>(this, &Form1::SetLabels));        this->get_Controls()->Add(this->label0.get());        this->get_Controls()->Add(this->label1.get());        this->get_Controls()->Add(this->label2.get());        this->get_Controls()->Add(this->label3.get());        this->get_Controls()->Add(this->label4.get());        this->get_Controls()->Add(this->label5.get());        this->get_Controls()->Add(this->label6.get());        this->get_Controls()->Add(this->button1.get());    }public:    static void Main(_A<String> args)    {        Application::Run(new Form1());    }};SET_MAIN_CLASS(Form1)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -