Version1.0でのサブクラス化にどんな問題があったかというと、このやり方では文字化けを起こすということです。もちろん常に化ける訳ではありません。それならリリースする前にとっくに見つかっているはずです。 続きを読む WideStudio Programming (4-3)
~unicode対応との絡み
カテゴリー: C++
C++プログラミングに関連した記事。
WideStudio Programming (4-3)
WideStudio Programming (4-2)
~メッセージループへの介入
一口にメッセージループに介入すると言っても、メッセージループの処理自体に介入するのは困難です。ここでは自前のメッセージ処理を追加したいだけですから、ウィンドウプロシージャを入れ替えて、自前の処理が必要なら実行するし、必要無ければ元のウィンドウプロシージャを呼び出して処理させる、というやり方(いわゆるサブクラス化)でいけるでしょう。 続きを読む WideStudio Programming (4-2)
~メッセージループへの介入
WideStudio Programming (4-1)
~ドロップ通知先の登録
WM_DROPFILESメッセージの配信先を登録するにはWindows API の DropAcceptFilesを発行します。またそのためには、WM_DROPFILESメッセージの配信先となるウィンドウのウィンドウハンドル(HWND)が必要です。 続きを読む WideStudio Programming (4-1)
~ドロップ通知先の登録
WideStudio Programming (4)
~ドラッグアンドドロップ
ドラッグアンドドロップはWindowsを使っているユーザーにはお馴染みの機能です。タンゴレンでも、単語帳ファイルをドラッグしてメイン画面にドロップすれば、単語帳が開くようになっています。
が、この機能の実装にはWideStudio/MWTは使われていません。 続きを読む WideStudio Programming (4)
~ドラッグアンドドロップ
WideStudio Programming (3-5)
~イベントプロシージャの書き方
さて、唯一のイベントプロシージャ ep_rad_value_ch ですが、こんな風に定義されています。
続きを読む WideStudio Programming (3-5)
~イベントプロシージャの書き方
WideStudio Programming (3-4)
~イベントプロシージャの登録
というわけで、vectorにしておくと楽になる処理の例が、CTGRWindowPlacementDlg::WPDImpl::SetupEventProcedures()です。 続きを読む WideStudio Programming (3-4)
~イベントプロシージャの登録
WideStudio Programming (3-3)
~画面パーツの生成
CTGRWindowPlacementDlg::WPDImpl::CreateParts()ではパーツを作って配置していきます。これは力業です。この部分はGUI開発環境で要所要所のパーツを含む画面を作ってひな形となるソースを書き出させて、規則的に生成出来る部分はエディタでコピーしながら作ってしまった方が簡単です。 続きを読む WideStudio Programming (3-3)
~画面パーツの生成
WideStudio Programming (3-2)
~画面クラスの作り方-2
「お手軽ウィンドウ配置ダイアログ画面」クラスの実装について見ていきます。WideStudioプログラミングとしてのエッセンスは内部処理を実装しているCTGRWindowPlacementDlg::WPDImplクラスにあります。 続きを読む WideStudio Programming (3-2)
~画面クラスの作り方-2
WideStudio Programming (3-1)
~画面クラスの作り方-1
タンゴレンの三つの基本画面(メイン画面と情報ウィンドウ画面と検索パネル画面)は、三つともWSCmainWindowです。その他の補助的なダイアログ画面も多くはWSCmainWindowで作られています。モーダルな動作になる小さな画面にはWSCdialogを使っているものもありますが、モードレスに表示される画面は全部WSCmainWindowになっています。 続きを読む WideStudio Programming (3-1)
~画面クラスの作り方-1
WideStudio Programming (3)~画面の作り方
文字コード関係の記事が先になりましたが、ここからはWideStudio/MWTによる作り方について、タンゴレンで採った手法を例にして書いていきます。 続きを読む WideStudio Programming (3)~画面の作り方