VC++.netで最小化した時に・・・(他質問あり)

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
真由美

VC++.netで最小化した時に・・・(他質問あり)

#1

投稿記事 by 真由美 » 15年前

今までC++でプログラムを書いてきました。
次のステップに進む為にVC++.netでアプリを作っております。 VS2005

そこで問題が出てきました。WindowsAPI等で書いていた時は
ウインドウズのスタイルを変えたりして出来たのですが.netではどのようにかけばよいのかがわかりません。

VC++.netで最小化した時にタスクバー?にいくのではなく
右下の時計とか表示してある画面に移動させたいです。

・ウインドウズのサイズ変更が出来ないようにする。
・フォーム名?が表示されているウインドウズバーを消す。

この3点が調べたのですがわかりませんでした。
その為質問させて頂きます。

VCについては大体は理解しておりますので
これらのプロパティ名を教えて頂けますと助かります。
例)lavel->text みたいな感じで

お手数おかけいたしますが宜しくお願い致します。

たかぎ

Re:VC++.netで最小化した時に・・・(他質問あり)

#2

投稿記事 by たかぎ » 15年前

他にもいろいろ疑問が出てきそうですので...

http://dobon.net/vb/dotnet/index.html
↑でも参考にしてください。
C#とVBのサンプルしかありませんが、C++/CLIでも似たようなもんです。

真由美

Re:VC++.netで最小化した時に・・・(他質問あり)

#3

投稿記事 by 真由美 » 15年前

たかぎ様
ご回答ありがとうございます。
さらにわかりやすいサイトまでありがとうございました。

サイズの変更についてはわかったのですが
タイトルバーを持たないフォームの時、
マウスでの移動?が上手くいきません。

エラーは出ずに
if (e->Button == System::Windows::Forms::MouseButtons::Left)については実行出来てるみたいです。
ラベルの値を変えるようなプログラムを書いて実行したら反応が御座いました。
private: System::Void Form1_MouseDown(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
                 if (e->Button == System::Windows::Forms::MouseButtons::Left){
                     mousePoint = Point(e->X, e->Y);
                  }
             }
    private: System::Void Form1_MouseMove(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
                 if (e->Button == System::Windows::Forms::MouseButtons::Left){
                     Form1::Left += e->X - mousePoint.X;
                     Form1::Top +=    e->Y - mousePoint.Y;
                 }
             }
お手数おかけいたしますがご回答頂けないでしょうか?

真由美

Re:VC++.netで最小化した時に・・・(他質問あり)

#4

投稿記事 by 真由美 » 15年前

すみません。
抜けておりました。
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
Form1::MouseDown += MouseEventHandler(Form1_MouseDown());
Form1::MouseMove += MouseEventHandler(Form1_MouseMove());

}

これを書くと引数がないとエラーが出ます。
ただ引数に何を入れればよいのかがわかりません・・・。

pooka

Re:VC++.netで最小化した時に・・・(他質問あり)

#5

投稿記事 by pooka » 15年前

>Form1::MouseDown += MouseEventHandler(Form1_MouseDown());
>Form1::MouseMove += MouseEventHandler(Form1_MouseMove());

ここは
this->MouseDown += gcnew System::Windows::Forms::MouseEventHandler(this, &Form1::Form1_MouseDown);
this->MouseMove += gcnew System::Windows::Forms::MouseEventHandler(this, &Form1::Form1_MouseMove);
ではないかと。

あとイベントハンドラの追加は
http://dobon.net/vb/dotnet/beginner/eventhandle.html
こちらのページのC#のところが参考になるかもしれません。

真由美

Re:VC++.netで最小化した時に・・・(他質問あり)

#6

投稿記事 by 真由美 » 15年前

ご回答ありがとうございます。
エラーが出ずに出来ました。
ただ問題が御座いまして枠ぎりぎりの所を選択していないと動かないのと
かなりピクピク動きます。
クリックした位置から離れるともはやどこに止まるかわかりません。

ソースが間違えているのでしょうか?

ウインドウのどこをドラック&ドロップしても
スムーズに移動するような仕様にしたいです。

真由美

Re:VC++.netで最小化した時に・・・(他質問あり)

#7

投稿記事 by 真由美 » 15年前

すみません・・・。色々と挑戦してみたのですがやはり
ピクピクするのがとれません・・・・。
どうか教えては頂けないでしょうか?

Justy

Re:VC++.netで最小化した時に・・・(他質問あり)

#8

投稿記事 by Justy » 15年前

 同一のイベントハンドラに対して同一のメソッドを多重登録しているのが原因だったりしませんか?

真由美

Re:VC++.netで最小化した時に・・・(他質問あり)

#9

投稿記事 by 真由美 » 15年前

Justy様
ご回答ありがとうございます。
どうやらそうだったみたいです><

よく見てみるとラベルの上でドラック&ドロップしても反応しないみたいです。
フォームの何もないところでしたらスムーズに移動しました。

ラベルの上では反応しないのでしょうか。

Justy

Re:VC++.netで最小化した時に・・・(他質問あり)

#10

投稿記事 by Justy » 15年前

 そのラベルにもフォームと同じマウス関連のイベントを登録してあげれば動くと思いますよ。

真由美

Re:VC++.netで最小化した時に・・・(他質問あり)

#11

投稿記事 by 真由美 » 15年前

出来ました><
登録してあげないとだめなんですね。

本当にありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る