![]() |
#2
zzz32652022-09-11 12:04
|
只有本站会员才能查看附件,请 登录
工作区高度和窗口高度都是720p, 为什么窗口和任务栏之间,还有一道空隙。。。

#pragma once
namespace Zoom {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
/// <summary>
/// Form1 摘要
/// </summary>
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
//
//TODO: 在此处添加构造函数代码
//
}
protected:
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
~Form1()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::TableLayoutPanel^ tableLayoutPanel1;
protected:
private: System::Windows::Forms::PictureBox^ pictureBox1;
private: System::Windows::Forms::PictureBox^ pictureBox2;
private:
/// <summary>
/// 必需的设计器变量。
/// </summary>
System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
void InitializeComponent(void)
{
this->tableLayoutPanel1 = (gcnew System::Windows::Forms::TableLayoutPanel());
this->pictureBox1 = (gcnew System::Windows::Forms::PictureBox());
this->pictureBox2 = (gcnew System::Windows::Forms::PictureBox());
this->tableLayoutPanel1->SuspendLayout();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->pictureBox1))->BeginInit();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->pictureBox2))->BeginInit();
this->SuspendLayout();
//
// tableLayoutPanel1
//
this->tableLayoutPanel1->ColumnCount = 2;
this->tableLayoutPanel1->ColumnStyles->Add((gcnew System::Windows::Forms::ColumnStyle(System::Windows::Forms::SizeType::Percent,
66.66666F)));
this->tableLayoutPanel1->ColumnStyles->Add((gcnew System::Windows::Forms::ColumnStyle(System::Windows::Forms::SizeType::Percent,
33.33333F)));
this->tableLayoutPanel1->Controls->Add(this->pictureBox1, 0, 0);
this->tableLayoutPanel1->Controls->Add(this->pictureBox2, 1, 0);
this->tableLayoutPanel1->Dock = System::Windows::Forms::DockStyle::Fill;
this->tableLayoutPanel1->Location = System::Drawing::Point(0, 0);
this->tableLayoutPanel1->Name = L"tableLayoutPanel1";
this->tableLayoutPanel1->RowCount = 1;
this->tableLayoutPanel1->RowStyles->Add((gcnew System::Windows::Forms::RowStyle(System::Windows::Forms::SizeType::Percent, 100)));
this->tableLayoutPanel1->Size = System::Drawing::Size(784, 522);
this->tableLayoutPanel1->TabIndex = 0;
//
// pictureBox1
//
this->pictureBox1->BackColor = System::Drawing::Color::FromArgb(static_cast<System::Int32>(static_cast<System::Byte>(192)), static_cast<System::Int32>(static_cast<System::Byte>(255)),
static_cast<System::Int32>(static_cast<System::Byte>(192)));
this->pictureBox1->Dock = System::Windows::Forms::DockStyle::Fill;
this->pictureBox1->Location = System::Drawing::Point(3, 3);
this->pictureBox1->Name = L"pictureBox1";
this->pictureBox1->Size = System::Drawing::Size(516, 516);
this->pictureBox1->TabIndex = 0;
this->pictureBox1->TabStop = false;
this->pictureBox1->MouseDown += gcnew System::Windows::Forms::MouseEventHandler(this, &Form1::pictureBox1_MouseDown);
//
// pictureBox2
//
this->pictureBox2->BackColor = System::Drawing::Color::FromArgb(static_cast<System::Int32>(static_cast<System::Byte>(255)), static_cast<System::Int32>(static_cast<System::Byte>(192)),
static_cast<System::Int32>(static_cast<System::Byte>(192)));
this->pictureBox2->Dock = System::Windows::Forms::DockStyle::Fill;
this->pictureBox2->Location = System::Drawing::Point(525, 3);
this->pictureBox2->Name = L"pictureBox2";
this->pictureBox2->Size = System::Drawing::Size(256, 516);
this->pictureBox2->TabIndex = 1;
this->pictureBox2->TabStop = false;
//
// Form1
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 12);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(784, 522);
this->Controls->Add(this->tableLayoutPanel1);
this->Name = L"Form1";
this->Text = L"Form1";
this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load);
this->Resize += gcnew System::EventHandler(this, &Form1::Form1_Resize);
this->tableLayoutPanel1->ResumeLayout(false);
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->pictureBox1))->EndInit();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->pictureBox2))->EndInit();
this->ResumeLayout(false);
}
#pragma endregion
//确保pictureBox1为正方形的情况下,窗口允许最大尺寸
private: void SetMaxSize()
{
int maxwidth = Screen::PrimaryScreen->WorkingArea.Width;
int maxheight = Screen::PrimaryScreen->WorkingArea.Height;
if (maxwidth > ((maxheight - 39) * 3) / 2 + 16)
maxwidth = ((maxheight - 39) * 3) / 2 + 16;
else if (maxheight > ((maxwidth - 16) * 2) / 3 + 39)
maxheight = ((maxwidth - 16) * 2) / 3 + 39;
this->MaximumSize = System::Drawing::Size(maxwidth, maxheight);
}
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
SetMaxSize(); //设置窗口最大尺寸
}
private: System::Void Form1_Resize(System::Object^ sender, System::EventArgs^ e)
{
Control^ control = dynamic_cast<Control^>(sender);
//拖动窗口比例缩放,确保pictureBox1 Size 为正方形.
int swidth = control->Size.Width;
int sheight = control->Size.Height;
if (sheight > 28) //sheight > 28 窗口不是最小化。
{
int maxwidth = Screen::PrimaryScreen->WorkingArea.Width;
int maxheight = Screen::PrimaryScreen->WorkingArea.Height;
if (swidth > maxwidth)
swidth = maxwidth;
sheight = ((swidth - 16) * 2) / 3 + 39;
if (sheight > maxheight)
{
sheight = maxheight;
swidth = ((sheight - 39) * 3) / 2 + 16;
}
control->Size = System::Drawing::Size(swidth, sheight);
}
}
private: System::Void pictureBox1_MouseDown(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e)
{
Image^ MyImage = gcnew Bitmap(pictureBox1->Width, pictureBox1->Height);
Graphics^ g = Graphics::FromImage(MyImage);
String^ outstr = "Screen::PrimaryScreen->Bounds.Width = ";
outstr += Screen::PrimaryScreen->Bounds.Width.ToString();
outstr += "\r\n";
outstr += "Screen::PrimaryScreen->Bounds.Height = ";
outstr += Screen::PrimaryScreen->Bounds.Height.ToString();
outstr += "\r\n";
outstr += "PrimaryScreen->WorkingArea.Width = ";
outstr += Screen::PrimaryScreen->WorkingArea.Width.ToString();
outstr += "\r\n";
outstr += "PrimaryScreen->WorkingArea.Height = ";
outstr += Screen::PrimaryScreen->WorkingArea.Height.ToString();
outstr += "\r\n";
outstr += "Form1_Width = ";
outstr += this->Width.ToString();
outstr += "\r\n";
outstr += "Form1_Height = ";
outstr += this->Height.ToString();
outstr += "\r\n";
outstr += "pictureBox1_Width = ";
outstr += pictureBox1->Width.ToString();
outstr += "\r\n";
outstr += "pictureBox1_Height = ";
outstr += pictureBox1->Height.ToString();
System::Drawing::Font^ drawFont = gcnew System::Drawing::Font("Arial", 22);
SolidBrush^ drawBrush = gcnew SolidBrush(Color::Black);
// Create point for upper-left corner of drawing.
PointF drawPoint = PointF(20.0F, 50.0F);
g->DrawString(outstr, drawFont, drawBrush, drawPoint);
this->pictureBox1->Image = (Image^)MyImage->Clone();
delete drawFont;
delete drawBrush;
delete MyImage;
}
};
}
namespace Zoom {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
/// <summary>
/// Form1 摘要
/// </summary>
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
//
//TODO: 在此处添加构造函数代码
//
}
protected:
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
~Form1()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::TableLayoutPanel^ tableLayoutPanel1;
protected:
private: System::Windows::Forms::PictureBox^ pictureBox1;
private: System::Windows::Forms::PictureBox^ pictureBox2;
private:
/// <summary>
/// 必需的设计器变量。
/// </summary>
System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
void InitializeComponent(void)
{
this->tableLayoutPanel1 = (gcnew System::Windows::Forms::TableLayoutPanel());
this->pictureBox1 = (gcnew System::Windows::Forms::PictureBox());
this->pictureBox2 = (gcnew System::Windows::Forms::PictureBox());
this->tableLayoutPanel1->SuspendLayout();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->pictureBox1))->BeginInit();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->pictureBox2))->BeginInit();
this->SuspendLayout();
//
// tableLayoutPanel1
//
this->tableLayoutPanel1->ColumnCount = 2;
this->tableLayoutPanel1->ColumnStyles->Add((gcnew System::Windows::Forms::ColumnStyle(System::Windows::Forms::SizeType::Percent,
66.66666F)));
this->tableLayoutPanel1->ColumnStyles->Add((gcnew System::Windows::Forms::ColumnStyle(System::Windows::Forms::SizeType::Percent,
33.33333F)));
this->tableLayoutPanel1->Controls->Add(this->pictureBox1, 0, 0);
this->tableLayoutPanel1->Controls->Add(this->pictureBox2, 1, 0);
this->tableLayoutPanel1->Dock = System::Windows::Forms::DockStyle::Fill;
this->tableLayoutPanel1->Location = System::Drawing::Point(0, 0);
this->tableLayoutPanel1->Name = L"tableLayoutPanel1";
this->tableLayoutPanel1->RowCount = 1;
this->tableLayoutPanel1->RowStyles->Add((gcnew System::Windows::Forms::RowStyle(System::Windows::Forms::SizeType::Percent, 100)));
this->tableLayoutPanel1->Size = System::Drawing::Size(784, 522);
this->tableLayoutPanel1->TabIndex = 0;
//
// pictureBox1
//
this->pictureBox1->BackColor = System::Drawing::Color::FromArgb(static_cast<System::Int32>(static_cast<System::Byte>(192)), static_cast<System::Int32>(static_cast<System::Byte>(255)),
static_cast<System::Int32>(static_cast<System::Byte>(192)));
this->pictureBox1->Dock = System::Windows::Forms::DockStyle::Fill;
this->pictureBox1->Location = System::Drawing::Point(3, 3);
this->pictureBox1->Name = L"pictureBox1";
this->pictureBox1->Size = System::Drawing::Size(516, 516);
this->pictureBox1->TabIndex = 0;
this->pictureBox1->TabStop = false;
this->pictureBox1->MouseDown += gcnew System::Windows::Forms::MouseEventHandler(this, &Form1::pictureBox1_MouseDown);
//
// pictureBox2
//
this->pictureBox2->BackColor = System::Drawing::Color::FromArgb(static_cast<System::Int32>(static_cast<System::Byte>(255)), static_cast<System::Int32>(static_cast<System::Byte>(192)),
static_cast<System::Int32>(static_cast<System::Byte>(192)));
this->pictureBox2->Dock = System::Windows::Forms::DockStyle::Fill;
this->pictureBox2->Location = System::Drawing::Point(525, 3);
this->pictureBox2->Name = L"pictureBox2";
this->pictureBox2->Size = System::Drawing::Size(256, 516);
this->pictureBox2->TabIndex = 1;
this->pictureBox2->TabStop = false;
//
// Form1
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 12);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(784, 522);
this->Controls->Add(this->tableLayoutPanel1);
this->Name = L"Form1";
this->Text = L"Form1";
this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load);
this->Resize += gcnew System::EventHandler(this, &Form1::Form1_Resize);
this->tableLayoutPanel1->ResumeLayout(false);
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->pictureBox1))->EndInit();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->pictureBox2))->EndInit();
this->ResumeLayout(false);
}
#pragma endregion
//确保pictureBox1为正方形的情况下,窗口允许最大尺寸
private: void SetMaxSize()
{
int maxwidth = Screen::PrimaryScreen->WorkingArea.Width;
int maxheight = Screen::PrimaryScreen->WorkingArea.Height;
if (maxwidth > ((maxheight - 39) * 3) / 2 + 16)
maxwidth = ((maxheight - 39) * 3) / 2 + 16;
else if (maxheight > ((maxwidth - 16) * 2) / 3 + 39)
maxheight = ((maxwidth - 16) * 2) / 3 + 39;
this->MaximumSize = System::Drawing::Size(maxwidth, maxheight);
}
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
SetMaxSize(); //设置窗口最大尺寸
}
private: System::Void Form1_Resize(System::Object^ sender, System::EventArgs^ e)
{
Control^ control = dynamic_cast<Control^>(sender);
//拖动窗口比例缩放,确保pictureBox1 Size 为正方形.
int swidth = control->Size.Width;
int sheight = control->Size.Height;
if (sheight > 28) //sheight > 28 窗口不是最小化。
{
int maxwidth = Screen::PrimaryScreen->WorkingArea.Width;
int maxheight = Screen::PrimaryScreen->WorkingArea.Height;
if (swidth > maxwidth)
swidth = maxwidth;
sheight = ((swidth - 16) * 2) / 3 + 39;
if (sheight > maxheight)
{
sheight = maxheight;
swidth = ((sheight - 39) * 3) / 2 + 16;
}
control->Size = System::Drawing::Size(swidth, sheight);
}
}
private: System::Void pictureBox1_MouseDown(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e)
{
Image^ MyImage = gcnew Bitmap(pictureBox1->Width, pictureBox1->Height);
Graphics^ g = Graphics::FromImage(MyImage);
String^ outstr = "Screen::PrimaryScreen->Bounds.Width = ";
outstr += Screen::PrimaryScreen->Bounds.Width.ToString();
outstr += "\r\n";
outstr += "Screen::PrimaryScreen->Bounds.Height = ";
outstr += Screen::PrimaryScreen->Bounds.Height.ToString();
outstr += "\r\n";
outstr += "PrimaryScreen->WorkingArea.Width = ";
outstr += Screen::PrimaryScreen->WorkingArea.Width.ToString();
outstr += "\r\n";
outstr += "PrimaryScreen->WorkingArea.Height = ";
outstr += Screen::PrimaryScreen->WorkingArea.Height.ToString();
outstr += "\r\n";
outstr += "Form1_Width = ";
outstr += this->Width.ToString();
outstr += "\r\n";
outstr += "Form1_Height = ";
outstr += this->Height.ToString();
outstr += "\r\n";
outstr += "pictureBox1_Width = ";
outstr += pictureBox1->Width.ToString();
outstr += "\r\n";
outstr += "pictureBox1_Height = ";
outstr += pictureBox1->Height.ToString();
System::Drawing::Font^ drawFont = gcnew System::Drawing::Font("Arial", 22);
SolidBrush^ drawBrush = gcnew SolidBrush(Color::Black);
// Create point for upper-left corner of drawing.
PointF drawPoint = PointF(20.0F, 50.0F);
g->DrawString(outstr, drawFont, drawBrush, drawPoint);
this->pictureBox1->Image = (Image^)MyImage->Clone();
delete drawFont;
delete drawBrush;
delete MyImage;
}
};
}