VC++6から.NETでわからない – プログラミング – Home

VC++6から.NETでわからない
 
通知
すべてクリア

[解決済] VC++6から.NETでわからない


ITF
 ITF
(@ITF)
ゲスト
結合: 22年前
投稿: 4
Topic starter  

先日、Visual C++ 6.0 から Visual C++.NET に移行しました。
.NET では、クラスウィザードがないことに戸惑っております。

MFCを使ってアプリを開発していましたところ、
ツールバーに新しいボタンを追加し、イベントの処理をしようとしましたら、
クラスウィザードがなく、どうやってメッセージハンドラを追加すれば良いかが
わからなくて困っております。

右クリックで「イベントの追加」などのものもありません。
追加したいのは、「CMainFrame」クラスです。
初心者な質問ですが、よろしくお願いします。


引用未解決
トピックタグ
藤本(み)
 藤本(み)
(@藤本(み))
ゲスト
結合: 22年前
投稿: 7
 

クラスビューでCMainFrameを右クリックして「プロパティ」を選択します。
プロパティウインドウが表示されるのでその上部にある「イベント」、「オーバーライ
ド」、「メッセージ」というボタンを押下してみてください。


返信引用
ITF
 ITF
(@ITF)
ゲスト
結合: 22年前
投稿: 4
Topic starter  

クラスビューの、
・「CMainFrame」を選択し、右クリック「プロパティ」では
上部のドロップダウンリストに「VCCodeClass」と表示された
プロパティウィンドウが開き、イベント・オーバーライド・メッセージともに、
何も表示されません。

・「CMainFrame」をダブルクリックすると、
上部に「CMainFrame VCCodeClass」と表示されたプロパティウィンドウが開き、
こちらは、イベント・オーバーライド・メッセージともに、色々な内容が表示されま
す。
特に、「イベント」では、メニューバーのIDと、
アクセラレータのIDがありますが、
追加したボタンのID「ID_BUTTON_TST」はありません。

これは、メニューバーにも、このIDをもったメニューを
追加しないといけない、ということでしょうか?


返信引用
ITF
 ITF
(@ITF)
ゲスト
結合: 22年前
投稿: 4
Topic starter  

詳しく状況を説明すると、

作成したのは、「MFCアプリケーション」で、
プロジェクト名は「vctbar」、SDIです。

そして、アップウィザードを完了させた直後に、
ツールバーに新たにボタンを作成しました。
このボタンのIDは、「ID_BUTTON_TST」です。

そして、このボタンが押されたときに、
呼ばれる関数を「CMainFrame」に作りたいわけです。


返信引用
藤本(み)
 藤本(み)
(@藤本(み))
ゲスト
結合: 22年前
投稿: 7
 

>特に、「イベント」では、メニューバーのIDと、
>アクセラレータのIDがありますが、
>追加したボタンのID「ID_BUTTON_TST」はありません。
試してみたけど確かにありませんね。

手動でID_BUTTON_TST用の関数を追加して、中間ファイルや.apsやら.ncbやら全部削除し
たら表示されるようになりましたが、自動でやる方法はわかりません。


返信引用
藤本(み)
 藤本(み)
(@藤本(み))
ゲスト
結合: 22年前
投稿: 7
 

ツールバー
http://www.mtakahashi.com/old/08800.html#08778


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

メニュー上にある機能をツールバーに引き出すというような
使い方を想定してインターフェイスが作成されているみたいですね。
メニュー側にメニュー項目を作成してIDを振り、
ツールバー側にはこれを割り振るみたいです。
ツールバーは基本的に非表示に出来るものなので
ツールバーにある機能は全てメニュー側に実装しておくのが
基本的な考え方なのではないかと私も思います。
ただ、UIはそれぞれの設計思想等があるのでMSの思想にそぐわない場合は
他に方法を考えるしかないみたいですね。
一度、メニュー上に項目を作成してイベントに対するコールバックまで
作成してしまえば、メニュー項目は削除しても大丈夫みたいですね。
メニュー上から削除してしまうとプロパティウインドウからは見えなく
なりますが、クラスビュー上は見えていますしソースを直接見てもいいので
何とかならないことはないと思います。


返信引用
渋木宏明(ひどり)
 渋木宏明(ひどり)
(@渋木宏明(ひどり))
ゲスト
結合: 22年前
投稿: 196
 

てか、手動でハンドラを追加するのでは駄目なんですか?


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

自動でしたそうだったので次善の策を提示しましたけれど、
私も手動でいいと思います。
というか、手動でやらざる得ない場合もありますし、
覚えておいて損は無いかと。


返信引用
ITF
 ITF
(@ITF)
ゲスト
結合: 22年前
投稿: 4
Topic starter  

しっかり「夏休み」してる間に、解決してる。ありがとうございます。

PATIOさんのやり方は、途中で気付きました。それから、
>メニュー上にある機能をツールバーに引き出すというような
>使い方を想定してインターフェイスが作成されているみたいですね。
というのも気付きました。

「まぁ、これでいいんだ。」と納得しましたけど、
手動で書く方法も覚えた方が良さそうですね。

蛇足ですが、
藤本(み)さんに教えて頂いたページに書いてある、
>参考書籍がC++6.0の本なのですが
同じ本だと思います。
林晴彦氏「新VisualC++6.0入門ビギナー編」です。

お蔭様で、かなり.NETにも慣れることができました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました