◆◇◆ Tips! ◆◇◆

GUI操作のまとめ

[Japanese Pocket C User's Page]-[Tips!]


GUI操作についてまとめてみました。
GUIの作成等は、PC FormやAS Form Builder等を利用すれば、
簡単に作ることが出来ます。

1.概要

GUIに関するプログラムをする上で考るべき事は次の通りです。

1)コントロールの作成

フォームエディタを利用すれば、コントロールの作成自体はそれほど、
悩む必要はないですね。ただし、それぞれのコントロールIDだけは、
しっかりと覚えときましょう。

リストボックスや、コンボボックスの場合は、文字列の追加等この後に
行う作業があります。

2)値の取得

最低限コントロールの値の取得方法がわかれば、
なんとかなるでしょう。

3)コントロールで発生するイベント

コントロール上で発生するイベント処理についても、
エディタに任せてしまえば、あんまり悩むことはないです。

どちらにしても、何らかの Form エディタをgetするのが楽ですわな。

 

2.コントロールの種類について

PocketCで扱う事が出来るコントロールは次のようなものがあります。

1)正式に対応しているもの

PocketC自体が独自に操作用の関数を持っているもの。

・エディットボックス
・チェックボックス
・コンボボックス
・リストボックス
・メニュー

2)正式対応しているわけではないが、操作の方法が公開されているもの

ここをみてください。いろいろなコントロールの操作方法が記載されています。

3)今のところ、操作できないもの

Windowsの世界では、一般的なコントロールでもPocketCでは、
操作できないものがいくつかあります。

 

3.GUI共通の関数

PocketCでは、GUIを操作するための関するがいくつか提供されています。
まんずは、GUI共通の項目についてまとめてみました。

操作 関数名
作成 createctrl(string strCtrl, string strName, int nStyle,
int nExStyle, int xpos, int ypos, int width, int height, int nID)
移動・サイズ変更 wndmove(int handle, int x, int y, int width, int height)
表示・非表示 wndshow(int handle, int flag)
削除 delgui(int id)
全部削除 delallgui(int from, int to)
メッセージ送信 sendmsg(int nID, int nMsg, anytype wparam, anytype lparam)
フォーカスの設定 guisetfocus(int guiid)
現在のフォーカスの取得 guigetfocus()

 

4.コントロール別の関数

PocketC自体が独自に提供している関数をまとめてみました。
全部 [コントロール名]+[機能名]という形式で名前がついているので、
覚え易いですね。

1)値の設定、取得を行うコントロール

値の設定、取得をするのみのコントロールです。

コントロール名 エディットボックス チェックボックス
値の取得 editget(int id) cbxget(int id)
値の設定 editset(int id,string str) cbxset(int id, int state)

2)文字列のリストがあるコントロール

文字列のリストから選択するタイプのコントロールです。
文字列の追加、削除がある為、ちょっと面倒。

コントロール名 コンボボックス リストボックス
文字列追加 cbaddstr(int nID, string str) lbaddstr(int nID, string str)
文字列挿入 cbinsstr(int nID, int nIndex, string str) lbinsstr(int nID, int nIndex, string str)
文字列削除 cbdelstr(int nID, int nIndex) lbdelstr(int nID, int nIndex)
文字列全リセット cbrstcnt(int nID) lbrstcnt(int nID)
文字列数取得 cbgetcnt(int nID) lbgetcnt(int nID)
カーソル取得 cbgetcur(int nID) lbgetcur(int nID)
カーソルセット cbsetcur(int nID, int nIndex) lbsetcur(int nID, int nIndex)
文字列取得 cbgettxt(int nID, int nIndex) lbgettxt(int nID, int nIndex)
文字列検索 cbfndstr(int nID, int findindex string str)
cbselstr(int nID, int nStart, string str)
lbfndstr(int nID, string str)

3)メニュー

一言メニューといっても、画面左上のメニューバーと、
画面上の任意の個所に表示するメニューとがあります。

・メニューバーの設定
イベントPM_COMMAND発生時に、menu()関数を使って、
選択されたメニューを知ることが出来ます。

作業 関数
追加 menuins(int handle, int id_after, int flag, int id_new, string name)
削除 menudel(int handle, int flag, int id)
表示 menu_on()
非表示 menu_off()

・メニューコントロール

こちらは関数の戻り値を利用することが出来ます。

作業 関数
メニューの表示 menupop(string strmenu)
メニューを任意の場所に表示 menupopex(string strmenu, int x, int y)

 

4.その他のコントロールについて

PocketCで正式対応はされていませんが、利用方法が公開されているコントロールもいくつかあります。
英語のサイトではありますが、SundialSoft Web Siteに詳しく書かれています。


[Japanese Pocket C User's Page]-[Tips!]