C++ Builder XE4 > UI > 화면 N 분할된 크기로 소프트웨어를 변경하는 UI 예
10156 단어 monitorcppBuilder우이
C++ Builder XE4
처리 개요
구현
Unit1.h
//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
#include <Vcl.ExtCtrls.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE で管理されるコンポーネント
TComboBox *CB_vertDiv;
TComboBox *CB_horiDiv;
TShape *SHP_screen;
TShape *SHP_software;
TLabel *L_softcaption;
void __fastcall FormShow(TObject *Sender);
void __fastcall CB_vertDivChange(TObject *Sender);
void __fastcall CB_horiDivChange(TObject *Sender);
private: // ユーザー宣言
int original_width;
int original_height;
public: // ユーザー宣言
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
Unit1.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
this->Caption = L"Display size";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormShow(TObject *Sender)
{
original_width = this->Width;
original_height = this->Height;
// 左上合わせ (デザインで重なりが分かるようにずらしているためコードで合わせる)
SHP_software->Left = SHP_screen->Left;
SHP_software->Top = SHP_screen->Top;
L_softcaption->Left = SHP_screen->Left;
L_softcaption->Top = SHP_screen->Top;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CB_vertDivChange(TObject *Sender)
{
int val = StrToIntDef(CB_vertDiv->Text, 0);
if (val == 0) {
return;
}
SHP_software->Height = SHP_screen->Height / val;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CB_horiDivChange(TObject *Sender)
{
int val = StrToIntDef(CB_horiDiv->Text, 0);
if (val == 0) {
return;
}
SHP_software->Width = SHP_screen->Width / val;
}
//---------------------------------------------------------------------------
양식 디자인
동작 예
고안
왼쪽 상단에 소프트웨어 캡션 "XXX Software"라고 붙였다.
이것이 없으면 2분할했을 때 「어느 쪽이 소프트웨어일까?」라는 의문이 발생한다.
관련
화면 설정 예
Reference
이 문제에 관하여(C++ Builder XE4 > UI > 화면 N 분할된 크기로 소프트웨어를 변경하는 UI 예), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/7of9/items/2d254a2627e66b9ed48e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)