• ベストアンサー

フォームを画面の下側ぴったりに表示したい。

ディスプレイの表示(1024*768)で作成しているのですが、 フォームを画面の下側にぴったりと表示したいと思っています。 仮に、フォームの高さを100と設定して、 Screen.Heghtにて画面の高さを取得して、 Form1.Top = Screen.Heght-100 と設定して表示しましたが、ぴったりといかず、フォームの下の部分が タスクバーに隠れていました。 タスクバーの高さを更に計算すればぴったりといくとおもうのですが、 タスクバーの高さを取得することは可能でしょうか? ダメだったら手作業(ベタな値)で計算するしかないのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

SysInfoコントロールを追加して SysInfo1.WorkAreaHeight でタスクバーを除いた画面のサイズが取得できます。 つまり Form1.Top=SysInfo1.WorkAreaHeight - Form1.Height で目的が達成できると思います。

katu_zero
質問者

お礼

ご回答ありがとうございます。 試した結果、思い描いていたとおりにできました。 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ExcelVBAでWeb画面表示の仕方は?

    ExcelVBAでフォームを作り、そのフォーム内でWeb画面を表示させて、値を取得したいのですが、フォーム内にWeb画面を表示させる方法が分かりません。何か参照設定をしなければならないのでしょうか? ※フォーム内にWeb画面を表示させるのは、人間の眼で値を取得すべきページを判断しなければならないからです

  • フォームのアクティブと非アクティブ表示について

    Form1からForm2を表示するという処理を以下のようにコーディングしてみました。 **Form1.frm*** Private Sub Command1_Click() Form1.Hide Form1.vbModal Form1.Show End Sub **Form2.frm*** Private Sub Command1_Click() Unlaod Me End Sub 画面にエクスプローラ等のウィンドウが表示されているときに、Form2を表示させようとすると非アクティブ状態で表示されてしまいます。 また、Form2をUnloadするとForm1が表示されるのですが、その際に、Form1のタイトルと、タスクバーに表示されているボタンが反転した後非アクティブ状態になってしまいます。 フォームは常にアクティブで表示させたいのですが、どうすればよいのでしょうか?

  • 全画面表示をするとフォーム名も表示される

    アクセスのアプリケーションタイトルを指定してるのですが、 フォームを開いたら、その指定したタイトルが表示されますが フォームを全画面表示すると、なぜか タスクバーに 「サンプル - [フォーム1]」 のようにフォーム名まで表示されてしまいます。 フォームの表題はブランクでも表示されるようです。 表題に空白を入れたら 「サンプル - [ ]」 になりました。 全画面表示をしてもフォーム名は表示しない方法があれば教えてください。

  • フォームの設定について

    ソフト表示画面のサイズを300*480に収めたいのですがどのように設定すればいいのか教えてください。また、2つのForm、Form1とForm2 を同時に起動してForm1を上側にForm2を下側にと表示させたいのですが、どのようにすればよろしいか教えてください。ちなみに表示するときは、Form1を起動状態にして、あるボタンを押したらForm2を起動という形にしたいのですが、どのようにすればよろしいですか?

  • 完全に透明なフォーム

    toshi_ynと申します。 良く話題にあがる透明フォームを作っております。 透明フォーム自体は実現できているのですが、完全な透明フォームが できず困っております。 フォームがActiveになったイベントを拾うため、WM_ACTIVATEイベントを 設定し、それなりに透明フォームができています。(描画スピードは遅い・・) しかしながら、複数のウィンドウがあり、特に下側のあるウィンドウの変化に 対応できておりません。 具体的に言うと、他のアプリのウィンドウが2枚あり、本アプリの透明フォームが 一番上にあるとします。 そこで、タスクバーから下側にある他のアプリのウィンドウが閉じられても、 その変化に追従できず透明になっていない。(閉じられたウィンドウのイメージ が透明フォームに残ってしまっている) 透明フォームを実現するためフォームのCanvasを書き換えるのに時間がかかる のがネックのような気がしていますが・・・。 どなたか、アドバイスをいただければ幸いです。 よろしくお願いします。 //---現在のコード-------- Unit.h private: // ユーザー宣言 void __fastcall TForm1::On_WM_Activate(TWMActivate &msg); BEGIN_MESSAGE_MAP MESSAGE_HANDLER(WM_ACTIVATE, TWMActivate, On_WM_Activate); END_MESSAGE_MAP(TForm) Unit.cpp void __fastcall TForm1::On_WM_Activate(TWMActivate &msg) { HBITMAP DesktopBitmap; HDC MemDC, DeskDC; DeskDC = GetDC(0); MemDC = CreateCompatibleDC(DeskDC); DesktopBitmap = CreateCompatibleBitmap(DeskDC, Screen->Width, Screen->Height); SelectObject(MemDC, DesktopBitmap); BitBlt(MemDC, 0, 0, Screen->Width, Screen->Height, DeskDC, 0, 0, SRCCOPY); DeleteDC(MemDC); ReleaseDC(0, DeskDC); }

  • 任意のフォームが表示されているかを知りたい

    VB6で、 任意のフォームが表示されているか表示されていないかを知りたいのですが、その方法がわかりません。 具体的に言うと、 いくつかのフォームのあるアプリケーションを作っているのですが、Form2のである処理をしたときに、Form1が画面上に表示されている場合と、表示されていない場合で、異なる処理をしたいのですが、ためしにVisibleやEnableを参照しようとすると、(Form1を表示していない場合)その時点でForm1がロードされ、表示されてしまいます。 そこで、任意のフォームが現在表示されているかどうかを知るプロパティや関数はありますでしょうか? ご存知の方、ご教授お願いいたします。

  • chromeでフォームの値が取得できない

    PHPでフォームに入力された値を取得して画面に表示させる処理において、 Javascriptでフォームの値を変更した場合、chromeだと変更後の値が 取得できません。 例えば、 <form name="form" method="post" action="index.php"> <input type="checkbox" name="chk1" value="111"> <input type="hidden" name="data1" value="AAA"> <input type="submit" value="送信"> </form> というようなフォームがあったとして、Javascriptで値を <form name="form" method="post" action="index.php"> <input type="checkbox" name="chk1" value="222"> <input type="hidden" name="data1" value="BBB"> <input type="submit" value="送信"> </form> と、変更しても送信ボタンを押して取得できる値は、上の方の値になります。 IEやFireFoxでは問題なく変更後の値が取得できるのですが、chromeだと 取得できません。 なにか解決方法があるのか、それともchromeの仕様なのかご教示いただければと 思います。 どうかよろしくお願いいたします。

  • フォームを画面のど真ん中に表示させたいのですが

    フォームを画面のど真ん中に表示させたいのですが、 http://dobon.net/vb/dotnet/form/startposition.html を見たのですがコードの書き方がよくわかりません。 Public Class Form1 Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Dim f As New Form1() 'フォームを画面の真ん中に表示する f.StartPosition = FormStartPosition.CenterScreenf.Show() End Sub End Class こうすると、「FormStartPosition.CenterScreenf」の部分に波線がひかれます。 Public Class Form1 Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Me.StartPosition = FormStartPosition.Manual Me.Location = New Point(0, 0) End Sub End Class これで左は時に表示する事は出来るのですが、真ん中に表示させるにはどうすればいいでしょうか?

  • ★他アプリの画面一部をコピー表示したい

    お世話になります。 さて図のように「アプリX」があって、 その画面の一部を自作ソフト「Me」画面に表示したいのです。 (WindowsでVBで作成中) いろいろ調べると、 http://dobon.net/vb/dotnet/graphics/invokepaint.html に以下のようなプログラムがありました。 'コントロールの外観を描画するBitmapの作成 Dim bmp As New Bitmap(Me.Width, Me.Height) 'キャプチャする Me.DrawToBitmap(bmp, New Rectangle(0, 0, Me.Width, Me.Height)) 'ファイルに保存する bmp.Save("C:\test\1.png") '後始末 bmp.Dispose() しかしこれはMe自身の画面であって、意味がありません。 それにファイルで保存ではなくMeに表示したいのです。 (これは多分できると思います) 最大の問題は、「アプリX」の“フォーム名”です。 http://dobon.net/vb/dotnet/form/showintaskbar.html には、「タスクバーにフォームを表示しないようにする」として、 (これもやりたいことの一つですが) 'Form1のインスタンスを作成 Dim f As New Form1() 'タスクバーに表示しない f.ShowInTaskbar = False 'フォームを表示する f.Show() とありますが、「Form1」をどうやって取得するのか書いていません。 つまり「アプリX」のフォーム名が分からないのです。 それをどうやって知ることができるでしょうか? それとも考え方が根本的におかしい? よろしくお願い申し上げます m(__)m

  • 画面

    OutLookExpressの画面(縮小)が、下側タスクバーの手前に表示されるようになりました。 (画面を引き下ろすと、タスクバーが隠れる) IE7の画面は今までどおり、タスクバーの向こう側です。 (画面を引き下ろしてもタスクバーは隠れない) どこをどうすると、こうなるのですか?

VM-C7200の電源が入らない原因は?
このQ&Aのポイント
  • VM-C7200の電源を入れても液晶が一瞬チラつくだけで反応がない現象について、原因を知りたいです。
  • 電子楽器メーカーローランド製品、ボス製品のVM-C7200の電源が入らない問題について質問です。
  • VM-C7200を起動した際に液晶がチラついているが、その後反応がない状況について教えてください。
回答を見る