|
|
||||
Tips > |
|||||
SystemParametersInfo でデスクトップ領域を取得 |
更新 : 2009/10/29 |
||||
|
|
||
解説: 以下は、タスクバーの領域を省いたデスクトップの領域を取得する方法です。 表示されている Window の幅や高さなどのサイズを知りたい時はちょくちょくあります。 ここでは、SystemParametersInfo 関数を使って、デスクトップの領域を取得してみます。 SystemParametersInfo は、引数で非常に多くのパラメータ定数値があり、この関数を使うとコントロールパネルを使用して、デスクトップから指定できる Windows の設定が可能になります。 使用例: SystemParametersInfo 関数を使って、タスクバーの領域を省いたデスクトップの領域を取得しています。 コンポーネントは、 Memo と Button を適当に配置するだけです。 Button1 をクリックすると、SystemParametersInfo 関数の引数に SPI_GETWORKAREA を渡し、 デスクトップ領域を得ています。領域は TRect に格納されます。 他の情報も取得したり、設定できますのでいろいろ試してみてください。 //------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { /* SystemParametersInfo 関数は、 システム ワイド パラメータの問い合わせ または設定を行います。 */ TRect rect; ::SystemParametersInfo(SPI_GETWORKAREA, 0, &rect, 0); Memo1->Lines->Add("デスクトップ領域"); Memo1->Lines->Add("Top : " + IntToStr(rect.Top)); Memo1->Lines->Add("Left : " + IntToStr(rect.Left)); Memo1->Lines->Add("Width : " + IntToStr(rect.Right)); Memo1->Lines->Add("Height : " + IntToStr(rect.Bottom)); } //------------------------------------------------------------------- |