Vinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo Slider
  • 受託開発のご用命はコチラまで
  • 探し物が見つからない場合のご用命はポジティブワンまで
  • 見積もり依頼、製品問い合せはこちらまで
  • ポジティブワンNFCラボ
  • 技術サポート窓口
  • 特集&ソリューション
  • ダウンロード
  • 旧サイトはこちら
人気製品
  • ボードコンピュータ
  • 組み込み開発ツール
  • OS・ミドルウェア
  • スマートカード
POC-SOM-Arria10-1E アルテラ製Arria10搭載小型システムオンモジュール(72mm x24mmです。PCIe Gen3x8, USB3. Host, Dual...
hit-2
MPX 2041 フリースケール製i.MX6搭載超小型システムオンモジュールです。 i.MX6であるデュアルlite、クアッド(800MHz)を搭載した超小型(20mm x 50...
hit-1
TI製OMAP4460搭載超小型システムオンモジュールです。OMAP4460(ARM Cortex-A9デュアル1.5MHz)を搭載した超小型(20mm x 50...
hit-3
POC-Tiny-i.MX6 Freescale製i.MX6搭載超小型システムオンモジュールです。 38mm x...
hit-4
MPX 2041 フリースケール製 Quad Core QorIQ™...
hit-5
Qualcomm® Snapdragon™ 805コア (APQ8084)搭載超小型(50mm x28.5mm)モジュールです。4K2Kに対応しています。標準モジュールは、RAM 2GB,eMMC...
hit-6
Sentis ToF-M100 PMD社19k-S3搭載、LEDとIOボード搭載の3Dセンサ・テクノロジ、ToF(Time of Flight)...
hit-7
Cosmic C言語 Cosmic独自で開発されたセイフティクリティカル分野で使われる汎用C言語です。 オリジナルのIDEやユーティリティも準備していますが、多くのIDEのオプションC言語として、採...
hit-7
Rlink...
hit-6
Code パフォーマンス最適化されたGNUコンパイラ(GCC)と商用Eclipse IDEです。 パフォーマンス最適化されたGNUコンパイラ(GCC)、GNU...
hit-5
Segger製J-linkPRO SEGGER製J-LinkはIARやKeilをはじめとする多くのARMの多くの統合開発環境及びGBDベースの無償ツールで使えるインサーキットエミュレータです。インサーキッ...
hit-4
Segger製FlasherARM ARMコア用インサーキット·フラッシュプログラミング、デバッグ、およびテストするために設計された非常に柔軟なツールです。主に、製造ラインで利用できるように設計されたモデ...
hit-3
CycloneMAX インサーキット·フラッシュプログラミング、デバッグ、およびテストするために設計された非常に柔軟なツールです。 フリースケール製ColdFire...
hit-1
CyclonePRO インサーキット·フラッシュプログラミング、デバッグ、およびテストするために設計された非常に柔軟なツールです。 フリースケール製HC08、HCS08、HC(S)12(X)、Col...
hit-2
SCIOPTAリアルタイムOS メッセージパッシング方式リアルタイムOSです。メモリー保護、スーパーバイザ機能をサポートしたセイフティクリティカル向けRTOSです。 メッセージパッシング方式ですと、...
hit-sciopta
embOS マイコンのマルチインタフェース、グラフィックなどの機能強化されているなか、多くのドライバやサンプリをサポートしたRTOSです。 GCCやIARなどのマルチ言語にも対応したバイナリーカーネ...
hit-embos
NFCフォーラム冶具 NFCフォーラム・ポーラ&リステナ NFCフォーラム準拠テスト冶具です。NFCフォーラムテスト定められているポーラ&リスナのアンテナです。そのNFCフォーラム準拠したアンテナテ...
nfcforum-poller-listner-anntena
POC-NomadLAB NFCモバイルのSPY検証ツール 非接触型スマートカード(ISO14443 TypeA,およびTypeB, NFC...
poc-nomadlab-nfc-spy
EMV...
hit-emv-visa-mastercard-pvt
プレスリリース・セミナー・展覧会情報

ポジティブワン、グローバルポータルサイト(https://www.positive-one.com/)をオープン

ポジティブワン株式会社は、本日2018年11月1日に、グローバルポータルサイト(https://www.positive-one...

Readmore

Tracealyzer for Amazon FreeRTOSの販売開始

ポジティブワン株式会社(本社:東京都渋谷区)は、Percepio AB(パーセピオ)社Tracealyzer for FreeRT...

Readmore

AIプロセッサRK3399Pro搭載した回路設計から製造、ソフトウエアの一括受託開発開始

2019年1月7日、ポジティブワンは、Rockchip社RK3399Pro搭載した産業用ボードコンピュータおよびソフトウエアの受...

Readmore

注目製品

Time-of-flight-TOP

ToF(Time of Flight)センサ

&ToFソフトウエア受託開発


pickup-automotive

オートモーティブ市場向け
 開発ソリューション


segger-embedded-studio-vs Atollic TureStudio

ARMマイコンIDE,GCC,J-link, 
 Flashプログラマ・ツール

紹介動画

Cannot Connect to Youtube Server


Cannot Connect to Youtube Server

Cannot Connect to Youtube Server

 

emWin ウィンドウオブジェクト

  
 

ウィンドウオブジェクト(ウィジット)

ウィジェットはオブジェクト型のプロパティを持つウィンドウであり、Windows環境でははコントロールと呼ばれ、ユーザーインターフェースの要素を構成します。特定のイベントに自動的に反応することができ、例えばボタンが押された場合外観を変化させます。ウィジットはいつでも変更可能なプロパティをもちます。また不要になったウィジットはすみやかに削除されます。ウィンドウと同様にウィジットはそれぞれ固有のハンドルを与えられています。

ウィジットにはウィンドウマネージャーが必要になります。ウィジットが作成されるとウィンドウ同様に振る舞い、ウィンドウマネージャによって位置や再描画の管理が適切に行われます。ウィジットはアプリケーションやユーザーインターフェースに必ずしも必要ありませんが、開発時間を減らすことができます。

ウィジットの基本

利用可能なウィジェット

ウィジェットのうちスキニングをサポートするものはスキニングされた状態も示してあります。

スキニングについての詳細はこちら

名前

スクリーンショット

(クラッシック)

スクリーンショット

(スキン適用)

説明
BUTTON プッシュ可能なボタンです。テキストやビットマップをボタン上に表示することができます。
CHECKBOX チェックボックスです。チェック状態と非チェック状態が有ります
DROPDOWN ドロップダウンリストボックスです。プッシュするとリストが開きます。
EDIT   一行の入力ボックスです。
FRAMEWIN フレームウィンドウ。GUIの外観を決めます。
GRAPH   グラフウィジット。曲線や数値を表示します。
HEADER ヘッダコントロール。列管理をします。
ICONVIEW   アイコン調ウィジット。携帯デバイスなどでアイコンを利用する場合に便利です。
IMAGE     イメージウィジット。自動で様々なフォーマットの画像を表示します。
LISTBOX   リストボックス。選択されると青くハイライトが付きます。
LISTVIEW   リスト表示ウィジット。表や計算用紙を作るのに利用します。
LISTWHEEL   リストホイールウィジット。データは回転して表示される用にエフェクトがかかります。
MENU   メニューウィジット。水平または垂直メニューバーを作成します。
MULTIEDIT   複数行の入力ボックス
MULTIPAGE   複数ページウィジット
PROGBAR プログレスバー
RADIO 一つしか選択できないラジオボタン
SCROLLBAR 水平または垂直スクロールバー
SLIDER 変数を変えるためのスライダー
SPINBOX     スピニングボックス、飛び飛びの値を選択できます。
TEXT   テキスト表示
TREEVIEW   ツリー表示

 

再描画のメカニズム

ウィジェットは、そのプロパティに応じて自分自身を再描画します。WM_Exec()、GUI_Exec()またはGUI_Delay()を呼び出して再描画が行われます。マルチタスク環境では、バックグラウンドタスクは、通常WM_Exec()を呼び出すとウィジェット(およびコールバック機能を持つ他のすべてのウィンドウ)を更新するために使用されます。
ウィジェットのプロパティが変更されると、ウィジェットのウィンドウ(またはその一部)が無効状態になり、すぐに再描画は開始されず、後でWMで行われます。

 

ウィジェットの使用方法

プログレスバーを表示してみます。次のコードだけで表示することができます。

PROGBAR_Handle hProgBar;
GUI_DispStringAt("Progress bar", 100, 20);
hProgBar = PROGBAR_Create(100, 40, 100, 20, WM_CF_SHOW);

widgets progbargray0percent

最初の行は、ウィジェットのハンドル用のメモリーを予約。最後の行は実際にウィジェットを作成します。この後WM_Exec()が呼ばれると自動的に描画が行われます。
メンバ関数でウィジットのプロパティを変更することで随時ウィジットの外観に変更できます。今回プログレスバーを45%表示にし、色をデフォルト(暗い灰色/明るい灰色)から緑/赤に変更してみます。

PROGBAR_SetBarColor(hProgBar, 0,   GUI_GREEN);
PROGBAR_SetBarColor(hProgBar, 1,   GUI_RED);
PROGBAR_SetValue   (hProgBar, 45);

widgets progbargreenred45


動的メモリ使用

断片化が発生するため組込み用途では動的メモリ使用は望ましくありません。しかしemWinでは異なるハンドルを利用することで断片化なしに動的メモリ使用を可能にしました。実際にメモリを参照するポインタとハンドルを別に管理することでウィジットが実際に使用するメモリ領域を適宜最適化していくことで断片化を防いでいます。

 

ウィジットの詳細

BUTTON

タッチスクリーンでの主なユーザーインターフェースとして使用されます。次の画像のように、ボタンにテキストを表示したり背景を追加できます。

widgets button


CHECK BOX

様々な選択肢を選択するために使用されます。チェックボックスにはオンまたはオフ状態があります。また、操作無効になっている場合ボックスは次の表のようにグレー表示されます。

 選択非選択
操作有効
操作無効

DROPDOWN

複数の要素を持つリストから一つの要素を選択するために使用されます。それは、閉じている状態では現在選択されている項目を示し、ユーザーがウィジェットを開いた場合はリストが展開されます。

閉じている状態開いている状態

EDIT

テキスト入力の主要なユーザーインターフェイスとして使用されます。

空の状態入力済みの状態


バイナリ、10進数、16進モードで値を入力するためのEDITフィールドを使用することができます。入力無効状態ではチェックボックスのように編集フィールドがグレー表示されます。

入力有効状態入力無効状態

FRAMEWIN

フレームウィンドウは、アプリケーション、PCアプリケーションの外観を決めます。フレーム、タイトルバーとユーザ領域で構成されています。、下図のように、ウィンドウのアクティブまたは非アクティブ状態はタイトルバーの色で示します。

アクティブ非アクティブ

GRAPH

グラフのウィジェットは、データを視覚化するために使用することができます。グラフウィジェットの標準的なアプリケーションは測定値または関数のグラフの曲線を示しています。複数の曲線を同時に表示することができます。水平と垂直のスケールとグリッドを使用することができます。データが表示領域より大きくなると自動的にスクロールバーを追加しデータ領域を拡大できます。

グラフの曲線測定値の時間推移

 HEADER

HEADERのウィジェットは、次のように表のラベルに使用されます。

widgets header 1

ポインタインプットデバイス(PID)が使用されている場合、ヘッダー項目の幅はPIDによって仕切りをドラッグして管理することができます。


LISTBOX
リストボックスは、リストの一つの要素を選択するために使用されています。以下に示すように、周囲のフレームのウィンドウなしで作成、またはFRAMEWINウィジェットの子ウィンドウとすることができます。リストボックス内の項目が選択されている場合強調表示されます。

リストボックスアクティブリストボックス非アクティブ

LISTVIEW
ListViewのウィジェットは、複数の列を持つリストの一つの要素を選択するために使用されています。列を管理するLISTWIEWウィジェットは、HEADERウィジェットが含まれています。周囲のフレームウィンドウなしまたはFRAMEWINのウィジェットの子ウィンドウとして作成することができます。項目が選択されている場合、強調表示します。

説明LISTVIEW 

非アクティブ

フレームウィンドウなし

スクロールバーなし

グリッド非表示

アクティブ

フレームウィンドウなし

スクロールバーなし

グリッド非表示

アクティブ

フレームウィンドウあり

スクロールバーなし

グリッド非表示

アクティブ

フレームウィンドウあり

スクロールバーあり

グリッド非表示

アクティブ

フレームウィンドウあり

スクロールバーあり

グリッド表示

 


MENU

メニューを作成するために使用することができます。各メニュー項目は、アプリケーションのコマンドやサブメニューを表します。メニューは水平および/または垂直に表示することができます。メニュー項目は、セパレータを使用してグループ化することができます。メニュー項目を選択すると、メニューの親にWM_MENUメッセージを送信するか、サブメニューを開きます。マウスのサポートが有効になっている場合はメニューのウィジェットはマウスに反応します。以下の表は、垂直サブメニューを持つ水平メニューの例です。

説明WIDGET_Effect_3D1LWIDGET_Effect_Simple
カラーディスプレイ

モノクロディスプレイ

(グレースケール)

モノクロディスプレイ

 


MULTIEDIT
MULTIEDITウィジェットは複数行でテキストを編集することができます。テキストエディタとして使用するか、テキストを表示することに使用できます。ウィジェットはスクロールをサポートしています。

説明フレームウィンドウ
編集モード
自動水平スクロールバー
折り返し表示なし
インサートモード
編集モード
自動垂直スクロールバー
折り返し表示
オーバーライトモード
表示モード
折り返し表示

 


MULTIPAGE

マルチページウィジェットを使用することにより、アプリケーションはウィンドウまたはダイアログボックスの同じ領域に対して複数のページを定義することができます。ページのタブをクリックすることでページが選択でき、表示領域を超えるタブがある場合は自動的にページの角に小さなスクロールバーを表示します。サンプルフォルダにはマルチページのウィジェットを作成して使用法を示すWIDGET_Multipage.cが含まれています。

説明MULTIPAGE
3ページ、タブは左上寄せ
6ページ、タブは右下寄せ

 


TEXT
通常、以下のメッセージボックスに表示される、ダイアログボックス内のテキストフィールドを表示するために使用されます。

widgets messagetext

もちろんテキストフィールドは、次のように他のウィジェットのラベルに使用することができます。

widgets text


emWinホームに戻る 


ウィンドウオブジェクト関連ページ 
SEGGER
RTOS&Middleware