皆さん、たくさんのアドバイスありがとうございます。
本当に感謝しております。
akey様
TTN_NEEDTEXTとは何の事を指しておられるのでしょうか?
今回ツールバーは標準的な物だけで良いという事ですので、ツールチップはOSによって
勝手に変わると思いますのでツールチップに関しては操作しなくて良くなりました。
ですが、できましたら後学の為に教えて頂ければ幸いです。
rin様
度々ありがとうございます。
>(CFrameWnd::OnSetMessageString()から呼ばれるCFrameWnd::GetMessageString()内)
とありますがOnSetmessageString()から呼ばれるGetMessageString()内という意味が良く
分かりませんでした。
ステータスバーの変更はできたとの事ですが、上記の方法でできたのでしょうか?
現在、環境がないので、月曜日にでも試してみて分からなければ再度書き込ませて頂きます。
ITO様
私も以前に他の仕事で英語版のOSで動かしてみるとフォントサイズの違いからうまく動
かずに英語版に合わせて作り直したことがあります。
ですので、今回は最初からMS UI Gothicでコーディングするつもりです。
システムに依存するメッセージやダイアログなどは、その国のOSを使うという前提です
ので問題ないと考えております。
subaru様
私もリソースでいけたら楽だろうと考えていたのですが、
データ受信時にリストボックスに動的に表示する文字列等が大量にあり
それも多言語化しなければならないのでリソースでは対応できない事が分かりました。
現在はソース上に構造体として埋め込まれていますが、これもiniファイル化したいと
思っています。
> システムに依存するメッセージやダイアログなどは、その国のOSを使うという
> 前提ですので問題ないと考えております。
ならよかったです。
日本語OSですべてやろうとしているかと思ってました。
>これもiniファイル化したいと思っています。
おそらく大丈夫だと思いますが、マイクロソフトはINIファイルを32ビットで
使うことに関しては薦めてません。
重要なファイルにINIファイル形式を使うのは僕もあまり薦められません。
基本データは、別ファイルにとっておいてINIファイルは必要なデータを
コピーして作る程度に考えた方がいいと思います。
タフマンさんへ
聞く前に調べましょう。
検索すれば、サンプルや解説が見つけられるはず
>ツールチップ
>TTN_NEEDTEXT
これは通知メッセージなのでON_NOTIFYマクロ等でハンドラを登録して、ハンドラ関数で
文字列を返送する
>ステータスバー
>CFrameWnd::GetMessageString
これは仮想関数なのでCMainFrame等の派生クラスでオーバーライドして、文字列を返送す
る
ITO 様
ご助言ありがとうございます。
CSVファイルへの変更なども含めてユーザー等と話あってみたいと思います。
akey様
自分では調べた上で分からなかったので質問させて頂きました。
ご不快に思われたならすみません。
OnSetmessageString()とGetMessageString()について調べているのですが、実装方法が分
かりません。
現在は環境の問題でVC6.0にてテストしています。
CMainFrameのメッセージマップに出てこないのですがどのように実装するのでしょうか?
ご存知の方にはかなり初歩的な質問だとは思いますが、全く分からずに困っています。
よろしくお願いいたします。
>タフマンさん
>CMainFrameのメッセージマップに出てこないのですがどのように実装するのでしょう
か?
初歩的じゃないかな。
やることは、単にメンバ関数のオーバーライドです
ただし、ヘッダー、メッセージマップ、関数本体、全部手書きする必要があります。
派生元となるソースは、winfrm.cppの中にあります。
>TTN_NEEDTEXT
これ、MFC・SDIでデフォルトで作られるツールバーの場合
どのタイミングでどこへ投げてるんだろうか?
CChildView,CMainFrameのどっちにも届かなかった
>これ、MFC・SDIでデフォルトで作られるツールバーの場合
>どのタイミングでどこへ投げてるんだろうか?
>CChildView,CMainFrameのどっちにも届かなかった
すみません、説明が不足してました。
CFrameWndのように通知メッセージを処理すればデフォルトのツールバーの場合でも届く
ようになります
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTW, 0, 0xFFFF, OnToolTipText)
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTA, 0, 0xFFFF, OnToolTipText)
自前のIDだけでよければ以下のようになります
ON_NOTIFY_EX( TTN_NEEDTEXT, 0, OnToolTipText)
ご報告が遅れて申し訳ありません。
他の部分でハマってましてまだそこに手が付けられていません。
初歩的な事かも知れませんが、ずっとダイアログベースでやってきた私には少し難しいです。
一応本なども調べたのですがOnSetmessageString()とGetMessageString()についての情報
が少なくて。
来週中には手を付けたいのですが、また何か進展がありましたら必ず報告させて頂きます。
皆様、やっと手が付けられ、解決いたしましたのでご報告します。
教えて頂いたとおり、MainFrm.cppの中でGetMessageString()をオーバーライド(手作業
でなくても出来ました)し、IDを比較してrMessageを変更する事によりステータスバーの
文字列変更ができました。
ツールチップについては、表示しない方向で話がまとまりましたので、今回は作業してお
りません。
皆様の助言、とても参考になりました。ありがとうございました。