VCでショートカットメニュー(右クリックしたときに表示されるやつ)を
カスタマイズしたいのですが、どのようにすればよいでしょうか?
ちなみに、VCのバージョンは6.0です。

A 回答 (2件)

シェル拡張をつかって実現できます。


COMとかレジストリーとかの知識が必要です。

ショートカットは拡張子 .lnkのファイルなので
該当のレジストリに登録して処理させます。

(HKEY_CLASSES_ROOT\.lnk配下をいじるんですねきっと)

SHELLEXT.DLLというサンプルがあるので参照されてみて
はいかがでしょうか
(ファイルの内容によって同じ拡張子のアイコンを変更するサンプルです)
(新しいVCだとちょっといじらないとコンパイル通らないかも知れません)

参考URL:http://www.microsoft.com/JAPAN/developer/library …
    • good
    • 0

VCで組んだプログラム中の話なんでしょうか?


それとも、VCの統合環境(MS Developer Studio)のショートカットメニューをカスタマイズする話なんでしょうか?

もしVCで組んだMFCアプリケーション中の話であれば、単にClassWizardでWM_CONTEXTMENUのハンドラ関数(OnContextMenu)を設定して、同関数の中でCMenu::TrackPopupMenuを呼べばいい話だと思いますが。

この回答への補足

後者です。
VBのカスタマイズの方法はわかっているのですが、
同じようなことがVCでは出来ないのでしょうか?

補足日時:2001/04/11 21:09
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QCD/DVD盤への印刷について

初歩的な質問でお恥ずかしいのですが・・・
CD/DVD盤への印刷は直接CD/DVD自体に印刷しているのでしょうか?
それともシールに印刷したものを貼り付けているのでしょうか?
ちなみに、プリンターは二つあってブラザーのMFC-610CLNとレックスマークのX5150なのですが・・・
CDはインクジェットプリンター対応というのを買ったのですが・・・

Aベストアンサー

 両方ともCD/DVDダイレクトプリント機能は無いようです。従って、そのプリンタを使う以上は、ラベル方式しかないでしょう。
 ラベル方式の場合、#1さんが云われるようにうまく貼らないと重心がずれて回転ムラの原因になることがあります。専用のスタンパを使う必要があります。
 又、スリットオンタイプのドライブユニットだと、ラベルが剥がれかけたりして誤動作を生む場合もあります(最悪故障することも・・・)。
 ただ、印刷はラベル方式の方がきれいですし、印刷の耐久性も高いです。

QVC++6.0のスケルトンコードをビルド&実行でエラー

VC++6.0を使ってゲームを作ろうとしているのですが、少し困った問題が起きました。

「新規作成」で「プロジェクト」→「MFC AppWizard (exe)」を選んで、
ステップ1で「SDI」を選択、「ドキュメント/ビューアーキテクチャのサポート」をOFFにして、
ステップ3で「ドッキングツールバー」と「初期ステータスバー」をOFFにします。
そしてできあがったスケルトンをそのままビルドして実行すると、下記メッセージが表示され終了します。

Debug Assertion Failed!

Program: ○○○
File: winocc.cpp
Line:331

For information on how your program can cause an assertion failure, see the Visual C++ documentation on asserts.

上記はDebug版の場合ですが、Release版の場合はCliant領域が更新されないだけで一応動いてはいます。
スケルトンコード内のAssert(っぽい)箇所をコメントアウトしましたが結果は同じでした。

どなたか原因をご存じないでしょうか?もしかして、VC++6.0のバグ?

尚、「ドキュメント/ビューアーキテクチャのサポート」、「ドッキングツールバー」、
「初期ステータスバー」のどれか1つでもONにすれば何も起きません。

VC++6.0を使ってゲームを作ろうとしているのですが、少し困った問題が起きました。

「新規作成」で「プロジェクト」→「MFC AppWizard (exe)」を選んで、
ステップ1で「SDI」を選択、「ドキュメント/ビューアーキテクチャのサポート」をOFFにして、
ステップ3で「ドッキングツールバー」と「初期ステータスバー」をOFFにします。
そしてできあがったスケルトンをそのままビルドして実行すると、下記メッセージが表示され終了します。

Debug Assertion Failed!

Program: ○○○
File: winocc.cpp
...続きを読む

Aベストアンサー

SP6はあててますか?
英語ですが、その現象についての記述がありました。

参考URL:http://support.microsoft.com/default.aspx?scid=kb%3BEN-US%3B216850

Qmfc vc++2005 で構成が正しくない・・・

vc++2005 mfcで作成したプログラムで上記が出て他のPCで動きません。
mfc以外はファイルのコピーをするとかだけの単純なツールなのでmfcが
悪さしているとは思います。
mfcをスタティックでリンクにして、コード生成のところのマルチスレッドDLLを
マルチスレッドに変えるとやはりいけますが、別にあったwindows7ではmfcと
コード生成のところを変えなくても問題なくいけました。
vc++2005 redistributable パッケージを入れても変わりません。
mfcは別物なのでしょうか??
ネットを見ているとredistributableパッケージを入れれば大丈夫!!という
感じなのですが。
すいませんがどなたかご教授ください。

Aベストアンサー

>vc++2005 redistributable パッケージを入れても変わりません。

「Microsoft Visual C++ 2005 再頒布可能パッケージ (x86)」
http://www.microsoft.com/downloads/details.aspx?familyid=32BC1BEE-A3F9-4C13-9C99-220B62A191EE&displaylang=ja

「Microsoft Visual C++ 2005 SP1 再頒布可能パッケージ (x86)」
http://www.microsoft.com/downloads/details.aspx?FamilyID=200b2fd9-ae1a-4a14-984d-389c36f85647&displayLang=ja
は、別々にインストールされた…かと思いますが……

さらに、Microsoft Updateで新しいモノが入るかと。
「アプリケーションの追加と削除」には、VC++2005 Redistributableが3つ、
C:\WINDOWS\WinSxSには4つ入っています。
x86_Microsoft.VC80.MFC_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_dec6ddd2
x86_Microsoft.VC80.MFC_1fc8b3b9a1e18e3b_8.0.50727.91_x-ww_decbdf0c
x86_Microsoft.VC80.MFC_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_3bf8fa05
x86_Microsoft.VC80.MFC_1fc8b3b9a1e18e3b_8.0.50727.4053_x-ww_b77cec8e

ということで、それぞれでバージョンの食い違いが発生している可能性があるかと。

ちなみに、現在の私の環境でMFCのプロジェクトを作成して、Release版でビルドし、
できたexeファイルをDependency Walkerに食わせて、MFC80U.DLLのプロパティを表示、パスを確認すると…
C:\windows\winsxs\x86_microsoft.vc80.mfc_1fc8b3b9a1e18e3b_8.0.50727.4053_x-ww_b77cec8e
となっていました。

>vc++2005 redistributable パッケージを入れても変わりません。

「Microsoft Visual C++ 2005 再頒布可能パッケージ (x86)」
http://www.microsoft.com/downloads/details.aspx?familyid=32BC1BEE-A3F9-4C13-9C99-220B62A191EE&displaylang=ja

「Microsoft Visual C++ 2005 SP1 再頒布可能パッケージ (x86)」
http://www.microsoft.com/downloads/details.aspx?FamilyID=200b2fd9-ae1a-4a14-984d-389c36f85647&displayLang=ja
は、別々にインストールされた…かと思いますが……

さらに、Microsoft Updateで新...続きを読む

Q画面のサイズ変更について(VC6.0)

VC6.0を使用して画面サイズ15インチ(最大サイズ)で作成した画面が
あります。
今度この画面サイズが17インチ(最大サイズ)に変更になります。

コントロールのサイズはそのまま(15インチで使用していた時のサイズ)という
指定がある事から、リサイズするしかないのかな。と考えています。

moveWindowを使用するとコントロールのサイズも変更になりますよね?

やはり、リサイズ&コントロールの再配置を行うしか手段はないのでしょうか?

ご存知の方、ご教示頂けると助かります。
それでは宜しくお願いします。

Aベストアンサー

15インチが17インチに変わっるから画面サイズが変わるわけではないですよ?
(解像度同じにすれば変わりません)

解像度を変えてアプリケーションを最大化表示
尚且つ配置されたコントロールのサイズは変えない
という事であれば増えた分の領域に何も表示されないことになるので
各コントロール間の距離を再配置するしかないでしょう
リサイズするのはコントロール配置している画面だけでいいと思います
(Dialogアプリケーション?)

再配置としてはリソースエディタでの再配置と
プログラムでの再配置どちらでもできると思います
(楽なのは言うまでもなく前者)

QMFCに関する質問

C++言語でMFCでアプリケーションを作りたいのですが
MFCというのは、やはり、Visual C++を購入しないと
MFCは手に入りないのでしょうか

それか、どこかで、MFCをダウンロードできるのでしょうか

Aベストアンサー

Microsoft Visual C++ .NET を使った開発などをしていますが、MFC だけ裸で使うというのは大変だと思います。やはり開発環境ともどもというか両者一体ですごく便利に使えるものだと思います。
かつては、UNIX で C でプログラムしていた事もありますが、Visual Studio の開発環境を使うようになってハッキリ言って便利過ぎて驚いています。プログラミングの作業の大半は、API の仕様を調べたりする事ですがその多くをアシストしてくれる環境なので、生産性が数倍以上に上がった気がします。

安いものだと1万円台で買えるものなので、数万円以上した昔に比べれば機能が上がって安いので買っておいて損は無いと思います。もちろん使いこなせなければ宝の持ち腐れですが、誰か使いこなしている人が回りにいれば教えてもらいつつ使うのが良いのではないかと思います。

なお、以前にどこかで互換のある無料版があるらしいとの話を聞いたことがありますが、詳しくはわかりません。

Q[VC#2005] プログラムからのメニューの追加について

Visual C#2005でウェブブラウザを作成していますが、IEの「お気に入り」のようなメニューを作成したいです。

リストデータから、ファイルを読み込み、項目を追加するまではできましたが、

リスト(CSVファイル)は下記のようになっており

Yahoo,http://www.yahoo.co.jp/
goo,http://www.goo.ne.jp/
goole,http://www.google.co.jp/

これらを、メニューに追加します。

しかし、読み込みは完了しているようですが、
項目をクリックすると、一番最後の項目が実行されてしまいます。
(googleが表示されてしまいます)
なぜでしょうか?
いろいろと調べてみたのですが、「VC++」のものしかありません。

ソースはマイクロソフトのものを参考にしました。

private void LoadData()
{
string path = "urllist.txt";
string delimstr = ",";
char[] delimiter = delimstr.ToCharArray();
string[] strData;
string strLine;

ToolStripMenuItem fileitem = new ToolStripMenuItem();
fileitem.Text = "お気に入り(&F)";

Boolean fileExsits = System.IO.File.Exists(path);
if (fileExsits)
{
System.IO.StreamReader sr =
new System.IO.StreamReader(
path, System.Text.Encoding.Default);

while (sr.Peek() >= 0)
{
strLine = sr.ReadLine();
strData = strLine.Split(delimiter);
// Menustrip

ToolStripMenuItem newitem = new ToolStripMenuItem();
newitem.Text = strData[0];
newitem.Click += delegate
{

webBrowser1.Navigate(strData[1]);

};
fileitem.DropDownItems.Add(newitem);
menuStrip1.Items.Add(fileitem);

}

}

}

ご指導をお願いします。

Visual C#2005でウェブブラウザを作成していますが、IEの「お気に入り」のようなメニューを作成したいです。

リストデータから、ファイルを読み込み、項目を追加するまではできましたが、

リスト(CSVファイル)は下記のようになっており

Yahoo,http://www.yahoo.co.jp/
goo,http://www.goo.ne.jp/
goole,http://www.google.co.jp/

これらを、メニューに追加します。

しかし、読み込みは完了しているようですが、
項目をクリックすると、一番最後の項目が実行されてしまいます。
(googleが...続きを読む

Aベストアンサー

namespace Q4267863A
{
class Q4267863A:System.Windows.Forms.Form
{
private System.Windows.Forms.MenuStrip MenuStrip1 = new System.Windows.Forms.MenuStrip();
private System.Windows.Forms.ToolStripMenuItem fileitem = new System.Windows.Forms.ToolStripMenuItem();
public static void Main(){
Q4267863A Form1 = new Q4267863A();
Form1.ShowDialog();
}

Q4267863A(){

string path = "urllist.txt";
string delimstr = ",";
char[] delimiter = delimstr.ToCharArray();
string[] strData;
string strLine;


fileitem.Text = "お気に入り(&F)";

bool fileExist = System.IO.File.Exists(path);
System.Console.WriteLine(fileExist);

if (fileExist)
{
System.IO.StreamReader sr = new System.IO.StreamReader(path, System.Text.Encoding.GetEncoding(65001));

while (sr.Peek() >= 0)
{
strLine = sr.ReadLine();
strData = strLine.Split(delimiter);
// Menustrip

System.Windows.Forms.ToolStripMenuItem newitem = new System.Windows.Forms.ToolStripMenuItem();
newitem.Text = strData[0];
newitem.Tag = strData[1];
newitem.Click += delegate (object sender, System.EventArgs e){
//面倒くさかったのでWebbrowserは配置していない。
System.Windows.Forms.MessageBox.Show(((System.Windows.Forms.ToolStripMenuItem)sender).Tag.ToString());
};
fileitem.DropDownItems.Add(newitem);


}
MenuStrip1.Items.Add(fileitem);
this.Controls.Add(MenuStrip1);
this.MainMenuStrip = MenuStrip1;


}
}

}
}

namespace Q4267863A
{
class Q4267863A:System.Windows.Forms.Form
{
private System.Windows.Forms.MenuStrip MenuStrip1 = new System.Windows.Forms.MenuStrip();
private System.Windows.Forms.ToolStripMenuItem fileitem = new System.Windows.Forms.ToolStripMenuItem();
public static void Main(){
Q4267863A Form1 = new Q4267863A();
Form1.ShowDialog();
}

Q4267863A(){

string path = "urllist.txt";
string delimstr = ",";
char[] delimiter = delimstr.ToCharArray();
string[...続きを読む

Qソフトを開くとエラー 「MFC42.DLLがみつからなかったため開けません」の解決法を教えてください

一部のソフトを開こうとすると
「MFC42.DLLが見つからなかったためこのアプリケーションを開けません アプリケーションをインストール直すことでこの問題は解決できると思います」
とのエラーが出て開けません。
この文章はは、データをCD・やDVDに焼こうとする時にもエラーが出て表示されます。
文章を見ると、”インストールし直せば解決できる”とのことなので、グーグルでMFC42.DLLを探してみたのですが、どのソフトなのか、どこからインストールし直せばいいのか、素人知識では全くわかりません。
どなたか解決法をご存知のかた教えてください!

Aベストアンサー

ランタイムライブラリをインストールすればOKです。
Visual Basic 6.0 SP6 ランタイムライブラリ
http://www.vector.co.jp/soft/win95/util/se188840.html

Qボタンクリックの保存(VC#.NET)

 VC#.NETでボタンクリックで進むようなアプリケーションを作成しました。
 実行中のボタンクリックを保存するような方法ってありますか?

Aベストアンサー

どのボタンが押されてきたのか履歴をとるということですか?
簡単には、どのボタンというのを、ビットの位置で表したフラグで状態として持つとか
あるいは、スタックのようなものに保存すればいいと思います。
勘違いコメントだったらすみません。

QMFC

Visual StudioのMFC(Microsoft Foundation Class)に関して質問があります。
私は今Visual Studio 2010 Express editionを使用しているのですが、新規作成から共通ヘッダファイルを追加でMFCを追加できません。
これは無料版ではMFCは使えないということでしょうか?
また、有料版ではどれでもMFCは使用可能でしょうか?
特に私は今学生ですのでアカデミック版ではどうでしょうか?

Aベストアンサー

>これは無料版ではMFCは使えないということでしょうか?

はい、使えません。

>また、有料版ではどれでもMFCは使用可能でしょうか?

使用可能です。

>特に私は今学生ですのでアカデミック版ではどうでしょうか?

他の有料版と同じです。

QExcelのメニューバーのカスタマイズについて

いつもお世話になっております。

表題の件なのですが、VBAを使用せずに
Excelのメニューバーをカスタマイズすることは
可能なのでしょうか。

聞いた話によると、VisualStudioに付随するツールで
できるそうなのですが一向に見当たらないのです…。

ご存知の方がいらっしゃいましたらご教授いただければ
幸いに存じます。

短文ではありますが、よろしくお願い申し上げます。
失礼いたします。

Aベストアンサー

エクセルが変に成っているようです。
ヘルプからアプリケーションの自動回復を実施してからカスタマイズに行けばと良いと思います。
CDが必要です。
以前経験しました。
元の画面の時と、変更後の画面の時とね。


人気Q&Aランキング

おすすめ情報