WinUI 3 C++ 컨트롤 편 – 기본 텍스트 컨트롤

WinUI 3 C++ 컨트롤 편 – 기본 텍스트 컨트롤

이번 수업에서는 WinUI 3 C++ 컨트롤을 배우기 시작합니다. WinUI C++에는 다양한 내장 컨트롤이 제공되며 먼저 기본 텍스트 표시 및 입력 컨트롤부터 살펴보겠습니다.

텍스트 관련 핵심 컨트롤은 다음과 같습니다.

TextBlock:정적 텍스트 표시, 리치 텍스트 및 인라인 스타일 지원

RichTextBlock:읽기 전용 리치 텍스트 뷰어, 단락, 기울임, 굵은 글씨, 이미지 삽입 지원

TextBox:단일 줄 텍스트 입력 상자

RichEditBox:다중 줄 리치 텍스트 편집기(글꼴, 색상, 단락 서식 설정 가능)

PasswordBox:비밀번호 입력 상자, 입력 문자 가리기

AutoSuggestBox:자동 완성 드롭다운 기능이 있는 입력 상자

NumberBox:숫자만 입력 가능, 최대/최소값 제한 및 소수점 지원


    <StackPanel Orientation="Vertical" HorizontalAlignment="Center" VerticalAlignment="Center" Padding="30">
        
        <TextBlock Text="Hello, FoxDevelop!" FontSize="24" Margin="0,0,0,20"/>
        
        <RichTextBlock>
            <Paragraph>
                <Run Text="This is a sample WinUI application."/>
            </Paragraph>
        </RichTextBlock>

        <TextBox x:Name="myTextBox" PlaceholderText="Enter your name" Text="" Margin="0,20,0,0"/>

        <RichEditBox PlaceholderText="Enter some rich text" Margin="0,20,0,0"/>

        <PasswordBox PlaceholderText="Enter your password" Margin="0,20,0,0"/>

        <AutoSuggestBox PlaceholderText="Search..." Margin="0,20,0,0"/>

        <NumberBox PlaceholderText="Enter a number" Margin="0,20,0,0"  Maximum="100" Minimum="0"/>

        <Button Content="Click Me" Margin="0,20,0,0" Click="Button_Click"/>
    </StackPanel>Code language: HTML, XML (xml)

이벤트 이름 위에 커서를 놓고 F12 키를 누르면 버튼 클릭 이벤트 함수가 자동 생성됩니다

#include "pch.h"
#include "MainWindow.xaml.h"
#if __has_include("MainWindow.g.cpp")
#include "MainWindow.g.cpp"
#endif


#include <winrt/Microsoft.UI.Xaml.Controls.h>
#include <winrt/Microsoft.UI.Xaml.h>

using namespace winrt;
using namespace Microsoft::UI::Xaml;
using namespace Microsoft::UI::Xaml::Controls;
using namespace Windows::Foundation;

// To learn more about WinUI, the WinUI project structure,
// and more about our project templates, see: http://aka.ms/winui-project-info.

namespace winrt::AppWinui::implementation
{
    int32_t MainWindow::MyProperty()
    {
        throw hresult_not_implemented();
    }

    void MainWindow::MyProperty(int32_t /* value */)
    {
        throw hresult_not_implemented();
    }

}

void winrt::AppWinui::implementation::MainWindow::Button_Click(winrt::Windows::Foundation::IInspectable const& sender, winrt::Microsoft::UI::Xaml::RoutedEventArgs const& e)
{
    myTextBox().Text(L"welcome to foxdevelop.com");//TextBox 텍스트 설정
    hstring inputText = myTextBox().Text(); //TextBox 텍스트 읽기
    OutputDebugStringW(inputText.c_str());
}
Code language: C++ (cpp)

myTextBox().Text로 텍스트 값을 설정하거나 가져올 수 있습니다. L"welcome to foxdevelop.com" 같은 매개변수를 전달하면 텍스트를 설정하고, 매개변수 없이 hstring inputText = myTextBox().Text();로 호출하면 현재 입력된 텍스트를 반환받습니다.

참고: myTextBox().Text(L"welcome to foxdevelop.com");로 기본 텍스트를 채운 뒤에도 사용자가 화면에 직접 입력한 내용은 버튼 클릭 시 백엔드에서 정상적으로 불러올 수 있습니다.

다른 텍스트 컨트롤도 유사한 방식으로 값을 읽고 쓸 수 있으므로 여기서 하나씩 다루지 않겠습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다