WinUI - データバインディング(Bindings->Update)

C++ で WinUI 3 ライブラリを使う この記事は試行錯誤の結果をまとめたもので、WinUI の正しい使い方ではないかもしれません。 下図のようにTextBox に入力した文字列をもう一方のTextBoxに反映する方法を考えます。 XAMLはこんな感じです。入力用のTextBox…

WinUI - データバインディングできるモデルを追加する

C++ で WinUI 3 ライブラリを使う データバインディングできるモデル (class) をプロジェクトに追加しようとしたとき、その方法がわからず苦労したので紹介します。 Visual Studio のソリューションエクスプローラを開き、プロジェクトを選択した状態で右ク…

WinUI - ナビゲーションのウィンドウに設定ボタンを表示する

C++ で WinUI 3 ライブラリを使う NavigationView の IsSettingsVisible 属性を True にすると設定ボタンを表示します。 <NavigationView IsSettingsVisible="True"> メニューを選択したときのイベントハンドラでは、IsSettingsSelected, IsSettingsInvoked 関数で設定ボタンが押されたか判断できます</navigationview>…

WinUI - 新しい UserControl を追加する

C++ で WinUI 3 ライブラリを使う 新しい UserControl をプロジェクトに追加しようとしたとき、その方法がわからず苦労したので紹介します。 Visual Studio のソリューションエクスプローラを開き、プロジェクトを選択した状態で右クリックのポップアップメ…

WinUI - メニューを選択したときのイベントを実装する

C++ で WinUI 3 ライブラリを使う NavigationVeiw のメニューを選択したときのイベントを処理する方法を紹介します。 NavigationView のメニューを選択すると ItemInvoked イベントが発生します。また選択しているメニューが変化したときは SelectionChanged…

WinUI - ToggleSwitch のラベルをボタンの左側にする

C++ で WinUI 3 ライブラリを使う ToggleSwitch のラベルをボタンの左側にするには FlowDirection に RightToLeft を設定します。 <StackPanel Orientation="Vertical" HorizontalAlignment="Center" VerticalAlignment="Center" Spacing="4"> <ToggleSwitch BorderBrush="Red" BorderThickness="1"/> </toggleswitch></stackpanel>

WinUI - 新しい Page を追加する

C++ で WinUI 3 ライブラリを使う 新しい Page をプロジェクトに追加しようとしたとき、その方法がわからず苦労したので紹介します。 Visual Studio のソリューションエクスプローラを開き、プロジェクトを選択した状態で右クリックのポップアップメニューを…

WinUI - 起動時のウィンドウサイズを指定する

C++ で WinUI 3 ライブラリを使う アプリを起動したときのウィンドウサイズは、MainWindow のコンストラクタでAppWindow::Resize を使って指定できます。 #include <winrt/Microsoft.UI.Interop.h> #include <winrt/Microsoft.UI.Windowing.h> MainWindow::MainWindow() { InitializeComponent(); auto hWnd = stuff::getHwn</winrt/microsoft.ui.windowing.h></winrt/microsoft.ui.interop.h>…

WinUI - XAML で日本語を使ったときの文字化けを直す

C++ で WinUI 3 ライブラリを使う XAML ファイルのメニュー名やボタン名などに日本語を使うとアプリを実行したときに文字化けします。 <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center"> <Button x:Name="myButton" Click="myButton_Click">ボタン押してね</Button> </StackPanel> このような時は XAML ファイルを UTF-8 の文字コードで保存しましょう。 XAMファイルを開いた状…

WinUI - ウインドウハンドル (HWND) を取得する

C++ で WinUI 3 ライブラリを使う ウィンドウハンドルを取得する方法を紹介します。 ウィンドウハンドルは IWindowNative::get_WindowHandle で取得できるので、関数にしてみました。 また IWindowNative クラスは microsoft.ui.xaml.window.h で定義されて…

WinUI - XAML要素のインスタンスにコードからアクセスする

C++ で WinUI 3 ライブラリを使う XAMLで定義した要素のインスタンスに C++ のコードからアクセスするには、XAML要素に Name 属性をつけます。そうすると XAMLのコンパイル時に Generated Files下にSetter/Getter 実装したファイルが作られ、C++ のコードか…

WinUI - イベントハンドラを追加する

C++ で WinUI 3 ライブラリを使う Button などのコントロールにイベントハンドラを追加したかったのですが、その方法がわからず苦労したので紹介します。 Visual Studio で XAMLファイルを開き、XAML要素にイベントの属性名と = を入力すると <新しいイベン…

WinUI - ナビゲーションの位置を指定する

C++ で WinUI 3 ライブラリを使う NavigationView の表示位置は、PaneDisplayMode プロパティを使います。 図のようにナビゲーションメニューを上側に配置するには、Top を指定します。 PaneDisplayMode に指定できる値には、Auto, Left, LeftCompact, LeftM…

WinUI - NavigationView を使う

C++ で WinUI 3 ライブラリを使う 図のようなナビゲーションメニューを持つアプリを作るには、NavigationView を使います。 MainWindow.xaml の Window 要素に NavigationView を配置します。

WinUI 3 with C++ 入門

WinUI 3 ライブラリは C++ で利用できます。 お約束の Hello, World! を表示する Windows アプリを作ってみようと WinUI ライブラリを触ってみましたが、思いのほか難しい。エラーを検索しても C# での説明だったり、 WPF や UWP のライブラリの説明だったり…

ルートコンポーネントにプロパティを数値で渡す

vue

Vue3 を使ってわからなかった事のメモシリーズ ルートコンポーネントにプロパティを渡すことをリンクを参考にしてやってみた。しかし、値を渡すことはできたが age プロパティの値が文字列だった。 const router = new VueRouter({ routes: [{ path: '/User/…

コンポーネントのライフサイクル

vue

Vue3 を使ってわからなかった事のメモシリーズ コンポーネントを自作しときに初期化時の処理を記述するのはどうすればいい? 解 setup を使う export default { setup() { // mounted onMounted(() => { console.log('Component is mounted!') }) } } コンポ…

PrimeVUE の InputText が使えない

vue

Vue3でPrimeVueを初めて使ってみました。 InputNumber、InputSwitchといったコンポーネントは問題なく使えるのですが、InputText だけがタグを書いても画面に表示されないのです。 Chrome の DevTools で確認すると

markdowncat を更新(Ver.0.4.7)

マークダウンを結合するときの不具合を修正しました。 $newpage が改行にならない コメント <-- --> があるとヘッダーを除外できない場合がある poyonshot.hatenablog.com

npm ERR! 403

npm

はじめて npm のライブラリを作るのときの話です。検索すれば npm ライブラリの作り方はたくさん Hit するのでそれを見ながら作業するわけです。 Step1 アカウントを作る ふむふむアカウントは必要だよね。 Step2 環境を準備 npm ライブラリを開発に必要なも…

Markdown の 表(Table,テーブル) を書く拡張機能を作った

Markdown の表を書くときに、セルの結合や表のセルの構成とセルの内容を分けて記述できる Visual Studio Code の拡張機能を作りました。 紹介する拡張機能は MarkdownCat で検索してインストールして下さい。 基本ルール 言語名を mdcat.table にしてコード…

Androidのスマートフォンに保存しているファイルをGUIで選ぶ

Windowsのファイルを開くダイアログのように、Androidのスマートフォンに保存しているファイルをGUIで選ぶには、暗黙的インテントを使って対応する Activity を起動します。 startActivity() や startActivityForResult() を実行する前に resolveActivityを…

ボタンを押したときに呼ばれる関数をKotlinで設定する

ボタンを押したときに呼ばれる関数を設定するには、このButtonのインスタンスを取得し、setOnClickListener でイベントリスナーを設定します。 <Button android:text="開く" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/open_btn" /> kotlinでは、Buttonのidでインスタンスにアクセスできるので1行で書けます。 override fun onCreate(savedInst</button>…

移行前のブログ

http://d.hatena.ne.jp/poyonshot/

ファイルを開いたときにTextEditorを取得する

VSCodeのエクスプローラでファイルを開いたとき、そのファイルのTextEditorを取得するには、onDidChangeActiveTextEditorを使います。 context.subscriptions.push( vscode.window.onDidChangeActiveTextEditor( (event) => { if (!event || (event.document…

独自の拡張子のファイルを開いた時のコンテキストメニューにコマンドを追加する

VSCode拡張機能の開発で、コンテキストメニューにコマンドを追加するには package.json の contributes.menus に editor/context を追加します。 "contributes": { "menus": { "editor/context": [ { "when": "resourceExtname == .mdcat", "command": "exte…

複数のマークダウンファイルを結合する

複数のマークダウンファイルを結合する Visual Studio Code (VSCode)の拡張機能「MarkdownCat 」を作って公開しました。 使い方は、複数のマークダウンファイルを置いたフォルダをVSCodeで開き、拡張子が.mdcatのファイルを作成します。 .mdcat ファイルに…