Visual Cのソースの編集について質問します。

すべての行にわたって、ソースの左端何文字か分だけ消すことは
できるのでしょうか。
他人が作った、ちょっとしたプログラムをカットアンドペーストして
動きを見てみようと思ったら、親切に行番が振ってあり、
消すのが大変だったので、そういう機能があるのかとおもって
書きこんでみました。よろしくお願いします。

A 回答 (2件)

はい。

ありますよ(^^)

メニューの「ツール」->「クイックマクロの記録」で希望のキーストロークを記録してください。御質問の場合例えば行番号が3桁だったとしたら「Del」「Del」「Del」「↓」を記録しておきます。あとは「クイックマクロの再生」を繰り返せばOK!
    • good
    • 0
この回答へのお礼

マクロに慣れ親しんでないので、
こういう使い方に気がつきませんでした。
親切な回答ありがとうございました。

お礼日時:2001/10/20 01:33

Alt キーを押しながら範囲選択すればOKです。


コピー&ペーストもDeveloperStudioのエディタ内であれば可能です。
    • good
    • 0

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

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

Qサイズ変更枠ダイアログのタイトルバー左端のアイコンを消す

VC++2005、MFCにてプログラムを作成しています。
サイズ変更枠のダイアログには、デフォルトでタイトルバーの左端に、
小さいウィンドウのようなアイコンが表示されますが、
クローズボックスは表示したままで、アイコンだけを消したいのです。
(よってプロパティのSystemMenuの値はTrueで固定)

自分で調べた方法で、
1.m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); を消す。
2.OnInitDialog()中で次の2行を消す。
SetIcon(m_hIcon, TRUE); // 大きいアイコンを設定
SetIcon(m_hIcon, FALSE); // 小さいアイコンを設定
とありますが、どちらも不可能でした。
※IDR_MAINFRAMEがソースに存在しない、OnIni内にSetIconが存在しない等

GetWindowStyle()を利用すれば実現できるとも聞いたのですが、
使い方が分からず、手が出せない状況です。
もし実現させる方法をご存知の方おられましたら、ご教示お願い致します。

VC++2005、MFCにてプログラムを作成しています。
サイズ変更枠のダイアログには、デフォルトでタイトルバーの左端に、
小さいウィンドウのようなアイコンが表示されますが、
クローズボックスは表示したままで、アイコンだけを消したいのです。
(よってプロパティのSystemMenuの値はTrueで固定)

自分で調べた方法で、
1.m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); を消す。
2.OnInitDialog()中で次の2行を消す。
SetIcon(m_hIcon, TRUE); // 大きいアイコンを設定
SetIc...続きを読む

Aベストアンサー

こんにちは。

以下は、MFC使用&ダイアログベースでのWinアプリ作成時(デフォルト構成から
あまり変更を加えていない場合)の話としてのコメントです。
※見当外れだった場合はすみません。

まず、ダイアログクラスの OnInitDialog() 内に、
  SetIcon(m_hIcon, TRUE);    // 大きいアイコンを設定
  SetIcon(m_hIcon, FALSE);    // 小さいアイコンを設定
のような記述がなく、かつ「アプリ実行時のタイトルバーにアイコンが表示されている」
ということは、システムのデフォルトのアイコンが表示されているのかもしれません。

それと、リソースエディタでのダイアログのプロパティ設定にて、
  [境界線] の設定を 「サイズ変更枠」
に設定されているのではないでしょうか?

あくまで一例ですが、以下のような設定でアイコンを非表示にできるかもしれません。
※上手くいかなかった場合はすみません。

※当方は「VC++2005」を使ったことがないので、設定の画面、項目名などが異なって
いるかもしれません。 その際は、同等な機能・項目などに置き換えて下さい。
(もう過去の遺物ですが、当方は未だに「Visual C++ 5.0」を使用しています。(^_^;) )

==============================
■リソースエディタ上でのダイアログのプロパティ設定

 スタイル      : ポップアップ、または、オーバーラップ
 境界線       : ダイアログ枠
               ※ここでは「サイズ変更枠」には設定しない。
 タイトルバー    : チェックマークをON
               ※スタイル設定をポップアップにした場合。
 システムメニュー : チェックマークをON

■ダイアログクラスの OnInitDialog() への変更・追加

 下記の例のように、ウインドウスタイル、システムメニューの設定を変更・追加してみて下さい。

  this->ModifyStyle(0, WS_THICKFRAME);    //←スタイルに「サイズ変更枠」を追加
  CMenu* pSysMenu = GetSystemMenu(FALSE);
  if (pSysMenu != NULL)
  {                            //↓システムメニューに「サイズ変更」を追加
    pSysMenu->AppendMenu(MF_STRING, SC_SIZE, "サイズ変更(&S)");
  }

 あと、もし下記2行のような記述があった場合は、コメントアウトさせるか、削除して下さい。

  SetIcon(m_hIcon, TRUE);    // 大きいアイコンを設定
  SetIcon(m_hIcon, FALSE);    // 小さいアイコンを設定

【補足】
1)作成したアプリ実行時に、タイトルバー上で右クリックするとシステムメニューが表示されると
  思います。
2)参考までに、上記の設定を行ったサンプルアプリでの、ダイアログプロパティの設定画面例と、
  アプリ実行画面のキャプチャ画像を添付してみました。

==============================

なお、上記の設定例は下記サイトを参考にさせて頂きました。

■参考サイト
ダイアログの左端のアイコンを非表示にするには?
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200102/01020001.txt

ダイアログのシステムメニューで、アイコンはつけないで×「閉じる」ボタンだけつけるには?
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200606/06060098.txt

CreateWindowで作成したウィンドウに、アイコンはつけないで×「閉じる」ボタンだけつけるには?
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200609/06090045.txt

以上です。参考になれば幸いです。

こんにちは。

以下は、MFC使用&ダイアログベースでのWinアプリ作成時(デフォルト構成から
あまり変更を加えていない場合)の話としてのコメントです。
※見当外れだった場合はすみません。

まず、ダイアログクラスの OnInitDialog() 内に、
  SetIcon(m_hIcon, TRUE);    // 大きいアイコンを設定
  SetIcon(m_hIcon, FALSE);    // 小さいアイコンを設定
のような記述がなく、かつ「アプリ実行時のタイトルバーにアイコンが表示されている」
ということは、システムのデフォルトのアイ...続きを読む

QPING JPEGファイルのExif規格のコメント部を読み込み・書き込みするプログラムソース

以前、表記処理のできるフリーソフトをフリーソフトを教えていただいた者です。
http://oshiete1.goo.ne.jp/qa3911520.html
プログラムの中で計算した結果を、画像ファイルのコメント部に書き込むプログラムをC言語で作成しようと思っています。そこで、
int WriteComment(FILE *fd、char *コメント文字列)
int ReadComment(FILE *fd、char *コメント文字列)
のような関数を内部で使いたいのですが、このような関数ありませんか?あるいは、自作するための参考になるようなお手本となるソースリストありませんか?

Aベストアンサー

 こんにちは。

 「libpng」
 http://www.libpng.org/

 「libexif」
 http://libexif.sourceforge.net/

 一応参考程度に。

 以下PNGからコメントを表示する
static void dump(png_textp p)
{
const char* pszCompress = p->compression == PNG_TEXT_COMPRESSION_zTXt ? "あり" : "なし";
::printf("[キーワード: %s][コメント: %s][圧縮: %s]\n", p->key, p->text, pszCompress);
}

int ReadPNG(FILE* pf)
{
png_structp png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
if(png_ptr == NULL)
{
return 0;
}

png_infop info_ptr = png_create_info_struct(png_ptr);
if(info_ptr == NULL)
{
png_destroy_read_struct(&png_ptr, NULL, NULL);
return 0;
}

if(setjmp(png_jmpbuf(png_ptr)))
{
png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
return 0;
}

png_init_io(png_ptr, pf);
png_set_sig_bytes(png_ptr, 0);
png_read_png(png_ptr, info_ptr, 0, NULL);

//ココでテキスト部を参照する
for(int i = 0; i < info_ptr->num_text; ++i)
dump(&info_ptr->text[i]);

png_read_end(png_ptr, info_ptr);
png_destroy_read_struct(&png_ptr, &info_ptr, NULL);

return 1;
}

int main()
{
FILE* pf = fopen("PNGファイル名", "rb");
ReadPNG(pf);
fclose(pf);
return 0;
}

 以下JPEGからEXIFを表示する
int main()
{
    ExifData* p = exif_data_new_from_file("JPEGファイル名");
    exif_data_dump(p);
    exif_data_free(p);
    return 0;
}

 こんにちは。

 「libpng」
 http://www.libpng.org/

 「libexif」
 http://libexif.sourceforge.net/

 一応参考程度に。

 以下PNGからコメントを表示する
static void dump(png_textp p)
{
const char* pszCompress = p->compression == PNG_TEXT_COMPRESSION_zTXt ? "あり" : "なし";
::printf("[キーワード: %s][コメント: %s][圧縮: %s]\n", p->key, p->text, pszCompress);
}

int ReadPNG(FILE* pf)
{
png_structp png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, ...続きを読む

Qアプリケーション間のドラッグアンドドロップ

お世話になります。VC++2005を使用しています。

ウィンドウを生成し、その中に複数の画像をそれぞれ子ウィンドウで表示し、
その子ウィンドウを他の実行ファイルのウィンドウにドラッグアンドドロップして
ファイル名を渡したいと考えています。

また、子ウィンドウをWindowsのエクスプローラのような感覚で
複数選択したりできたらと思っています。

このようなことは可能でしょうか?
また可能でしたらキーワードだけでも教えていただけないでしょうか。

Aベストアンサー

★検索キーワード『OLE ドラッグ ドロップ』です。
・ドラッグ&ドロップには大きく分けて2タイプあります。
 (1)エクスプローラからウインドウへのドラッグ&ドロップ
 (2)アプリケーション間でのドラッグ&ドロップ
 ※(1)は比較的に簡単で WM_DROPFILES メッセージを処理すれば良いです。
 ※(2)は OLE(Object Linking and Embedding) でドラッグ&ドロップを行います。
 この OLE は COMコンポーネント(Component Object Model) のインターフェイスです。
 下のサイトを参考にして下さい。
 (1)http://hp.vector.co.jp/authors/VA016117/oledragdrop1.html→『OLE DragDrop (IDropTargetの実装)』
 (2)http://hp.vector.co.jp/authors/VA016117/oledragdrop2.html→『OLE DragDrop (IDropSourceの実装)』
 (3)http://hp.vector.co.jp/authors/VA016117/oledragdrop3.html→『OLE DragDrop (IDataObjectの実装)』
 (4)http://hp.vector.co.jp/authors/VA016117/oledragdrop4.html→『OLE DragDrop (IEnumFORMATETCの実装)』
 (5)http://hp.vector.co.jp/authors/VA016117/oledragdrop5.html→『OLE DragDrop (サンプル)』
・紹介した上記以外にもネット検索すればたくさんサンプルが見つかります。
 検索キーワードは『OLE ドラッグ ドロップ』です。
 『OLE』をつけた方が上手く検索できます。
 このキーワードで探せばいろいろと見つかるはずです。
・以上。参考に。

用語:
・http://e-words.jp/w/OLE.html→『OLE』
・http://e-words.jp/w/COM.html→『COM』

★検索キーワード『OLE ドラッグ ドロップ』です。
・ドラッグ&ドロップには大きく分けて2タイプあります。
 (1)エクスプローラからウインドウへのドラッグ&ドロップ
 (2)アプリケーション間でのドラッグ&ドロップ
 ※(1)は比較的に簡単で WM_DROPFILES メッセージを処理すれば良いです。
 ※(2)は OLE(Object Linking and Embedding) でドラッグ&ドロップを行います。
 この OLE は COMコンポーネント(Component Object Model) のインターフェイスです。
 下のサイトを参考にして下さい。
 (1)h...続きを読む

Q[C#]ドラッグアンドドロップ

いつもお世話になっています。
「C#によるプログラミングWindows上」の第14章のP.764に書いてあるサンプルプログラムのImageDropにおいてうまく動かないのでわかる方お願いします。
サンプルプログラム自体はいくつも継承しているので全ては載せれないので最後の方に一部を載せておきます。
やっていることは、同じプログラムの2つのインスタンスを起動させクライアント領域に表示している画像をもう一つのインスタンスへドラッグアンドドロップさせて動作確認をしていましたら、以下のようなエラーがでました。
エラーが起きているのはDrawImage(...)メソッドの内部です。コールスタックを見ると内部でRealProxy()というメソッドを呼んでいるみたいですが、エラーもそれに関係しているようです。
わかる方お願いします。足りない情報等ありましたら、指摘していただければ載せますので。

<<環境>>
Vista
VisualStudio2005 SP1

<<エラーメッセージ(抜粋)>>
System.Runtime.Remoting.RemotingException はハンドルされませんでした。
Message="このリモート処理プロキシには、チャネル シンクがありません。待機中のサーバー チャネルが登録されていないか、またはこのアプリケーションに、サーバーと通信する適切なクライアント チャネルがありません。"
Source="mscorlib"
StackTrace:
場所 System.Runtime.Remoting.Proxies.RemotingProxy.InternalInvoke(IMethodCallMessage reqMcmMsg, Boolean useDispatchMessage, Int32 callType)
場所 System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(IMessage reqMsg)
場所 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
場所 System.Object.FieldGetter(String typeName, String fieldName, Object& val)
場所 System.Drawing.Graphics.DrawImage(Image image, Int32 x, Int32 y)


<<ソース抜粋>>
namespace Chapter14
{
class ImageDrop : ImageClip
{



protected override void OnDragDrop(DragEventArgs drgevent)
{
base.OnDragDrop(drgevent);

if (drgevent.Data.GetDataPresent(DataFormats.FileDrop))
{
string[] astr = (string[])drgevent.Data.GetData(DataFormats.FileDrop);

try
{
image = Image.FromFile(astr[0]);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, this.Text);
return;
}
strFileName = astr[0];
this.Text = strProgName + " - " + Path.GetFileName(strFileName);
this.Invalidate();
}
else
{
if (drgevent.Data.GetDataPresent(typeof(Metafile)))
{
image = (Image)drgevent.Data.GetData(typeof(Metafile));
}
else if (drgevent.Data.GetDataPresent(typeof(Bitmap)))
{
image = (Image)drgevent.Data.GetData(typeof(Bitmap));
}

bIsTarget = true;
strFileName = "DragAndDrop";
this.Text = strProgName + " - " + strFileName;
this.Invalidate();
}
}
protected override void OnMouseDown(MouseEventArgs e)
{
base.OnMouseDown(e);

if (image != null)
{
bIsTarget = false;

DragDropEffects dde = DoDragDrop(image, DragDropEffects.Copy | DragDropEffects.Move);
if (dde == DragDropEffects.Move && !bIsTarget)
{
image = null;
}
}
}

}

((別クラス内で[ImageDropの継承元]))
namespace Chapter09
{
public partial class ImageOpen : Form
{



protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);

Graphics gr = e.Graphics;

if (image != null)
{
gr.DrawImage(image, 0, 0);
}
}
}

いつもお世話になっています。
「C#によるプログラミングWindows上」の第14章のP.764に書いてあるサンプルプログラムのImageDropにおいてうまく動かないのでわかる方お願いします。
サンプルプログラム自体はいくつも継承しているので全ては載せれないので最後の方に一部を載せておきます。
やっていることは、同じプログラムの2つのインスタンスを起動させクライアント領域に表示している画像をもう一つのインスタンスへドラッグアンドドロップさせて動作確認をしていましたら、以下のようなエラーがでまし...続きを読む

Aベストアンサー

cs2003/2005双方ともにこの現象は起きるようですね

別な方法として DataObjectを使ってファイル名とイメージを送る方法ならうまくいくようですよ
ファイルをドロップされた際に BMPやJPGなどで保存して置きます
その保存されたイメージをつかってDoDragDropを行います

// TempImage.jpgで保存されている仮定
string[] ss = { "TempImage.jpg" };
FileInfo oFInfo = new FileInfo( ss[0] );
ss[0] = oFInfo.FullName;

DataObject dObject = new DataObject( DataFormats.FileDrop, ss );
dObject.SetData( DataFormats.Bitmap, (Bitmap)Image.FromFile( ss[0] );
DragDropEffects dde = DoDragDrop( dObject, DragDropEffects.All );
といった具合です …

cs2003/2005双方ともにこの現象は起きるようですね

別な方法として DataObjectを使ってファイル名とイメージを送る方法ならうまくいくようですよ
ファイルをドロップされた際に BMPやJPGなどで保存して置きます
その保存されたイメージをつかってDoDragDropを行います

// TempImage.jpgで保存されている仮定
string[] ss = { "TempImage.jpg" };
FileInfo oFInfo = new FileInfo( ss[0] );
ss[0] = oFInfo.FullName;

DataObject dObject = new DataObject( DataFormats.FileDrop, ss );
dObject.Se...続きを読む

Qファイルのドラッグアンドドロップ

Visual C++6.0で
ListBOX上にファイルをドラッグアンドドロップ
させて、そのファイルのパスの一覧を取得したいのですが
どのようにすればいいのでしょうか?

Aベストアンサー

下の回答はウソです。
『DragAcceptFiles(GetDlgItem(IDC_LISTXX));』
  ↓
『GetDlgItem(IDC_LISTXX)->DragAcceptFiles();』

です。思い切りウソでした。リストボックスに対しての
初期化処理でした。しかもよく見ると解決策自体がウソ
でした。もう一度笑ってさらに水に流してやって下さい。
失礼しました。

初期化処理を省いても上手くいく、、、そういうことも
あったりしますが、MS社さんが規定しているので
やはり初期化処理は入れといた方が良いかと思います。


このカテゴリの人気Q&Aランキング

おすすめ情報